我有一个 Ansible 剧本,其中包含用于创建一些 Azure 云资源的角色。组变量用于设置创建这些资源的参数。库存文件包含多个组,这些组引用该播放作为后代节点。
问题在于,由于运行云操作的目标是 localhost,所有组变量都会立即被拾取。这是库存:
[cloud:children]
cloud_instance_a
cloud_instance_b
[cloud_instance_a:children]
azure_infrastructure
[cloud_instance_b:children]
azure_infrastructure
[azure_infrastructure]
127.0.0.1 ansible_connection=local ansible_python_interpreter=python
该剧本包含一个引用要运行的实际角色的 azure_infrastructure 剧本。
发生的情况是该角色针对 localhost 运行了两次,但每次都加载了来自 cloud_instance_a 和 cloud_instance_b 的组变量。我希望它运行两次,但第一次加载 cloud_instance_a 变量,第二次加载 cloud_instance_b 变量。
有没有办法做到这一点?本质上,我正在为 localhost 寻找一个伪主机,让它认为这些是不同的目标。我能够解决此问题的唯一方法是创建两个不同的库存。