facts - register variable ansible
Ansible-accediendo a variables de entorno local (3)
Me pregunto si hay una manera para que Ansible tenga acceso a las variables de entorno locales.
La documentación hace referencia al acceso a la variable en la máquina de destino:
{{ lookup(''env'', ''SOMEVAR'') }}
¿Hay alguna forma de acceder a las variables de entorno en la máquina fuente?
Esas variables están en la máquina de gestión. Supongo que la máquina fuente en su caso.
Verifique esto: http://docs.ansible.com/faq.html#how-do-i-access-shell-environment-variables
Dice: 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:
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:
Ahora, si necesita acceder a él en la máquina remota, puede ejecutar su script ansible localmente en la máquina remota. O podría simplemente las variables de hechos ansible. Si no está en los hechos posibles, puede ejecutar un comando de shell para obtenerlo.
Tengo una vm de Linux ejecutándose en osx, y para mí:
lookup(''env'', ''HOME'')
devuelve "/ Users / Gonzalo" (la variable HOME
de osx), mientras que ansible_env.HOME
devuelve "/ root" (la variable HOME
de la vm).
Vale la pena mencionar que ansible_env.VAR
falla si la variable no existe, mientras que la lookup(''env'', ''VAR'')
no falla.
Use la lookup
ansible:
- set_fact: env_var="{{ lookup(''env'',''ENV_VAR'') }}"