我的环境:安装了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?我该如何解决这个问题?
答案 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网站上的配置文档。