Chef / Vagrant SSH bootstrap错误

时间:2016-10-30 19:41:09

标签: ssh chef knife

我正在尝试通过Chef引导节点,bento / centos 7.2,并且遇到SSH错误。

我和vagrant一​​起安装了virtualbox。使用内置于Chef DK的ssh客户端,我能够毫无问题地进入vm。我使用Hosted Chef作为我的服务器。

在我的Win 10工作站上,我发出以下命令并收到错误消息。

PS C:\Users\Topher\Documents\Learn Chef\.chef> knife bootstrap 10.0.2.15 --ssh-user vagrant --sudo --ssh-identity-file C:\Users\
Topher\.vagrant\machines\default\virtualbox\private_key --node-name localhost --run-list 'recipe[learn_chef_httpd]'
Node localhost exists, overwrite it? (Y/N) Y
Client localhost exists, overwrite it? (Y/N) Y
Creating new client for localhost
Creating new node for localhost
Connecting to 10.0.2.15
ERROR: Net::SSH::ConnectionTimeout: Net::SSH::ConnectionTimeout 

任何想法是什么导致ConnectionTimeout?

1 个答案:

答案 0 :(得分:0)

在我的情况下,我尝试使用刀具来引导远程服务器(不是本地Vagrant VM),如下所示:

knife bootstrap <FQDN of node being provisioned> -x <username> -P <password> --sudo --use-sudo-password <password> -N <name for node being provisioned>

在我的情况下,问题是我的Chef服务器作为本地VM运行,并且它使用的是VirtualBox专用网络,因此我无法访问使用knife配置的节点。通过将我的Chef服务器的Vagrant配置更改为公共桥接网络,我能够通过&#34; ERROR:Net :: SSH :: ConnectionTimeout:Net :: SSH :: ConnectionTimeout&#34;在我的刀引导命令期间。这是我的Vagrant文​​件更改的样子:

Vagrant.configure(2) do |config|
  config.vm.define 'chef-server' do |cs|
    cs.vm.box = 'bento/ubuntu-14.04'
    cs.vm.box_version = '2.2.9'
    cs.vm.hostname = 'chef-server.test'
    #cs.vm.network 'private_network', ip: 'xxx.16.9.5'
    cs.vm.network "public_network", 
      bridge: "Intel(R) Ethernet Connection I217-LM", 
      ip: ENV.fetch("IPS", "xxx.16.9.5"), netmask: ENV.fetch("NETMASKS", "255.255.0.0")
    cs.vm.provision 'shell', inline: CHEF_SERVER_SCRIPT.dup
    set_hostname(cs)

    cs.vm.provider 'virtualbox' do |v|
      v.memory = 2048
      v.cpus = 2
    end
  end

请注意注释掉的私有网络和紧随其后的未注释的公共网络。

一个有用的命令行arg for knife是-VV用于详细/调试输出。试试看,它是否能让你更深入地了解你的问题。

我注意到的另一件事是,在我的情况下,我有时候会出现&#34; ERROR:Net :: SSH :: ConnectionTimeout:Net :: SSH :: ConnectionTimeout&#34;在我的刀引导命令期间,但在重试时它会成功。

如果它能解决您的问题,请将我的答案标记为正确答案。