刀具引导命令没有提示密码

时间:2013-08-26 01:39:22

标签: chef knife

我正在尝试编写一个bash脚本,其中包含使用knife命令引导Ubuntu客户端节点的命令。当我执行脚本时,knife命令询问客户端节点的sudo密码,一旦我输入密码,它就按预期工作。但我正在寻找一种没有提示密码的自动方式。这是我用于引导的命令。

knife bootstrap <IP_ADDRESS> -x <USER_NAME> -P <PASSWORD> --sudo 

检查后knife bootstrap document,我尝试过给ssh-password,如下所示,但结果相同。

knife bootstrap <IP_ADDRESS> --ssh-user <USER_NAME> --ssh-password <PASSWORD> --sudo

此命令可能出错。我期待刀命令自动登录到客户端和引导程序,但它的问题就像,

<IP_ADDRESS> knife sudo password:
 Enter your password:

任何想法??

7 个答案:

答案 0 :(得分:5)

查看文档,这可能是您需要的参数:

--use-sudo-password

虽然文档似乎暗示将使用的密码与ssh操作相同,但我不知道在您的情况下这是否足够。

参考:https://docs.chef.io/knife_bootstrap.html#knife-bootstrap-options

答案 1 :(得分:3)

如果您想避免使用密码,可以在chef-node上设置工作站的ssh密钥并运行

knife bootstrap yourclient.domain.com -x <USER_NAME> -i ~/.ssh/id_rsa -N client1 --sudo

答案 2 :(得分:2)

这就是我的工作方式。

echo <SSH_PASSWORD> | knife bootstrap <IP_ADDRESS> -x <USER_NAME> -P <PASSWORD> --sudo

答案 3 :(得分:0)

我在你的命令中看到一个拼写错误

应为--ssh-password

你拥有的是--sh-password

答案 4 :(得分:0)

查看/etc/sudoers文件中的NOPASSWD选项。这会配置sudo以禁止密码检查。

答案 5 :(得分:0)

发生了两种身份验证:

  1. SSH连接(可以通过密钥或通过密码)
  2. sudo身份验证(通常需要密码)。
  3. 当你第一次引导机器时,我认为你不能避免需要sudo密码。

    我见过Ruby代码可以通过SSH连接传递sudo密码(因此用户不必在命令中间键入它),但我不认为knife有内置的。

答案 6 :(得分:0)

需要以这种方式使用(为我工作)

knife bootstrap $ipaddr --ssh-user $userid --ssh-password $pswd --node-name $hostname --sudo --use-sudo-password -P $pswd
  

- 使用-须藤密码     此选项也需要提供密码,与您提供--ssh-password

的方式相同