从 Ansible 中的两个库存组成对配置服务器
Configure servers pairwise from two inventory groups in Ansible
系统设置如上图
库存文件
[group1]
host1
host2
host3
[group2]
host4
host5
host6
我想做的是,当我为 group1 的主机配置一些 roleA 时,我想为 group2 主机成对触发 roleB,这样-
- host4配置为host1。
- host5配置host2等
这里,host1也将作为host4配置文件中的变量使用
基本上,成对配置 (host1, host4), (host2, host5) 等。这在 Ansible 中可行吗?请举例说明,我现在已经坚持了很长时间
基本上您可以使用 host_vars 定义您的库存,如下所示::
[server_set1]
test1.labserver.com server_pair=test4.labserver.com
test2.labserver.com server_pair=test5.labserver.com
test3.labserver.com server_pair=test6.labserver.com
[server_set2]
test4.labserver.com
test5.labserver.com
test6.labserver.com
然后,任何时候您 运行 您的剧本,您都可以针对其配对服务器获取变量 "server_pair" 和 运行 您的角色 B。
ansible -m debug -a "msg={{ server_pair }}" test3.labserver.com -i inventory
test3.labserver.com | SUCCESS => {
"changed": false,
"msg": "test6.labserver.com"
}
Ansible 不提供任何机制来自动实现此目的,以防您正在寻找此类解决方案。你必须得到一对
以编程方式。
系统设置如上图
库存文件
[group1]
host1
host2
host3
[group2]
host4
host5
host6
我想做的是,当我为 group1 的主机配置一些 roleA 时,我想为 group2 主机成对触发 roleB,这样-
- host4配置为host1。
- host5配置host2等
这里,host1也将作为host4配置文件中的变量使用
基本上,成对配置 (host1, host4), (host2, host5) 等。这在 Ansible 中可行吗?请举例说明,我现在已经坚持了很长时间
基本上您可以使用 host_vars 定义您的库存,如下所示::
[server_set1]
test1.labserver.com server_pair=test4.labserver.com
test2.labserver.com server_pair=test5.labserver.com
test3.labserver.com server_pair=test6.labserver.com
[server_set2]
test4.labserver.com
test5.labserver.com
test6.labserver.com
然后,任何时候您 运行 您的剧本,您都可以针对其配对服务器获取变量 "server_pair" 和 运行 您的角色 B。
ansible -m debug -a "msg={{ server_pair }}" test3.labserver.com -i inventory
test3.labserver.com | SUCCESS => {
"changed": false,
"msg": "test6.labserver.com"
}
Ansible 不提供任何机制来自动实现此目的,以防您正在寻找此类解决方案。你必须得到一对
以编程方式。