问题 。 遵循命令行
knife bootstrap 127.0.0.1 -r 'recipe[chef-client]' -x user -p password --sudo
回报
Bootstrapping Chef on 127.0.0.1 WARNING: Failed to connect to 127.0.0.1 -- Errno::ECONNREFUSED: Connection refused - connect(2)
预计这个命令将会成功并在之后
knife node list
将返回
[ "127.0.0.1" ]
SSH服务器在localhost上工作正常,并且ssh [email protected] -p password按预期工作。
看起来像调用的问题是你用-p选项指定了密码,哪个knife bootstrap用来指定一个备用的ssh端口。 你想使用-P (大写-P P),这是正确的选项来指定bootstrap命令的密码。
而且,正如贾斯汀所指出的,如果你已经安装了厨师,你可以运行“刀”命令,bootstrap可能在技术上是不必要的。 你应该能够发起一个“主厨客户”来把你的节点注册到服务器上(如果在/ etc / chef中没有安装/可用,可能需要带-K选项的validation密钥)。 一旦注册到您的服务器,您可以发出knife node run_list add命令添加适当的angular色/食谱到运行列表,然后调用另一个chef-client使其生效。 然后, bootstrap再次执行一个命令,所以这不是一个可怕的select。
您必须将IP和NODENAME(主机名)添加到/ etc / hosts:
127.0.0.1 NODENAME
然后分割%刀引导程序127.0.0.1 -r'配方[厨师客户端]'-x用户-p密码 – 研究到两个步骤:
步骤1:
% knife bootstrap IP_ADDRESS -x ubuntu -P PASSWORD --sudo
第2步:
% knife ssh name:NODENAME -x ubuntu -P PASSWORD "sudo chef-client"
如果您的连接被拒绝,则无法打开SSH连接,因为:
也就是说,“knife bootstrap”旨在用于使用Ruby / RubyGems设置远程系统,安装Chef并将其configuration为连接到已configuration的厨师服务器(从本地刀具configuration)。 有关“knife bootstrap”命令的更多信息,请参阅:
此外,节点名称将是检测到的完全限定域名(通常为hostname -f输出),除非使用-N NODE_NAME指定。