Ansible Playbook kann mit dem vmware_guest-Modul keine statische IP-Adresse zuweisen

Ansible Playbook kann mit dem vmware_guest-Modul keine statische IP-Adresse zuweisen

Ich versuche, mit Ansible eine VM aus einer Vorlage zu erstellen. Ich muss die IP-Adresse angeben. Alle anderen Konfigurationen funktionieren im Playbook. Es handelt sich nicht um ein Syntaxproblem. Dies ist ein Labor, daher habe ich kein VLAN, das ich für die Konfiguration verwenden kann. Ich muss den Netzwerknamen verwenden. SystemsLab ist eine gültige Standard-Portgruppe.

Laut Ansible-Dokument für das vmware_guest-Netzwerk:

Netzwerke

„Eine Liste von Netzwerken (in der Reihenfolge der Netzwerkkarten). Das Entfernen von Netzwerkkarten ist während der Neukonfiguration der virtuellen Maschine nicht zulässig. Bei allen Parametern und VMware-Objektnamen muss die Groß-/Kleinschreibung beachtet werden.

Pro Eintrag ist einer der folgenden Parameter erforderlich:

  • Name (Zeichenfolge): Name der Portgruppe oder verteilten virtuellen Portgruppe für diese Schnittstelle. Stellen Sie beim Angeben einer verteilten virtuellen Portgruppe sicher, dass der angegebene esxi_hostname oder Cluster damit verknüpft ist.
  • vlan (Ganzzahl): VLAN-Nummer für diese Schnittstelle."

Hier ist mein Playbook-Eintrag für die VM-Konfiguration:

- name: Create VM from template
     vmware_guest:
       validate_certs: False
       hostname: "{{ vcenter_hostname }}"
       username: "{{ vcenter_user }}"
       password: "{{ vcenter_pass }}"
       esxi_hostname: lab-vmsystems-01
       datacenter: Lab
       name: testvm_1
       template: RHEL74-IMG
       folder: template
       datastore: autoselect_datastore
       networks:
         - name: "SystemsLab"
           type: static
           device_type: vmxnet3
           ip: 10.**.**.199
           netmask: 255.255.255.0
           gateway: 10.**.**.1
         - dns_servers:
           - 10.**.**.21
           - 10.**.**.22
         - domain: ****.net

Hier ist der Fehler, den ich bekomme.

    "changed": false,
    "invocation": {
        "module_args": {
            "annotation": null,
            "cdrom": {},
            "cluster": null,
            "convert": null,
            "customization": {},
            "customization_spec": null,
            "customvalues": [],
            "datacenter": "Lab",
            "datastore": "autoselect_datastore",
            "disk": [],
            "esxi_hostname": "lab-vmsystems-01",
            "folder": "template",
            "force": false,
            "guest_id": null,
            "hardware": {
                "memory_mb": "1024",
                "num_cpus": 1
            },
            "hostname": "***-vcenter-01",
            "is_template": false,
            "linked_clone": false,
            "name": "testvm_1",
            "name_match": "first",
            "networks": [
                {
                    "device_type": "vmxnet3",
                    "gateway": "10.**.**.1",
                    "ip": "10.**.**.199",
                    "name": "SystemsLab",
                    "netmask": "255.255.255.0",
                    "type": "static"
                },
                {
                    "dns_servers": [
                        "10.**.**.21",
                        "10.**.**.22"
                    ]
                },
                {
                    "domain": "****.net"
                }
            ],
            "password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
            "port": 443,
            "resource_pool": null,
            "snapshot_src": null,
            "state": "present",
            "state_change_timeout": 0,
            "template": "RHEL74-IMG",
            "use_instance_uuid": false,
            "username": "***@***.net",
            "uuid": null,
            "validate_certs": false,
            "vapp_properties": [],
            "wait_for_customization": false,
            "wait_for_ip_address": true
        }
    },
    "msg": "Please specify at least a network name or a VLAN name under VM network list."```

C:\Program Files (x86)\VMware\VMware vSphere CLI>dcli +server lvd-vcenter-01 com vmware vcenter network list +skip-server-verification
|----------|----------|------------------|
|Network   |Name      |Type              |
|----------|----------|------------------|
|network-31|VM Network|STANDARD_PORTGROUP|
|network-32|SystemsLab|STANDARD_PORTGROUP|
|----------|----------|------------------|

Antwort1

Sie erstellen drei Netzwerkschnittstellen:

"networks": [
                {
                    "device_type": "vmxnet3",
                    "gateway": "10.**.**.1",
                    "ip": "10.**.**.199",
                    "name": "SystemsLab",
                    "netmask": "255.255.255.0",
                    "type": "static"
                },
                {
                    "dns_servers": [
                        "10.**.**.21",
                        "10.**.**.22"
                    ]
                },
                {
                    "domain": "****.net"
                }
            ],

Entfernen Sie die Bindestriche für DNS-Server und Domäne:

- name: Create VM from template
     vmware_guest:
       validate_certs: False
       hostname: "{{ vcenter_hostname }}"
       username: "{{ vcenter_user }}"
       password: "{{ vcenter_pass }}"
       esxi_hostname: lab-vmsystems-01
       datacenter: Lab
       name: testvm_1
       template: RHEL74-IMG
       folder: template
       datastore: autoselect_datastore
       networks:
         - name: "SystemsLab"
           type: static
           device_type: vmxnet3
           ip: 10.**.**.199
           netmask: 255.255.255.0
           gateway: 10.**.**.1
           dns_servers:
             - 10.**.**.21
             - 10.**.**.22
           domain: ****.net

verwandte Informationen