Chef Knife Bootstrap Vagrant VM - 连接错误

时间:2015-04-19 18:29:11

标签: chef virtualbox bootstrapping knife

我的环境:安装了Chef客户端的Virtualbox,CentOs VM 6.5 Ubuntu 12.04 Vagrant Box

问题:我正在尝试$knife boostrap vagrant.vm -x vagrant -N "target1",但我收到了不同的错误消息:

"Connecting to vagrant.vm"
ERROR: Network Error: getaddrinfo: Name or service not known. Check your knife configuration and network settings. 

我尝试使用IP 127.0.0.1连接到Vagrant VM

Error: Network error: connection refused - connect(2) for 127.0.0.1 port 22. Check your knife configuration and network settings. 

我可以将vagh@127.0.0.1 ssh进入流浪盒中,没有任何问题。 /etc/hostname具有正确的VM的IP和FQDN。

为什么刀靴带命令无法连接到我的Vagrant VM?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

当vagrant启动一台机器时,它不会直接在localhost上侦听端口22;机器将在端口22上侦听,但Vagrant为SSH设置端口转发,具体细节取决于提供程序(virtualbox vs vmware等),以及网络选项(桥接,仅主机等),可以是在Vagrantfile

中设置

vagrant up之后,您会看到如下所示的输出:

default: Fixed port collision for 22 => 2222. Now on port 2201.
default: Starting the VMware VM...
default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 192.168.21.131:22
...
default: Forwarding ports...
default: -- 22 => 2201

所以机器启动后,我们可以直接SSH:

% ssh -p2201 vagrant@localhost
Warning: Permanently added '[localhost]:2201' (RSA) to the list of known hosts.
vagrant@localhost's password:
Last login: Mon Apr 20 04:18:44 2015 from 192.168.21.1
[vagrant@localhost ~]$

然后可以使用端口选项knife bootstrap完成-p 2201

但是,我想知道你为什么要对流浪汉机器使用knife bootstrap。 Vagrant支持直接使用Chef作为配置器,使用chef-solo,chef-client和常规Chef服务器,chef-zero(通常用于测试的内存Chef服务器)或chef-apply。有关详细信息,请参阅vagrant网站上的配置文档。