0

Ansible 経由でスクリプトを使用して pacaur をインストールしようとしています。

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について不平を言います。pod2manansibleコマンドのPATHに問題があるようです。

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
4

2 に答える 2

1

コメントで報告されているように、問題は、ユーザーを切り替えるときにsudoサニタイズすることですPATH(詳細については、この ServerFault の質問を参照してください)。

私が提案するローカルをホストにエクスポートするためのアドホック コマンドPATHは少しハックに思えますが、機能します (コマンドの--extra-varsオプションansibleとジンジャの変数インジェクションを組み合わせて使用​​します) 。

ansible all -m shell -a "export PATH={{path}}; curl -s https://gist.githubusercontent.com/Tadly/0e65d30f279a34c33e9b/raw/pacaur_install.sh | bash" -e path=$PATH

を使用して{{ lookup('env', 'PATH') }}を転送することもできますPATH

于 2016-10-01T17:06:36.043 に答える
1

スクリプトモジュールfree-formパラメータは

ローカル スクリプト ファイルへのパスとそれに続くオプションの引数。

だからansible 192.168.1.2 -m script -a "https://gist.githubusercontent.com/Tadly/0e65d30f279a34c33e9b/raw/pacaur_install.sh"うまくいかないはずです。Ansible コントロール ホストにスクリプトをダウンロードし、自由形式のパラメーターをスクリプトのローカル パスに設定すると、機能するはずです。

于 2016-09-30T17:28:22.783 に答える