inventory 主机清单

inventory 主机清单

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

//如果是名称类似的主机,可以使用列表的方式标识各个主机。

vim /etc/ansible/hosts
[webservers]
192.168.1.11:2222       #冒号后定义远程连接端口,默认是 ssh 的 22 端口
192.168.1.1[2:5]        #表示192.168.1.12到192.168.1.15
192.168.1.1[2,4:5]      #表示192.168.1.12 192.168.1.14到192.168.1.15
​
[dbservers]
db-[a:f].example.org    #支持匹配 a~f
​
//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.80.11 ansible_port=22 ansible_user=root ansible_password=abc1234

(2)组变量

[webservers:vars]           #表示为 webservers 组内所有主机定义变量
ansible_user=root
ansible_password=abc1234
​
[all:vars]                  #表示为所有组内的所有主机定义变量
ansible_port=22

(3)组嵌套

[nginx]
192.168.80.20
192.168.80.21
192.168.80.22
​
[apache]
192.168.80.3[0:3]
​
[webs:children]     #表示为 webs 主机组中包含了 nginx 组和 apache 组内的所有主机
nginx
apache