目录

inventory 中的变量

 2)组变量[webservers:vars]            #表示为 webservers 组内所有主机定义变量,所有组内成                                               员都有效

ansible_user=rootansible_password=abc1234

3)  [all:vars]                    #表示为所有组内的所有主机定义变量ansible_port=22

(3)组嵌套(表示不想给所有组使用,但是又想给多个组去使用)

 [nginx]192.168.10.20192.168.10.21192.168.10.22

[apache]192.168.10.3[0:3]


Inventory支持对主机进行分组,每个组内可以定义多个主机,每个主机都可以定义在任何一个或多个主机组内。

主机清单位置:

ansible的主机清单变量怎么调用 ansible 主机清单_ansible

ansible的主机清单变量怎么调用 ansible 主机清单_ansible的主机清单变量怎么调用_02

ansible的主机清单变量怎么调用 ansible 主机清单_linux_03

 如果是名称类似的主机,可以使用列表的方式标识各个主机。
vim /etc/ansible/hosts
[webservers]
192.168.10.14:2222        #冒号后定义远程连接端口,默认是 ssh 的 22 端口
192.168.10.1[2:5]

 

ansible的主机清单变量怎么调用 ansible 主机清单_apache_04

ansible的主机清单变量怎么调用 ansible 主机清单_ansible_05

 

ansible的主机清单变量怎么调用 ansible 主机清单_linux_06

三个ip地址都在web组里面

 在ansible端去设置192.168.88.6的端口号为2345

ansible的主机清单变量怎么调用 ansible 主机清单_ansible的主机清单变量怎么调用_07

随后,去192.168.88.6上面修改端口号

ansible的主机清单变量怎么调用 ansible 主机清单_ansible_08

 

ansible的主机清单变量怎么调用 ansible 主机清单_linux_09

随后,去 ansible端检测,是可以链接

ansible的主机清单变量怎么调用 ansible 主机清单_linux_10

inventory 中的变量

Inventory变量名                  含义
ansible_host                  ansible连接节点时的IP地址
ansible_port                  连接对方的端口号,ssh连接时默认为22
ansible_user                  连接对方主机时使用的主机名。不指定时,将使用执行ansible或ansible-playbook命令的用户
ansible_password              连接时的用户的ssh密码,仅在未使用密钥对验证的情况下有效
ansible_ssh_private_key_file  指定密钥认证ssh连接时的私钥文件
ansible_ssh_common_args       提供给ssh、sftp、scp命令的额外参数
ansible_become                允许进行权限提升
ansible_become_method         指定提升权限的方式,例如可使用sudo/su/runas等方式
ansible_become_user           提升为哪个用户的权限,默认提升为root
ansible_become_password       提升为指定用户权限时的密码

 (1)主机变量
[webservers]
192.168.10.14 ansible_port=22 ansible_user=root ansible_password=abc1234

新开一台机器  192.168.88.7 没有与ansible做过免交互 

ansible的主机清单变量怎么调用 ansible 主机清单_服务器_11

 

ansible的主机清单变量怎么调用 ansible 主机清单_apache_12

因此要在ansible的hosts配置文件中设置

ansible的主机清单变量怎么调用 ansible 主机清单_ansible的主机清单变量怎么调用_13

ansible的主机清单变量怎么调用 ansible 主机清单_apache_14

 随后,去验证 是否能检测到192.168.88.7  可以查看到

ansible的主机清单变量怎么调用 ansible 主机清单_apache_15

 2)组变量
[webservers:vars] 

ansible_user=root
ansible_password=abc1234

3)  [all:vars]                    #表示为所有组内的所有主机定义变量
ansible_port=22

 举例说明:[webservers:vars]  将web组里面的ip中ssh免交密登录删除

ansible的主机清单变量怎么调用 ansible 主机清单_apache_16

4 5  6 三台机器同时删除公匙

ansible的主机清单变量怎么调用 ansible 主机清单_linux_17

 随后,去ansible检测,都报错

ansible的主机清单变量怎么调用 ansible 主机清单_linux_18

随后,去修改ansible中hosts的配置文件

ansible的主机清单变量怎么调用 ansible 主机清单_apache_19

 再去ansible检测,又可以连接 表示不用免密交互,使用组变量(组里面很多个主机 一个个去修改很麻烦,所以使用组变量更快即可,这些组成员都能享受组变量

ansible的主机清单变量怎么调用 ansible 主机清单_服务器_20

(3)组嵌套(表示不想给所有组使用,但是又想给多个组去使用)

 [nginx]
192.168.10.20
192.168.10.21
192.168.10.22

[apache]
192.168.10.3[0:3]

[webs:children]        #表示为 webs 主机组中包含了 nginx 组和 apache 组内的所有主机
nginx
apache

 

ansible的主机清单变量怎么调用 ansible 主机清单_服务器_21

 随后,验证

ansible的主机清单变量怎么调用 ansible 主机清单_linux_22

总结:

 

ansible的主机清单变量怎么调用 ansible 主机清单_linux_23