ansible: Default IP

Um die „Haupt“ IP Adresse eines Systems zu bekommen wird in ansible häufig die Variable: ansible_default_ipv4 benutzt.
Das Problem, dass hierbei entstehen kann, ist dass diese Variable von dem Interface ausgeht, für welches die default route konfiguriert ist. Hat ein Server keine default route, ist die Variable leer.

Es gibt jedoch eine sicherer Möglichkeit um trotzdem die IP zu bekommen.

George Shuklin hat in seinem Blog Eintrag ansible_default_ipv4 is not what you think einen Tipp aufgezeigt.

Dazu nimmt man einfach:

ansible_default_ipv4.address|default(ansible_all_ipv4_addresses[0])

Das heisst, falls ansible_default_ipv4 leer ist, wird der Wert der erste IP Adresse genommen, welche gefunden wird.

Eine andere Möglichkeit ist auch die IP zu nehmen mit der man sich auf dem ansible control host via SSH verbunden hat:

- hosts: all
  gather_facts: yes
  tasks:
    - debug: var=hostvars[inventory_hostname]['ansible_env'].SSH_CONNECTION.split(' ')[2]

Danke an middlewareinventory.com für diesen Tipp.

Published by

Steven Varco

Steven ist ein Redhat RHCE- und Kubernetes CKA Zertifizierter Linux-Crack und ist seit über 20 Jahren sowohl beruflich wie auch privat auf Linux spezialisiert. In seinem Keller steht ein Server Rack mit diversen ESX und Linux Servern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert