浅见池也 发表于 2018-7-30 07:46:22

ansible学习二(inventory文件)

  inventory文件为ansible的主机管理文件,默认位于/etc/ansible/hosts
  主机文件中定义了ansible客户端的主机,使用IP地址或域名定义。
  格式:
              定义主机组
  127.0.0.1            该主机组中的主机
               定义主机组
  192.168.2.16         该主机组中的主机,.16代表160-169
           定义主机组 :children代表该主机组中包含主机组
  Local               该主机组包含的主机组
  test               该主机组包含的主机组
            定义主机组的变量
  ansible_ssh_pass=123.com使用sshpass格式,定义主机组的密码为3075px ,该密码在主机组中的所有主机中通用
  定义主机组:使用[],括号内为主机组名称,下面为主机的ip或者主机名;主机组中不仅仅可以有主机,还可以有其他主机组,定义方式为:
  [父主机组名:children]
  子主机组1
  子主机组2
  ...
  当你使用ansible命令批量处理时,默认需要输入主机密码

  (当要求不提示输入密码时,将主配置文件中的ask_pass = True的注释去掉)
  而输入的密码被当做所有被执行主机的ssh密码,这样的话很不方便,而且如果主机密码不同的话,会有一些主机无法完成处理,ansible对密码的管理方式也是在ansible的hosts文件中,当你安装了sshpass后,可以直接在hosts文件中输入密码,格式为:
  
  192.168.1.2:2222               #主机ssh端口变量
  192.168.1.3 ansible_ssh_pass='51cto.com'    #主机ssh密码变量
                     #组变量
  ansible_ssh_pass='51cto.com'         #组密码变量
  ansible_ssh_port=22               #组端口变量
  密码可以直接输入在主机后面,使用关键字:ansible_ssh_pass=进行密码定义,也可以在组变量()中对一组中的所有主机进行密码定义,组变量中的所有变量对相应组中的所有主机生效;而定义ssh的端口可以用同样的方法;变量的优先级是:手动输入>主机变量>组变量
  这样,在进行批量操作的时候就不需要输入密码了,但次密码是明文的,不太安全,关于ansible文件的加密,后续章节会讲到。
页: [1]
查看完整版本: ansible学习二(inventory文件)