
Ansible 可同时操作属于一个组的多台主机,组和主机之间的关系通过 inventory 文件配置. 默认的文件路径为 /etc/ansible/hosts
主机清单示例
基于密码的主机清单
1 2 3 4 5 6 7 8 9 10 11
| [root@manager ~]# cat /etc/ansible/hosts #ip+port+user+pass #方括号[]中是组名,用于对系统进行分类,便于对不同系统进行个别的管理. [server1] 172.16.1.31 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='00000000' 172.16.1.61 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='00000000'
#hostname+port+user+pass #一组相似的 hostname , 可简写如下,还可以定义字母范围的简写模式 [server2] web[1:10].xadocker.cn ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='00000000'
|
基于密钥的主机清单
1 2 3 4
| # 使用前先将管理节点公钥推送至子节点,实现面密登录 [group1] 10.0.0.31:22 10.0.0.41
|
主机别名
1 2 3
| #别名形式 [group2] nfs-node1 ansible_ssh_host=10.0.0.31 ansible_ssh_port=22
|
定义主机组
1 2 3 4 5 6 7 8 9 10 11 12
| #定义多组,多组汇总整合 [group1] 10.0.0.31:22 10.0.0.41
[group2] nfs-node1 ansible_ssh_host=10.0.0.31 ansible_ssh_port=22
# webservers组包括两个子组 [webservers:children] [group1] [group2]
|
带变量的主机组
1 2 3 4 5 6
| [server3] web[1:10].xadocker.cn [server3:vars] ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='00000000'
|
主机组内置的参数
1 2 3 4 5
| ansible_ssh_host#将要连接的远程主机名.与你想要设定的主机的别名不同的话,可通过此变量设置. ansible_ssh_port#ssh端口号.如果不是默认的端口号,通过此变量设置. ansible_ssh_user#默认的 ssh 用户名 ansible_ssh_pass#ssh 密码(这种方式并不安全,我们强烈建议使用 --ask-pass 或 SSH 密钥) ansible_ssh_private_key_file#ssh 使用的私钥文件.适用于有多个密钥,而你不想使用 SSH 代理的情况.
|