I have a situation where I am trying to dynamically get the MAC address on 
the first NIC in a new VM created by Ansible.  I could assume the HW 
Interface will be "eth0", but it would be better to figure it out at 
runtime.

Register variable "create_vm_results" is:

ok: [localhost] => {
    "create_vm_results": {
        "ansible_facts": {
            "hw_eth0": {
                "addresstype": "assigned",
                "ipaddresses": null,
                "label": "Network adapter 1",
                "macaddress": "MAC",
                "macaddress_dash": "Dash-MAC",
                "summary": "VM Network"
            },
            "hw_guest_full_name": "Red Hat Enterprise Linux 6 (64-bit)",
            "hw_guest_id": "rhel6_64Guest",
            "hw_interfaces": [
                "eth0"
            ],
            "hw_memtotal_mb": 2048,
            "hw_name": "NAME",
            "hw_power_status": "POWERED ON",
            "hw_processor_count": 1,
            "hw_product_uuid": "UUID",
            "module_hw": true
        },
        "changed": true,
        "changes": "Created VM NAME"
    }
}



Now set facts based on this portion of my playbook:

- name: VMWARE - Identify NIC of primary interface
  set_fact:
    nic: "{{ create_vm_results.ansible_facts.hw_interfaces[0] }}"

- name: VMWARE - Show Created VM Primary NIC (DEBUG)
  debug: var=nic

- name: VMWARE - Identify Adapter of primary interface
  set_fact:
    adptr: "create_vm_results.ansible_facts.hw_{{ nic }}.macaddress"

- name: VMWARE - Show Created VM Primary Adapter (DEBUG)
  debug: var=adptr

- name: VMWARE - Identify MAC Address of primary interface
  set_fact:
    mac: "{{ adptr }}"

- name: VMWARE - Show Created VM Primary MAC (DEBUG)
  debug: var=mac


This produced this output:

TASK [vm_create : VMWARE - Identify NIC of primary interface] 
******************
ok: [localhost]

TASK [vm_create : VMWARE - Show Created VM Primary NIC (DEBUG)] 
****************
ok: [localhost] => {
    "nic": "eth0"
}

TASK [vm_create : VMWARE - Identify Adapter of primary interface] 
**************
ok: [localhost]

TASK [vm_create : VMWARE - Show Created VM Primary Adapter (DEBUG)] 
************
ok: [localhost] => {
    "adptr": "create_vm_results.ansible_facts.hw_eth0.macaddress"
}

TASK [vm_create : VMWARE - Identify MAC Address of primary interface] 
**********
ok: [localhost] => (item=create_vm_results.ansible_facts.hw_eth0.macaddress)

TASK [vm_create : VMWARE - Show Created VM Primary MAC (DEBUG)] 
****************
ok: [localhost] => {
    "mac": "create_vm_results.ansible_facts.hw_eth0.macaddress"
}



The objective was to get the MAC, but instead it is the "fact" name.  Is 
there a way to look up the value of this fact?  

Any assistance would be appreciated.

Thanks



-- 
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/42d1dafe-2a97-457e-b023-909e66e3635f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to