目录
一.inventory 含义
Inventory支持对主机进行分组,每个组内可以定义多个主机,每个主机都可以定义在任何一个或多
个主机组内
如果是名称类似的主机,可以使用列表的方式标识各个主机
vim /etc/ansible/hosts
[webservers]
192.168.80.101:2222 #冒号后定义远程连接端口,默认是 ssh 的 22 端口
192.168.80.10[2:5] #1[2:5]代表102、103、104、105
[dbservers]
db-[a:f].example.org #支持匹配 a~f
二.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.101 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.101
192.168.80.102
192.168.80.103
[apache]
192.168.80.10[4:7]
[webs:children] #表示为 webs 主机组中包含了 nginx 组和 apache 组内的所有主机
nginx
apache
三.总结
inventory主机清单管理
主机清单配置文件 /etc/ansible/hosts
格式:
[组名]
主机IP[:ssh端口] #ssh端口默认为 22
主机名[:ssh端口]
主机IP[0:255] #设置连续的主机列表范围
主机名[a:z]
主机IP ansible_port= ansible_user= ansible_password= .... #设置主机变量
[组名:vars] #设置组变量
ansible_port=
ansible_user=
ansible_password=
....
[大组名:children] #设置组嵌套
组名1
组名2
....