具有主机名和 IP 地址模式的清单
Inventory with both a hostname and IP address pattern
我正在使用 vmware_guest
模块创建一堆虚拟机。
主机名和 IP 地址都可以使用某种模式吗?
例如,我想用 hostname/IP 创建 5 个主虚拟机,例如:
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
玩一出戏?例如,如果同一个 inventory yaml 有另一个父子组 Bono:masterNodes
Is there anyway to use a pattern for both the hostname and IP address?
没有。相反,Ansible 允许 运行 使脚本生成清单 - 在 Python 中实现一个循环填充清单主机名和 IP 地址是微不足道的(显然早在 July 2013, although in the same thread someone suggested a workaround).
Also, is there a way to run a playbook for a specific parent:child group?
没有。 Ansible 清单中没有层次结构;命名空间是扁平的;没有子组; Ansible 在 host/group 集合上运行。
实际上,您不能拥有同名的不同(子)组。这些(子)组的内容将被合并。因此,如果 Elvis
包含一个组 masterNodes
并且您使用 hosts:Elvis
声明执行一个游戏,它将 运行 在为 masterNodes
定义的所有主机上的任何地方(包括 Bono:masterNodes
).
我正在使用 vmware_guest
模块创建一堆虚拟机。
主机名和 IP 地址都可以使用某种模式吗?
例如,我想用 hostname/IP 创建 5 个主虚拟机,例如:
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
玩一出戏?例如,如果同一个 inventory yaml 有另一个父子组 Bono:masterNodes
Is there anyway to use a pattern for both the hostname and IP address?
没有。相反,Ansible 允许 运行 使脚本生成清单 - 在 Python 中实现一个循环填充清单主机名和 IP 地址是微不足道的(显然早在 July 2013, although in the same thread someone suggested a workaround).
Also, is there a way to run a playbook for a specific parent:child group?
没有。 Ansible 清单中没有层次结构;命名空间是扁平的;没有子组; Ansible 在 host/group 集合上运行。
实际上,您不能拥有同名的不同(子)组。这些(子)组的内容将被合并。因此,如果 Elvis
包含一个组 masterNodes
并且您使用 hosts:Elvis
声明执行一个游戏,它将 运行 在为 masterNodes
定义的所有主机上的任何地方(包括 Bono:masterNodes
).