web-dev-qa-db-fra.com

Ansible - accès aux variables d'environnement locales

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?

62
alexs333

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.

88
grilix

Utilisez ansible lookup:

- set_fact: env_var="{{ lookup('env','ENV_VAR') }}"
19
Quyen Nguyen Tuan

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.

8
Rico