2017-09-12 98 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

注: 如果須藤被排除,那麼收斂發生。是否可以包含sudo,並且無需輸入密碼即可達到收斂。

+0

爲什麼你使用廚師食譜代碼來調用'knife ssh'?這是一件非常奇怪的事情。 – coderanger

+0

@coderanger一旦Jenkins構建啓動,這個廚師食譜將運行'execute'資源塊。這是一種不好的做法嗎? – srajappa

回答

0

我建議你創建/使用另一個用戶併爲該用戶生成一個SSH密鑰對以供使用。然後,如果你需要root權限,你可以給用戶所需的權限。