Je vois qu'Ansible fournit certaines variables prédéfinies que nous pouvons utiliser dans les playbooks et les fichiers de modèle. Par exemple, l'adresse IP de l'hôte est ansible_eth0.ipv4.address
. En cherchant sur Google et dans les documents, je n'ai pas trouvé de liste de toutes les variables disponibles.
Quelqu'un pourrait-il les énumérer pour moi ?
Réponses
Trop de publicités?Le site debug
module peut être utilisé pour analyser les variables. Faites attention en exécutant la commande suivante. Dans notre configuration, elle génère 444709 lignes avec 16MB :
ansible -m debug -a 'var=hostvars' localhost
Je ne suis pas sûr, mais il est peut-être nécessaire d'activer la mise en cache des faits.
Si vous n'avez besoin que d'un seul hôte, utilisez le nom de l'hôte comme clé pour le fichier hostvars
haché :
ansible -m debug -a 'var=hostvars.localhost' localhost
Notez que la documentation officielle sur les variables de configuration de la connexion ou variables "comportementales" - qui ne sont pas répertoriées dans les variables de l'hôte - semble être la suivante Liste des paramètres de l'inventaire comportemental dans le Inventaire documentation.
P.S. Le sudo
n'y est pas documentée (oui son sudo
no ansible_sudo
comme on peut s'y attendre ...) et probablement quelques autres ne le sont pas, mais c'est la meilleure documentation que j'ai trouvée sur eux.
Certaines variables ne sont pas disponibles sur tous les hôtes, par ex. ansible_domain
y domain
. Si la situation doit être déboguée, je me connecte au serveur et j'émets un message :
user@server:~$ ansible -m setup localhost | grep domain
[WARNING]: provided hosts list is empty, only localhost is available
"ansible_domain": "prd.example.com",
Je sais que cette question a déjà reçu une réponse, mais j'ai l'impression qu'il existe tout un autre ensemble de variables prédéfinies non couvertes par les faits ansible_*. Cette page de documentation couvre le directives (variables qui modifient le comportement d'Ansible), que je recherchais lorsque je suis tombé sur cette page.
Il s'agit de directives de cas d'utilisation communs et spécifiques :
- devenir : Contrôle l'escalade des privilèges (sudo)
- delegate_to : exécuter la tâche sur un autre hôte (comme l'exécution sur localhost)
- série : permet d'exécuter un jeu sur un nombre/pourcentage spécifique d'hôtes avant de passer au jeu suivant.
https://github.com/f500/ansible-dumpall
FYI : ce projet github vous montre comment lister 90% des variables sur tous les hôtes. Je trouve que c'est plus utile globalement que les commandes pour un seul hôte. Le README inclut des instructions pour construire un rapport d'inventaire simple. Il est encore plus utile de le lancer à la fin d'un playbook pour voir tous les faits. Pour déboguer également le comportement de Task, utilisez register :
Il manque quelques éléments au résultat : - les variables du fichier YAML inclus - extra-vars - un certain nombre de variables internes à Ansible décrites ici : Paramètres comportementaux d'Ansible
- Réponses précédentes
- Plus de réponses