2017-09-12 6 views
0

ナイフsshを呼び出す実行リソースを使用しています。唯一の問題は、sudoを使用しないとうまくいきます。sudoがrootのパスワードを要求され、cookbookが収束していない瞬間です。助けが必要:ナイフsshにはsudoが含まれており、パスワードの入力を求められます。

現状

...  
execute 'command' do 
      command "knife ssh 'name:mynode' -x user123 -i '/tmp/user123.pem' -a ipaddress 'sudo echo Hi > /tmp/output.txt;'" 
      live_stream true 
end 
... 

(ジェンキンスビルドとして)シェフ・クライアントが実行された後、それは次のことを要求し、パスワードが入れ-にされていないため、収束しない: MYNODE>ナイフはsudoパスワード:

望ましい状態

...  
execute 'command' do 
       command "knife ssh 'name:mynode' -x user123 -i '/tmp/user123.pem' -a ipaddress 'sudo echo Hi > /tmp/output.txt;'" 
       live_stream true 
end 
... 

シェフ・クライアントが実行された後、文字列Hi/tmp/output.txt

NOTEに格納されていますが除外されている 須藤場合、収束が行われます。それはsudoを含めることができ、パスワードを入力せずにコンバージェンスを達成できる方法ですか?

+0

なぜシェフのレシピコードを使用して「ナイフssh」を呼びますか?それは本当に奇妙なことです。 – coderanger

+0

@coderanger Jenkinsのビルドが開始されると、このシェフのレシピは 'execute'リソースブロックを実行します。それは悪い習慣ですか? – srajappa

答えて

0

他のユーザーを作成/使用し、そのユーザーが使用するためのSSHキーペアを生成することをお勧めします。 root権限が必要な場合は、必要な権限をユーザに与えることができます。

関連する問題