I am running ansible version 2.2.0.0. I have several free ESXi hosts. I
would like to create multiple specific guests on each of the free ESXi
hosts. I have tried to use with_dict with guests variables, hoping to loop
through an arbitrary pre-defined set of ESXi hosts and guests list. But I
am getting error:
fatal: [esxi1]: FAILED! => {"failed": true, "msg": "the field 'args' has an
invalid value, which appears to include a variable that is undefined. The
error was: 'list object' has no attribute 'vmname'
Is there a way to have the playbook loop through the list of esxi hosts and
guests list.
---
- hosts: all
connection: local
vars:
esxi_user: root
esxi_password: passwordxyz
guests:
esxi1:
- vmname: vm1
esxi4:
- vmname: vm3
- vmname: vm4
- vmname: vm5
tasks:
- vsphere_guest:
vcenter_hostname: "{{ item.key }}"
username: "{{ esxi_user }}"
password: "{{ esxi_password }}"
guest: "{{ item.value.vmname }}"
state: powered_on
vm_extra_config:
vcpu.hotadd: yes
mem.hotadd: yes
notes: This is a test VM
vm_disk:
disk1:
size_gb: 20
type: thin
datastore: store4
vm_nic:
nic1:
type: vmxnet3
network: VM01
network_type: standard
vm_hardware:
memory_mb: 2048
num_cpus: 2
osid: centos64Guest
scsi: lsi
vm_cdrom:
type: client
esxi:
datacenter: ha-datacenter
hostname: "{{ item.key }}"
with_dict: "{{ guests }}"
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/ceb7db1d-d47f-4a8b-93f2-6dd71a85e878%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.