Found the issue!

The create_nic function within the vmware_guest module sets the nic's 
address type as 'assigned', which requires you to supply a MAC address.
The problem is, it will do this whether you supply a MAC address or not. 

I've submitted a patch to fix this: 
https://github.com/ansible/ansible/pull/24138


On Wednesday, April 26, 2017 at 3:54:09 PM UTC-4, Lemar wrote:
>
> No luck there - changing the indentation yields the same error.
>
>
> On Wednesday, April 26, 2017 at 12:40:13 PM UTC-4, J Hawkesworth wrote:
>>
>> Bit of a wild guess this, but just wondering if the issue is indentation?
>>
>>         disk:
>>         - size_gb: "{{ disk_size }}"
>>           type: thin
>>           datastore: "{{ datastore }}"
>>         hardware:
>>           memory_mb: "{{ memory }}"
>>           num_cpus: "{{ cpucount }}"
>>         networks:
>>         - name: VM Network
>>
>> might need to be
>>
>>
>>         disk:
>>           - size_gb: "{{ disk_size }}"
>>             type: thin
>>             datastore: "{{ datastore }}"
>>         hardware:
>>           memory_mb: "{{ memory }}"
>>           num_cpus: "{{ cpucount }}"
>>         networks:
>>           - name: VM Network
>>
>> On Wednesday, April 26, 2017 at 2:09:55 PM UTC+1, Lemar wrote:
>>>
>>> Hi All!
>>>
>>> I'm running Ansible v2.3, and want to know if it's possible to create 
>>> virtual machines with NIC's, without specifying a MAC address.
>>>
>>> While it's listed as optional in the docs (
>>> http://docs.ansible.com/ansible/vmware_guest_module.html), the playbook 
>>> fails unless a mac entry is created.
>>>
>>>
>>> *Version Info: *
>>>
>>> ansible 2.3.0.0
>>>
>>>   config file = /etc/ansible/ansible.cfg
>>>
>>>   configured module search path = Default w/o overrides
>>>   python version = 2.7.5 (default, Nov  6 2016, 00:28:07) [GCC 4.8.5 
>>> 20150623 (Red Hat 4.8.5-11)]
>>>
>>> *Example playbook: *
>>> ---
>>> - hosts: test-vms
>>>   gather_facts: false
>>>   connection: local
>>>   vars_prompt:
>>>     - name: "esxi_user"
>>>       prompt: "Enter ESXi username"
>>>       private: no
>>>     - name: "esxi_pass"
>>>       prompt: "Enter ESXi password"
>>>       private: yes
>>>   vars:
>>>     datacenter: 'ha-datacenter'
>>>     notes: 'Created by Ansible'
>>>   tasks:
>>>     - name: "Deploy VM"
>>>       vmware_guest:
>>>         name: "{{ inventory_hostname }}"
>>>         validate_certs: False
>>>         hostname: "{{ esxi_hostname }}"
>>>         username: "{{ esxi_user }}"
>>>         password: "{{ esxi_pass }}"
>>>         state: present
>>>         guest_id: "{{ osid }}"
>>>         disk:
>>>         - size_gb: "{{ disk_size }}"
>>>           type: thin
>>>           datastore: "{{ datastore }}"
>>>         hardware:
>>>           memory_mb: "{{ memory }}"
>>>           num_cpus: "{{ cpucount }}"
>>>         networks:
>>>         - name: VM Network
>>>       delegate_to: localhost
>>>
>>> *results:*
>>> fatal: [test-vm01 -> localhost]: FAILED! => {
>>>     "changed": true,
>>>     "failed": true,
>>>     "invocation": {
>>>         "module_args": {
>>>             "annotation": null,
>>>             "cluster": null,
>>>             "customization": {},
>>>             "customvalues": [],
>>>             "datacenter": "ha-datacenter",
>>>             "disk": [
>>>                 {
>>>                     "datastore": "datastore1",
>>>                     "size_gb": 10,
>>>                     "type": "thin"
>>>                 }
>>>             ],
>>>             "esxi_hostname": null,
>>>             "folder": "/vm",
>>>             "force": false,
>>>             "guest_id": "centos64Guest",
>>>             "hardware": {
>>>                 "memory_mb": 512,
>>>                 "num_cpus": 1
>>>             },
>>>             "hostname": "1.1.1.1",
>>>             "is_template": false,
>>>             "name": "test-vm01",
>>>             "name_match": "first",
>>>             "networks": [
>>>                 {
>>>                     "name": "VM Network"
>>>                 }
>>>             ],
>>>             "password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
>>>             "resource_pool": null,
>>>             "state": "present",
>>>             "template_src": null,
>>>             "username": "root",
>>>             "uuid": null,
>>>             "validate_certs": false,
>>>             "wait_for_ip_address": false
>>>         }
>>>     },
>>>     "msg": "Invalid configuration for device '2'."
>>> }
>>>
>>> I'm sure I'm missing something obvious, so any help is appreciated!
>>>
>>>
>>>
>>>  
>>>
>>

-- 
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/7d8b7184-e422-48e2-9639-68d74a59ce3e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to