3 votes

obtenir l'ip d'un nom d'hôte particulier avec ansible

J'ai un fichier hôte qui ressemble à peu près à ceci :

[kibanamaster]
efk host_ip host user passwd
[elasticnode]
esnode host_ip user passwd

et j'essaie quelque chose dans le style de

- name: get ip address node1
  debug: var=hostvars[inventory_host]['esnode']['ansible_default_ipv4']['address'] 
  register: es_node1

Mais j'obtiens une variable non définie. Quelqu'un peut-il m'aider ?

EDIT : Si je le fais

debug: var=hostvars[LOG1]['esnode']['ansible_default_ipv4']['address']
register: node_1 

J'obtiens

{"hostvars[LOG1]['ansible_default_ipv4']['address']": "VARIABLE IS NOT DEFINED!"}

3voto

Konstantin Suvorov Points 34119

hostvars variable magique est un dictionnaire dont les clés sont nommées d'après les hôtes de votre inventaire.

Vous pouvez donc essayer :

hostvars['esnode']['ansible_default_ipv4']['address']

pour obtenir l'adresse IP de esnode hôte.

1voto

Vous pouvez utiliser une variable ansible pré-chargée pour obtenir les valeurs pour ipv4, ipv6 et le nom d'hôte.

IPV4 --> {{ ansible_eth0.ipv4.address }}

IPV6 --> {{ ansible_eth0.ipv6.address }}

Hostname --> {{ ansible_hostname }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X