Ansible-variables d'accès à l'environnement local
je me demande s'il y a un moyen pour Ansible d'accéder aux variables d'environnement locales.
la documentation renvoie à la variable d'accès sur la machine cible:
{{ lookup('env', 'SOMEVAR') }}
y a-t-il un moyen d'accéder aux variables d'environnement sur la machine source?
3 réponses
j'ai une machine virtuelle Linux fonctionne sur osx, et pour moi:
lookup('env', 'HOME')
renvoie "/Users/Gonzalo" (le HOME
variable à partir de osx), tandis que ansible_env.HOME
retourne "/ root" (le HOME
variable de la vm).
la Peine de mentionner 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 machine source dans votre cas.
Vérifiez ceci: http://docs.ansible.com/faq.html#how-do-i-access-shell-environment-variables
Il 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 avez besoin d'accéder à l'ordinateur distant, vous pouvez simplement exécuter votre ansible script en local sur la machine distante. Ou vous pourriez juste les variables de faits possibles. Si ce n'est pas dans les faits possibles, vous pouvez juste lancer une coquille commande pour l'obtenir.