variable register facts ansible

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'') }}"