我正在尝试通过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?
答案 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;在我的刀引导命令期间,但在重试时它会成功。
如果它能解决您的问题,请将我的答案标记为正确答案。