如何从具有桥接网络设置的VM上安装的localhost访问chef-server 11?

时间:2013-03-12 16:00:53

标签: networking ubuntu-12.04 virtual-machine chef vagrant

我正在尝试通过vagrant(Vagrant版本1.0.6)在虚拟机上安装chef-server 11。

在Vagrantfile中,设置如下:

config.vm.box_url = "opscode-ubuntu-12.04.box"
config.vm.network :bridged
config.vm.forward_port 80, 8080

我无法通过安全的localhost或安全的localhost访问chef-server:8080(重定向到https://vagrant.vm/)。

当我将网络设置为hostonly

时,它工作正常

但我对桥接感兴趣,因为它需要被任何外部网络访问。

我正在遵循的步骤:

  1. vagrant up
  2. vagrant ssh
  3. 在VM端:dpkg -r chef(厨师10已经在opscode-ubuntu-12.04.box中)
  4. 然后dpkg -i chef-server_11.0.6-1.ubuntu.12.04_amd64.deb
  5. sudo chef-server-ctl reconfigure
  6. sudo chef-server-ctl status:一切都很好
  7. sudo chef-server-ctl test:全部70个示例绿色
  8. 谢谢

1 个答案:

答案 0 :(得分:0)

Chef服务器尝试将您重定向到https://hostname/。 这就是为什么要尝试更改主机名和/或添加主机的主机文件记录。

您的虚拟机中还有两个接口。 解决方案:

eth0 - NAT,只转发两个端口。打开https并在hosts-file

中使用eth0s'ipaddres

在hosts-file中使用eth1的ipaddress,因为此接口实际上是桥接的。

/ etc / hosts中:

...
<ip_address> <hostname_of_vm>

PS。在组织网络桥接网络应该工作,因为服务器自动在网络中注册dhcp / dns(当然,如果组织支持它)。

OHAI也可能返回错误的fqdn / ip,因为它试图绑定到第一个接口(eth0 / 10.0.2.15)。

试试这个:

vagrant up --no-provision
vagrant ssh
sudo route del default
sudo route add default dev eth1 # just find a way to get eth1' route as default
^D
vagrant provision