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.

Reply via email to