【问题标题】:knife ssh contains sudo and prompts for passwordKnife ssh 包含 sudo 并提示输入密码
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-11-12
    • 2016-04-08
    • 1970-01-01
    • 2012-08-11
    • 2019-04-19
    • 1970-01-01
    • 2022-01-06
    • 2014-02-28
    • 2018-10-17
    相关资源
    最近更新 更多