从Ansible中的两个清单组成对配置服务器

时间:2018-07-13 12:11:07

标签: ansible ansible-inventory

Eventual system setup

如上图所示的系统设置。

库存文件

[group1]
host1
host2
host3

[group2]
host4
host5
host6

我想要做的是,当我使用一些roleA配置来自group1的主机时,我想成对地触发group2主机的roleB,这样-

  • host4配置了host1。
  • host5配置有host2等。

在这里,host1也将用作host4配置文件中的变量

基本上是成对配置(主机1,主机4),(主机2,主机5)等。在Ansible中这可能吗?请举个例子,我已经对此坚持了很多时间

1 个答案:

答案 0 :(得分:1)

基本上,您可以使用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不提供任何机制来自动实现此目的。你必须要得到一对
以编程方式。