Je me demande s’il existe un moyen pour Ansible d’accéder aux variables d’environnement locales.
La documentation référence l'accès à la variable sur la machine cible:
{{ lookup('env', 'SOMEVAR') }}
Existe-t-il un moyen d'accéder aux variables d'environnement sur la machine source?
J'ai une machine virtuelle Linux sous osx, et pour moi:
lookup('env', 'HOME')
renvoie "/ Users/Gonzalo" (la variable HOME
de osx), tandis que ansible_env.HOME
renvoie "/ root" (la variable HOME
de la vm).
Il est à noter que ansible_env.VAR
Échoue si la variable n'existe pas, alors que lookup('env', 'VAR')
n'échoue pas.
Utilisez ansible lookup
:
- set_fact: env_var="{{ lookup('env','ENV_VAR') }}"
Ces variables sont dans la machine de gestion, je suppose, la machine source dans votre cas.
Vérifiez ceci: http://docs.ansible.com/faq.html#how-do-i-access-Shell-environment-variables
Ça dit: If you just need to access existing variables, use the ‘env’ lookup plugin. For example, to access the value of the HOME environment variable on management machine:
Maintenant, si vous devez y accéder sur la machine distante, vous pouvez simplement exécuter votre script ansible localement sur la machine distante. Ou vous pourriez simplement les variables de faits ansible. Si ce n'est pas dans les faits, vous pouvez simplement exécuter une commande Shell pour l'obtenir.