我正在使用vmware_guest
模块创建一堆vms。
无论如何都要使用主机名和IP地址的模式吗?
例如,我想创建5个带有主机名/ IP的主vms,如:
master1
10.123.0.1
master2
10.123.0.2
master3
10.123.0.3
所以库存yaml与以下内容类似:
all:
children:
Elvis:
children:
masterNodes:
hosts:
master[1-5]:
ansible_host: 10.123.0.[1-5]
slaveNodes:
hosts:
slave[1-10]:
ansible_host: 10.124.0.[1-10]
另外,有没有办法为特定的parent:child
群组运行一本剧本?
我怎样才能为Elvis:masterNodes
播放游戏?例如,如果相同的库存yaml具有另一个父子组Bono:masterNodes
答案 0 :(得分:1)
无论如何都要使用主机名和IP地址的模式吗?
没有。相反,Ansible允许运行脚本来生成库存 - 在Python中实现一个循环填充库存主机名和IP地址的循环是很简单的(显然早在July 2013就已经明确了,尽管在同一个线程中有人建议a workaround)。
另外,有没有办法为特定的父母:儿童组运行剧本?
没有。 Ansible库存中没有层次结构;命名空间是扁平的;没有儿童团体; Ansible在主机/组集上运行。
实际上,您不能拥有具有相同名称的不同(子)组。这些(子)组的内容将合并。因此,如果Elvis
包含一个组masterNodes
并且您使用hosts:Elvis
声明执行游戏,它将在任何位置为masterNodes
定义的所有主机上运行(包括Bono:masterNodes
)。