zoukankan      html  css  js  c++  java
  • Ansible的安装和命令的介绍

    安装

    ansible管理机可以装在任何的操作系统上,除了windows。下面介绍在centos7上安装ansible。

    最简单的安装方式,yum安装:

    yum install ansible

    配置

    ansbile默认的配置文件路径为 /etc/ansible

    ansible.cfg 配置文件,这个配置文件默认就好了。如果有需求可以根据自己的需求去修改

    #inventory      = /etc/ansible/hosts        #默认存放可通讯主机的目录文件
    #library        = /usr/share/my_modules/ #默认搜寻模块位置
    #module_utils   = /usr/share/my_module_utils/  
    #remote_tmp     = ~/.ansible/tmp #远端的临时目录
    #local_tmp      = ~/.ansible/tmp
    #plugin_filters_cfg = /etc/ansible/plugin_filters.yml
    #forks          = 5 #在与主机通信时的默认并行进程数,默认并发是5
    #poll_interval  = 15
    #sudo_user      = root
    #ask_sudo_pass = True
    #ask_pass      = True
    #transport      = smart
    #remote_port    = 22 #远程SSH端口,默认是22
    #module_lang    = C #模块和系统之间通信的计算机语言,默认是C语言
    #module_set_locale = False

    备注:其他参数设置 可以参考ansible的中文文档。中文文档地址

     

    hosts 主机清单文件

    Ansible 可同时操作属于一个组的多台主机,组和主机之间的关系通过 inventory 文件配置. 默认的文件路径为 /etc/ansible/hosts

    [zabbix_agentd_servers]
    172.30.47.203  # op01
    172.30.47.201  # op02
    172.30.47.202  # proxy01
    172.30.47.101  # asrtest01

    [lvs_servers]
    172.30.47.141
    172.30.47.142

    [test]
    172.17.30.102
    [test:vars]
    ansible_ssh_port=9022

    中括号[] 里面是主机名,用于对系统进行分类。为了方便不通的系统管理,可以设定多个分组,用中括号区分即可。如果端口非默认端口,要单独增加一个变量,例如上面的test组。

    主机除了是ip地址,也可以写成是别名或者是主机名的方式。

    [test]
    test.sunqfrs.com:9022

    不过,你需要在hosts里面做好主机 与 别名的对应关系。

    如果端口不是默认的端口直接在后面加上端口号,用冒号分割即可。

     

    公钥认证

    如果你的管理机和被管理机之间没有做公钥认证的话,每次执行ansibie命令 都要输入被管理机器的ssh登录密码

    下面在管理机上生成一个公钥,然后分发的其他的机器上去:

    [root@localhost ~]# ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa):             #选择保存的位置。 回车默认
    Created directory '/root/.ssh'.
    Enter passphrase (empty for no passphrase):                             #直接按回车,
    Enter same passphrase again:
    Your identification has been saved in /root/.ssh/id_rsa.         #私钥
    Your public key has been saved in /root/.ssh/id_rsa.pub.       #公钥 地址
    The key fingerprint is:
    ad:cb:d7:c0:e6:1c:fe:5c:d4:d4:34:f1:a1:91:36:20 root@localhost.localdomain
    The key's randomart image is:
    +--[ RSA 2048]----+
    |         E ....+o|
    |         .  +o.=|
    |           ... +|
    |         .     o |
    |       S..   . .|
    |         .= .   |
    |       .= + . |
    |       . .=...   |
    |       o. .o   |
    +-----------------+


    3.然后 执行
    [root@localhost ~]# ssh-copy-id .ssh/id_rsa.pub root@192.168.137.102   #拷贝公钥到另外一台电脑去
                       

    #如果端口非22采用以下方式
    [root@localhost ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub '-p 9822 root@192.168.137.102 '

    #主机登录其他两台就不需要密码登录了。
    [root@localhost ~]# ssh root@192.168.137.102   #测试直接登录

     

    ansible 命令

    安装完之后,发现ansible一共为我们提供了7个命令: ansible、ansible-doc、ansible-galaxy、ansible-lint、ansible-playbook、ansible-pull、ansible-vault

    我们日常用的最多的两个命令是:ansible 和 ansible-playbook

    ansible

    格式: ansible <host-pattern> [options]

    可用选项:

    -v, --verbose   输出更详细的执行过程

    -i 指定inventory 信息,默认是用/etc/ansible/hosts
    -l 选择指定的组
    -f FORKS, --forks=FORKS 并发线程数,默认是5个线程
    --private-key=PRIVATE_KEY_FILE: 指定密钥文件。
    -m NAME, --module-name=NAME:     指定执行使用的模块。

    还有其他很多参数,详情请看 ansible --help

    执行:

    [root@localhost ~]# ansible all -m shell -a "w"
    192.168.137.102 | SUCCESS | rc=0 >>
    14:51:11 up 37 min,  2 users, load average: 0.00, 0.01, 0.05
    USER     TTY     FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     pts/0    192.168.137.1    14:22   27:59   0.01s  0.01s -bash
    root     pts/1    192.168.137.101  14:51    0.00s  0.14s  0.05s w

     

    ansible-doc

    ansible-doc 命令常用于获取模块信息及其使用帮助,一般用法如下

    ansible-doc -l   #获取全部模块信息
    ansible-doc -s 模块名字 #获取指定模块的使用帮助。

    例子:
    ansible-doc -s shell #获取shell 模块的帮助信息
    ansible-lint

    ansible-lint是对playbook的语法进行检查的一个工具。用法是ansible-lint playbook.yml 。

     

    ansible-playbook

    该指令是使用最多的指令,其通过读取playbook 文件后,执行相应的动作,这个后面会做为一个重点来讲。

     

    备注:其他命令我用得比较少,如果需要用到的话,可以使用--help 查询。

     

     

  • 相关阅读:
    pointnet++之classification/train.py
    pointnet++的pytorch实现
    xavier初始化的简单推导
    z+f数据解析
    ubuntu安装dia
    卷积,reLu,池化的意义
    Split
    .net程序调试一:快速定位异常
    Memcached (第一篇)
    System.Web.Caching.Cache类 缓存 各种缓存依赖
  • 原文地址:https://www.cnblogs.com/zyos/p/10154934.html
Copyright © 2011-2022 走看看