我試圖通過Ansible使用腳本來安裝pacaur:Ansible shell命令`pod2man`沒有找到
curl -s https://gist.githubusercontent.com/Tadly/0e65d30f279a34c33e9b/raw/pacaur_install.sh | bash
隨着ansible命令
ansible 192.168.1.2 -m shell -a "curl -s https://gist.githubusercontent.com/Tadly/0e65d30f279a34c33e9b/raw/pacaur_install.sh | bash"
,但我得到pacman
抱怨pod2man
失蹤。這似乎是一個有道理的道路的問題。
直接使用ssh在機器上運行命令可以正常工作。
下面是輸出:ansible -m all shell -a 'echo $PATH'
localhost | SUCCESS | rc=0 >>
/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
192.168.1.2| SUCCESS | rc=0 >>
/usr/bin:/bin:/usr/sbin:/sbin
這是否需要以特別的方式完成(在這種情況下,解決這個問題的最快方式就是手動進行ssh和安裝),或者在編寫劇本時還可以嗎?您是否嘗試過使用['command'](https://docs.ansible.com/ansible/command_module.html)或['shell'](https://docs.ansible.com/ansible/shell_module.html#shell )而不是?如何運行一個腳本,首先回顯'PATH'? –
更可能sudo的PATH。 pacaur_install.sh通過sudo調用pacman。看來,pod2man不在sudo的PATH中。您需要調整安裝腳本以在sudo調用中設置PATH或調整sudoers中的PATH。 – sborsky
@XiongChiamiov我需要理智的原因是,實際上我需要在幾臺機器上安裝:)。然而,我發佈了腳本的結果,迴應了'PATH' @ sborsky這似乎是原因。 [this](http://serverfault.com/questions/734560/ansible-become-user-not-picking-up-path-correctly)問題似乎有關。即使正常的SSH我得到正確的'路徑'。 – SolidSnake