我在/etc/profile.d/
文件夾中定義了一個envs.sh
腳本。 執行ansible-playbook
時,我試圖讓這個的環境變量的值,但它,而不是拋出我的錯誤:Ansible - /etc/profile.d腳本
Ansible測試:
debug: msg="{{ ansible_env.NGN_VAL }} is an environment variable"
錯誤:
fatal: [xxx.yyy.zzz.kkk] => One or more undefined variables: 'dict object' has no attribute 'NGN_VAL'
FATAL: all hosts have already failed -- aborting
爲什麼它不會執行該文件夾內的腳本?當我通過ssh
連接時,我會回顯它並顯示它的值。如何設置遠程環境變量並在執行過程中獲取它們?
感謝
什麼是linux發行版?你能發佈'ls -l /etc/profile.d/envs.sh'的輸出嗎? 「ssh用戶」和「有用用戶」是否一樣? – helloV
你可以使用環境:在你的劇本開始。但是如果你想使用一個文件中的變量,使用一個shell:source /etc/profile.d/envs.sh &&命令....但是這個解決方案只能在一個任務中工作。最好的方法是使用環境模塊 –
@helloV,它是一個ubuntu/trusty64 14.04。在文件內部,我只輸出一個變量:'export NGN_VAL = myvalue'。我認爲用戶是一樣的,是的。我試圖在這個變量中保留一個密碼。但是我剛剛看到了密碼,ansible有一個名爲'Vaults'的解決方案。我要試驗它,但無論如何,如果你知道爲什麼我的變量沒有被加載,你可以在這裏回答。謝謝! – armoucar