Ansible - 访问本地环境变量

时间:2014-01-29 04:32:44

标签: ansible

我想知道Ansible是否有办法访问本地环境变量。

文档引用访问目标机器上的变量:

{{ lookup('env', 'SOMEVAR') }}

有没有办法在源计算机上访问环境变量?

3 个答案:

答案 0 :(得分:79)

我在osx上运行Linux vm,对我来说:

lookup('env', 'HOME')返回" / Users / Gonzalo" (来自osx的HOME变量),而ansible_env.HOME返回" / root" (来自vm的HOME变量。)

值得一提的是,如果变量不存在,ansible_env.VAR会失败,而lookup('env', 'VAR')不会失败。

答案 1 :(得分:17)

使用ansible lookup

- set_fact: env_var="{{ lookup('env','ENV_VAR') }}"

答案 2 :(得分:7)

这些变量在管理机器中,我认为是你机器中的源机器。

请检查:http://docs.ansible.com/faq.html#how-do-i-access-shell-environment-variables

它说: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:

现在,如果您需要在远程计算机中访问它,您只需在远程计算机中本地运行ansible脚本即可。 或者你可以只是ansible事实变量。如果它不在ansible事实中,你可以运行一个shell命令来获取它。