使用 Ansible 在 vmware vCenter 上从 VM 模板部署 VM 导致网络无法访问

使用 Ansible 在 vmware vCenter 上从 VM 模板部署 VM 导致网络无法访问

操作系统:Oracle Linux 8.7 vCenter:7.0.3 build 20051473 虚拟机管理程序:VMware ESXi,7.0.3,19193900 ansible-playbook [核心 2.13.5] python 版本 = 3.8.10(默认,2022 年 11 月 14 日,12:59:47)[GCC 9.4.0] jinja 版本 = 3.1.2 libyaml = True

我正在使用以下 Ansible 任务从模板部署虚拟机:

- name: Create a new virtual machine {{ hostname }} on vCenter {{ vcenter_hostname }} from template {{ source_template }}
  community.vmware.vmware_guest:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    validate_certs: false
    datacenter: "{{ datacenter_name }}"
    folder: /{{ datacenter_name }}/vm/
    name: "{{ hostname }}"
    state: present
    template: "{{ source_template }}"
    esxi_hostname: "{{ esxi_hostname }}"
    disk:
      - size_gb: "{{ size_disk }}"
        type: "{{ disk_type }}"
        datastore: "{{ datastore_name }}"
    hardware:
      memory_mb: "{{ memory }}"
      memory_reservation_lock: true
      num_cpus: "{{ vcpu }}"
      cpu_reservation: "{{ reserved_cpu }}"
      scsi: paravirtual
      nested_virt: true
    networks:
    - name: VM Network
      ip: "{{ ip_address }}"
      netmask: "{{ ip_netmask }}"
      gateway: "{{ default_gateway }}"
      device_type: vmxnet3
      type: static
      state: present
    customization:
      dns_servers:
        - "{{ dns_1 }}"
        - "{{ dns_2 }}"
    wait_for_ip_address: true
  delegate_to: localhost
  register: deploy_vm

部署虚拟机后,ansible playbook 无法继续执行以下任务:

fatal: [template-common]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: ssh: connect to host 172.24.76.35 port 22: Connection refused", "unreachable": true}

我访问了虚拟机,发现它无法连接到网络。我通过 nmtui 从地址字段中删除 MAC 地址解决了这个问题:

nmtui 接口

但是,如果我在从 VM 模板部署 VM 时执行此操作,我会遇到同样的问题。即使 MAC 地址是正确的。

我也尝试过:

  • 从 /etc/sysconfig/network-scripts/ifcfg-ens192 中删除 HWADDR 参数
  • 删除 /etc/udev/rules.d/70.persistent-ipoib.rules
  • 将源虚拟机转换为虚拟机模板之前删除网络适配器

尽管进行了所有这些修改,从 VM 模板创建的 VM 仍然无法使用该接口。

我想强调的是,即使在 HWADDR 参数和 nmtui 命令显示的界面中正确设置了 mac 地址(如上所示),网络接口也不会工作,除非我从 nmtui 配置中删除 mac 地址。

有没有办法可以防止 mac 地址自动写入 nmtui?

任何其他解决方案或配置都是有效的,唯一的要求是部署的虚拟机具有工作界面而无需任何额外的交互。

相关内容