具有相同vcenter主机名的可靠清单文件只接受最后一个条目



我正在尝试运行一个剧本,在不同Vcenter上的虚拟机上创建磁盘。所以当我把它们放在库存文件中时,类似这样的东西:

**inv.yml:
vcenter1 datacenter=dc1 datastore=ds1 name=vm1
vcenter1 datacenter=dc1 datastore=ds1 name=vm2
vcenter1 datacenter=dc1 datastore=ds1 name=vm3
vcenter2 datacenter=dc2 datastore=ds2 name=vm4
vcenter2 datacenter=dc2 datastore=ds2 name=vm5
vcenter3 datacenter=dc3 datastore=ds3 name=vm6
vcenter3 datacenter=dc3 datastore=ds3 name=vm6**

当我运行这个时,它只为每个vcenter读取一次,而忽略其他条目。无论如何,我都可以让Ansible一次又一次地读取相同的主机名。

我可以用一个变量文件来做这件事,但我试图用一个库存文件来做。

Q:"有没有办法让Ansible一次又一次地读取相同的主机名">

答:没有。改为更改数据。例如

shell> cat inv.yml 
vcenter1 datacenter=dc1 datastore=ds1 name=[vm1,vm2,vm3]
vcenter2 datacenter=dc2 datastore=ds2 name=[vm4,vm5]
vcenter3 datacenter=dc3 datastore=ds3 name=[vm6]
shell> cat test.yml 
- hosts: all
tasks:
- debug:
var: name
shell> ansible-playbook -i inv.yml test.yml 
ok: [vcenter1] => 
name: '[vm1,vm2,vm3]'
ok: [vcenter2] => 
name: '[vm4,vm5]'
ok: [vcenter3] => 
name: '[vm6]'

最新更新