
OS: Oracle Linux 8.7 vCenter: 7.0.3 ビルド 20051473 ハイパーバイザー: VMware ESXi、7.0.3、19193900 ansible-playbook [core 2.13.5] python バージョン = 3.8.10 (デフォルト、2022 年 11 月 14 日、12:59:47) [GCC 9.4.0] jinja バージョン = 3.1.2 libyaml = True
次の Ansible タスクを使用してテンプレートから VM をデプロイしています。
- 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
VM をデプロイした後、Ansible プレイブックは次のタスクを続行できません。
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}
VM にアクセスしたところ、ネットワークにアクセスできないことに気付きました。nmtui を使用して、アドレス フィールドから MAC アドレスを削除することで解決しました。
ただし、VM テンプレートでこれを実行し、そこから VM を展開すると、同じ問題が発生します。MAC アドレスは正しいです。
私も試しました:
- /etc/sysconfig/network-scripts/ifcfg-ens192 から HWADDR パラメータを削除します
- /etc/udev/rules.d/70.persistent-ipoib.rules を削除する
- ソース VM を VM テンプレートに変換する前にネットワーク アダプタを削除する
これらすべての変更を行っても、VM テンプレートから作成された VM は依然としてインターフェイスを使用できません。
HWADDR パラメータで MAC アドレスが適切に設定されていて、nmtui コマンドで表示されるインターフェイス (上記に表示) であっても、nmtui 構成から MAC アドレスを削除するまでネットワーク インターフェイスは機能しないことを強調しておきます。
MAC アドレスが nmtui に自動的に書き込まれるのを防ぐ方法はありますか?
その他のソリューションや構成も有効ですが、唯一の要件は、デプロイされた VM に追加の操作なしで機能するインターフェースがあることです。