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.