刀ssh包含sudo和提示输入密码

问题描述:

我正在使用调用刀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

我建议你创建/使用另一个用户并为该用户生成一个SSH密钥对以供使用。然后,如果你需要root权限,你可以给用户所需的权限。