Hi,
I have a csv file which has all the ip address and the mac address in column (as shown below):
VM1 | TBD | | | | x.x.x.x | 02:07:C0:A8:06:04 | x1.x1.x1.x1 | 02:07:0A:AE:CC:54 | x2.x2.x2.x2 | 02:07:0A:91:10:BB | x3.x3.x3.x3 | 02:07:AC:10:04:03 |
- | - | - | - | - | - | - | - | - | - | - | - | - |
VM2 | TBD | | | | y.y.y.y | 02:07:C0:A8:06:05 | y1.y1.y1.y1 | 02:07:0A:AE:CC:55 | y2.y2.y2.y2 | 02:07:0A:91:10:BC | y.3.y3.y3.y3 | 02:07:AC:10:04:04 |
VM3 | TBD | | | | z.z.z.z | 02:07:C0:A8:06:06 | z1.z1.z1.z1 | 02:07:0A:AE:CC:56 | z2.z2.z2.z2 | 02:07:0A:91:10:BD | z3.z3.z3.z3 | 02:07:AC:10:04:05 |
Now i want to check the ip and mac combinations of mentioned in CSV, My playbook is as follows. Want to iterate through all the ip and mac combination and display.
but my iteration is unsuccessful. Pls help
-
hosts: all
tasks:
-
name: All IPV4 address in system
setup: filter=“ansible_all_ipv4_addresses”
register: all_ipv4_address
-
debug:
var: all_ipv4_address
-
name: Ip vs Mac Inside CSV
debug:
msg: “The MAC address of {{ item }} is {{ lookup(‘csvfile’, ‘{{ item }} file={{ inventory_data }} delimiter=,’) }}”
with_items:
“{{ all_ipv4_address }}”
Can you share the error ?
Error as below(Removed actual ips): I guess the loop is not iterated as desired from CSV items. Pls help
sudo ansible-playbook mac-test1.yml -D -C --limit VM[1] -i …/…/lab-inventories/LAB2/hosts
PLAY [all] **************************************************************************************************************************
TASK [Gathering Facts] **************************************************************************************************************
ok: [VM1]
TASK [All IPV4 address in system] ***************************************************************************************************
ok: [VM1]
TASK [debug] ************************************************************************************************************************
ok: [VM1] => {
“all_ipv4_address”: {
“ansible_facts”: {
“ansible_all_ipv4_addresses”: [
“x.x.x.x”,
“y.y.y.y”,
“z.z.z.z”
]
},
“changed”: false,
“failed”: false
}
}
TASK [Ip vs Mac Inside CSV] *********************************************************************************************************
ok: [VM1] => (item=failed) => {
“msg”: “The MAC address of failed is ”
}
ok: [VM1] => (item=changed) => {
“msg”: “The MAC address of changed is ”
}
ok: [VM1] => (item=ansible_facts) => {
“msg”: “The MAC address of ansible_facts is ”
}
PLAY RECAP **************************************************************************************************************************
VM1 : ok=4 changed=0 unreachable=0 failed=0
With RegardsRakesh
Want to iterate through the items and print teh corressponding mac address.