VMware VM creation works but on boot the network adapter is disconnected

I’m using Ansible Tower 3.8.2.
Ansible core is 2.9.15

I’m using the vmware_rest collection.

I’m able to get the linux VM created from a template. And the VM does poweron. But when it comes up the network adapter does not. It is in disconnected state.

My linux VM is RHEL 8.2

I see online that many folks have had this issue but I’m not seeing what the solution is for it.

Can anyone offer any tips that may help me solve this problem?

Thanks,

Norm

We’re on Ansible Tower 3.8.3 and Ansible core is 2.9.x.

I am trying to use the community.vmware collection and looking to deploy Windows and Linux vms to vSphere.

When deploying Windows 2019 vms, the network adapter is always disconnected.

It seems like many are having issues with the same issue but there are few if any solutions.

Any suggestions?

Thanks!

Christopher,

I had a similar issue with RHEL. I found that the image/template that I was using to build my VM was missing a perl module. I’ll have to check my notes for which module. Once I installed that module in my image template, it worked.

I now need to do the same and get windows VMs spun up. Would you mind sharing your playbook? I have a test environment and I would be willing to help troubleshoot your issue.

Regards,

Norm

Hi, Norm,

I have read about that issue in the forums regarding Perl and vmware tools on RHEL/ CentOS. As far as I know, Windows does not need Perl … ?

I read on a forum post that someone found a vDS was somehow at the root of this issue which is, of course, what I am using as the network. That
gentleman switched over to a simple vswitch which seemed to alleviate this issues.

You can read about it here along with a few other leads: https://github.com/ansible/ansible/issues/24506

Sure, great! I’ve redacted sensitive info. The content within angle brackets indicate redacted or changed content.

I am trying to work with a Windows2019 template.

Chris,
The only thing I’ve seen so far is that you want to make sure the template or image you are cloning has the latest version of vmware tools installed.

Norm

Chris,
I got the windows VM to poweron with the network connected with this configuration. Hope this helps.

Ansible: 2.9 Tower: 3.8.2

  • Compatibility: ESXi 6.7 Update 2 and later (VM version 15)

  • VMware Tools: Running, version:11297 (Current)

- name: "Create VM {{ vmware_provision_vm_hostname_long }} with IP {{ vmware_provision_vm_network_ip_addr }}"
  community.vmware.vmware_guest:
    datacenter: '{{ vmware_provision_datacenter }}'
    cluster: '{{ vmware_provision_vm_cluster }}'
    datastore: '{{ vmware_provision_vm_datastore }}'
    name: '{{ vmware_provision_vm_hostname_long }}'
    template: '{{ vmware_provision_vm_template }}'
    folder: '{{ vmware_provision_vm_folder }}'
    networks: 
    - name: '{{ vmware_provision_vm_network_name }}'  
      ip: '{{ vmware_provision_vm_network_ip_addr }}'
      netmask: '{{ vmware_provision_vm_network_ip_netmask_addr }}'
      gateway: '{{ vmware_provision_vm_network_ip_gateway_addr }}'
      type: "static"
      start_connected: true
    wait_for_ip_address: true
  delegate_to: localhost

Hi, Norm,

My apologies for not seeing this post earlier. No updates actually came to my inbox …

Thanks for the work, really appreciate it. I’ll give this a go this morning and see what happens!

Still no dice. I made the changes but I seem to be getting hung-up on an ipv6 address assignment which makes no sense.
I am not using ipv6 and don’t have anything in the code either.

This is the stdout from Ansible …

“ipaddresses”: [
“fe80::7990:4f2e:dfba:fcf5”,
“”,
“169.254.252.245”
],

“ipv4”: null,

“ipv6”: “fe80::7990:4f2e:dfba:fcf5”,

It’s prob in your template or VM that you are cloning. Check there and disable.

Are you sure your vDS Name is accurate for the VLAN you are want to be attached?

Hey Walter,

Yeah, for sure. I’ve double checked this a number of times.

Regarding the ipv6 info Ansible was spitting to stdout, my best guess is this is coming from the vm level. It does not appear to be interfering with any of the builds, etc.
If necessary, I can have one of the SA’s remove IPv6, either disabling or uninstalling it, and recreating a win vmware template.

While I still do not understand the root cause of the underlying issue with automated windows builds on vmware, I was able to overcome the issue.

I removed the network adapter from the vmware template and recreated a new template to use. I’ve tested the builds mainly using dhcp but statically

assigned IP addresses should work without issue.

Alternatively, it may be possible to write a few tasks in Ansible to create a windows vm while leaving it off, remove the adapter, and then add
a new adapter. This may work in addition to creating a new template without the adapter. I have yet to test this though.

It would be really beneficial to understand the root cause of the adapter issue on windows builds.

This is my entire task for creating a VM = works for Windows and Linux.

  • name: create the guest vm using template
    community.vmware.vmware_guest:
    validate_certs: no
    hostname: “{{ vcenter[location|lower].vc }}”
    datacenter: “{{ vcenter[location|lower].dc }}”
    cluster: “{{ vcenter[location|lower].cl }}”
    name: “{{ vm_guest_name | lower }}”
    state: poweredoff
    template: “{{ os_type }}”
    folder: “{{ esx_folder }}”
    datastore: “{{ vcenter[location|lower].ds }}”
    hardware:
    hotadd_cpu: yes
    hotadd_memory: yes
    memory_mb: “{{ vm_spec[vm_size].ram }}”
    num_cpus: “{{ vm_spec[vm_size].cpu }}”
    networks:
  • name: “VLAN_{{ vlan }}”
    type: dhcp
    start_connected: yes
    connected: yes
    wait_for_ip_address: no
    delegate_to: localhost
    register: newvm

Does the folder where you place your VM have permission to the VLAN to which you are attaching? Seems like this is an environment related issue and not an ansible issue.

Walter

Looking into this, Walter. Thanks!