Ansible-访问本地环境变量


68

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

该文档引用了目标计算机上的访问变量:

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

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

Answers:


101

我有一个在osx上运行的Linux虚拟机,对我来说:

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

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


5
值得一提的是,如果变量不存在,则查找将返回一个空字符串。当var的存在指示特殊的构建环境(例如Travis CI构建或
docker


8

这些变量在管理机中,我认为是您的情况下的源机。

检查以下内容: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事实变量。如果没有事实,您可以运行一个shell命令来获取它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.