Ich möchte mit Ansible eine geordnete Liste der Netzwerkschnittstellen auf einem Computer erhalten. Moderne Linux-Systeme verwenden eth0, eth1 usw. nicht. Die Namen sind also unvorhersehbar. In unserem Netzwerk verbinden wir die Schnittstelle mit der niedrigsten Nummer mit dem LAN und die Schnittstelle mit der höchsten Nummer mit dem WAN, sodass ich die Position der Schnittstelle in einer geordneten Liste verwenden kann, um ihre Funktion zu bestimmen.
Ich suche nach dem kanonischen Weg, dies in Ansible zu tun. Damit ich so etwas wie {{ansible_eth0.ipv4.address}} verwenden kann. (Wobei eth0 ein anderer Name ist).
Selbst wenn ich manuell eine Variable mit dem Namen der Schnittstelle setze, scheint es keine Möglichkeit zu geben, die IP dieser Schnittstelle zu ermitteln (unter Verwendung des Inhalts der Variablen).
Ich möchte die Ansible-Fakten verarbeiten, um das zu erhalten, was ich möchte, anstatt ein Shell-Skript auf dem Remote-System auszuführen.
ansible_default_ipv4.addressdass dies die Standard-IPv4-Adresse und ansible_default_ipv4.interfacedie Standard-IPv4-Schnittstelle angibt. Dies beantwortet Ihre Frage nicht, hat mir jedoch als Problemumgehung in einer Situation geholfen, in der die Standardschnittstelle eth0auf bestimmten Systemen und eth1auf anderen benannt wurde.