5

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

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

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

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

这个命令可能有什么问题。我期待刀命令自动登录到客户端和引导程序,但它的询问就像,

<IP_ADDRESS> knife sudo password:
 Enter your password:

有任何想法吗??

4

7 回答 7

6

浏览文档,这可能是您需要的参数:

--use-sudo-password

尽管文档似乎暗示将使用的密码与 ssh 操作相同,但我不知道这是否足以满足您的情况。

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

于 2013-11-08T20:33:29.300 回答
4

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

knife bootstrap yourclient.domain.com -x <USER_NAME> -i ~/.ssh/id_rsa -N client1 --sudo
于 2014-07-11T17:09:24.563 回答
3

这就是我完成这项工作的方式。

echo <SSH_PASSWORD> | knife bootstrap <IP_ADDRESS> -x <USER_NAME> -P <PASSWORD> --sudo
于 2014-07-01T10:45:36.980 回答
0

我在你的命令中看到一个错字

它应该是--ssh-password

你所拥有的是--sh-password

于 2013-08-26T06:19:05.040 回答
0

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

于 2013-08-27T00:00:27.563 回答
0

有两种身份验证发生:

  1. SSH 连接(可以通过密钥或密码)
  2. 身份验证(sudo通常需要密码)。

当您第一次启动机器时,我认为您无法避免需要 sudo 密码。

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

于 2013-11-07T04:35:39.633 回答
0

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

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

--use-sudo-password 也需要为此选项提供密码,与您为 --ssh-password 提供的方式相同

于 2015-09-28T10:09:16.710 回答