目录
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支持对主机进行分组,每个组内可以定义多个主机,每个主机都可以定义在任何一个或多个主机组内。
主机清单位置:
如果是名称类似的主机,可以使用列表的方式标识各个主机。
vim /etc/ansible/hosts
[webservers]
192.168.10.14:2222 #冒号后定义远程连接端口,默认是 ssh 的 22 端口
192.168.10.1[2:5]
三个ip地址都在web组里面
在ansible端去设置192.168.88.6的端口号为2345
随后,去192.168.88.6上面修改端口号
随后,去 ansible端检测,是可以链接
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的hosts配置文件中设置
随后,去验证 是否能检测到192.168.88.7 可以查看到
2)组变量
[webservers:vars] #表示为 webservers 组内所有主机定义变量,所有组内成 员都有效
ansible_user=root
ansible_password=abc1234
3) [all:vars] #表示为所有组内的所有主机定义变量
ansible_port=22
举例说明:[webservers:vars] 将web组里面的ip中ssh免交密登录删除
4 5 6 三台机器同时删除公匙
随后,去ansible检测,都报错
随后,去修改ansible中hosts的配置文件
再去ansible检测,又可以连接 表示不用免密交互,使用组变量(组里面很多个主机 一个个去修改很麻烦,所以使用组变量更快即可,这些组成员都能享受组变量
(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
随后,验证
总结: