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?

45
demandé sur infused 2014-01-29 08:32:44

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.

65
répondu grilix 2014-06-09 16:52:26

Utilisez ansible lookup:

- set_fact: env_var="{{ lookup('env','ENV_VAR') }}"
14
répondu Quyen Nguyen Tuan 2017-03-10 14:50:07

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.

3
répondu Rico 2014-01-30 00:31:13