【发布时间】:2017-09-13 05:32:27
【问题描述】:
我正在使用调用knife ssh 的执行资源。唯一的问题是,如果不使用 sudo,它可以正常工作,在引入 sudo 的那一刻,请求 root 的密码并且食谱不收敛。需要帮助:
当前状态:
...
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
...
chef-client 运行后(作为 Jenkins 构建)它会提示以下内容并且不会收敛,因为未输入密码: 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
...
chef-client运行后,字符串Hi存储在/tmp/output.txt中
注意:
如果 sudo 被排除,则发生收敛。这是一种我们可以包含sudo 并且仍然无需输入密码即可实现收敛的方法。
【问题讨论】:
-
你为什么要使用 Chef 食谱代码来调用
knife ssh?这真是一件很奇怪的事情。 -
@coderanger 一旦启动 Jenkins 构建,这个厨师食谱将运行
execute资源块。这是一种不好的做法吗?
标签: chef-infra sudo knife