我想知道Ansible是否有辦法訪問本地環境變量。Ansible - 訪問本地環境變量
文檔引用在目標機器上訪問變量:
{{ lookup('env', 'SOMEVAR') }}
是否有訪問源計算機上的環境變量的方法嗎?
我想知道Ansible是否有辦法訪問本地環境變量。Ansible - 訪問本地環境變量
文檔引用在目標機器上訪問變量:
{{ lookup('env', 'SOMEVAR') }}
是否有訪問源計算機上的環境變量的方法嗎?
我對OSX運行Linux虛擬機,然後對我來說:
lookup('env', 'HOME')
回到 「/用戶/貢薩洛」(該HOME
從OSX變量),而ansible_env.HOME
返回 「/根」(該HOME
自變量VM)。
值得一提的是,如果該變量不存在,那麼ansible_env.VAR
會失敗,而lookup('env', 'VAR')
不會失敗。
這些變量在管理機器中,我認爲源機器在你的情況。
檢查: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本地腳本在遠程計算機。 或者你可以只是事實的變量。如果事實並非如此,您可以運行一個shell命令來獲取它。
使用ansible lookup
:
- set_fact: env_var="{{ lookup('env','ENV_VAR') }}"
值得一提的是,如果變量不存在,查找似乎返回一個空字符串。當var的存在表示特殊的構建env時(如Travis CI構建或Docker容器) – EvanK