Ansible and Consistent Network Device Naming

Dear ansible users and developers.

As I can see, all modern systems are going to solutions for consistent Network Device Naming.

A bit details to read here:

Long time ago I saw this only on OpenSuse 13.1, Now is enabled by default on CentOS 7 (Maybe others distros as well, however these are those which I am working on). I must admit that so far it is hard for me accept this idea, especially in terms of servers configuration where firewalls, IDS, etc are related with network interfaces, and there is no too much changes in terms of physical network configuration.

My question for you is related, how ansible is handling this?
As I can see from devel branch - ansible is already supporting this in some way:

`
“ansible_eno1”: {
“active”: true,
“device”: “eno1”,
“ipv4”: {
“address”: “192.168.1.10”,

`

However what is the best practice now for multiple hosts?

For example, I will have configuration of 5 hosts, each will get different name for network interfaces depends of firmware (etc).
With old names I could use patern:

  • eth0 - external
  • eth1 - internal
    Configure application bind to eth0, write FW rules for eth0, etc.

However have no such idea how to solve this with this new names!?

How to solve problem with different names and use the same code for playbooks and templates?
Especially in this conditions like. If ETH_XXXX do that, gather IP from ETH_YYYY and setup access to DB based on, etc.
Please advice.

Hope that this make sense.

Best regards,
Marcin Praczko

Ansible just returns the device names that come back from the system.