How to find network device by macaddress ?

Here is a truncated version of a fact for one network interface on a server:

“ansible_eth2”: {

“active”: true,

“device”: “eth2”,

“macaddress”: “30:0e:d5:cb:11:fe”,

“type”: “ether”

},

And there are similar facts for each network interface.

Given that, I need to be able to find the value for “device” for a specific macaddress value.

How would I do that?

Something like this.

mac.yml

This worked great, thank you!

For the record, here is the current version of my test playbook:

vars:

target_macaddr: “0c:c4:7a:17:9a:94”

tasks:

  • debug:
    var: hostvars[inventory_hostname][‘ansible_’ + item].device
    when: hostvars[inventory_hostname][‘ansible_’ + item].macaddress is defined and hostvars[inventory_hostname][‘ansible_’ + item].macaddress == target_macaddr
    with_items: ‘{{ ansible_interfaces }}’

Which prints out the device whose macaddr is the target.