如何在我的vagrant vm上设置hosts文件

时间:2016-11-16 19:20:20

标签: vagrant

我们正在尝试使用nginx作为代理/路由器,因此我们可以重新开发大型整体网站的部分内容。我们的想法是让开发人员在流浪汉创建的vm中运行nginx,它将请求路由到新站点或原始monolith。所有站点都在主机的窗口中。

我需要在guest虚拟机操作系统上设置hosts文件,以便它可以路由到主机。目前主机网站在localhost上运行,并且客户端OS认为它也在127.0.0.1上,因此来自nginx的路由失败。

我需要使用站点名称和主机的IP更新guest虚拟机主机文件。

我看到一个名为vagrant host manager的东西,但是......我很满意这个网络的东西。

由于

更新: 我在vagrantfile中有这个来设置nginx。

config.vm.provision "shell", inline: <<-SHELL1
    apt-get -y update
    apt-get -y install nginx   
    apt-get -y install curl

  SHELL1

  config.vm.provision "shell", run:"always", inline: <<-SHELL2
    echo "Configuring Nginx"
    cp /vagrant_data/nginx.conf /etc/nginx/sites-available/nginx_vhost
    ln -s /etc/nginx/sites-available/nginx_vhost /etc/nginx/sites-enabled/
    rm -rf /etc/nginx/sites-available/default
    service nginx restart

  SHELL2

我有以下内容来更新我的主机主机文件(windows):

  config.hostmanager.enabled = true
  config.hostmanager.manage_host = true
  config.hostmanager.manage_guest = false
  config.hostmanager.ignore_private_ip = false
  config.hostmanager.include_offline = true

1 个答案:

答案 0 :(得分:0)

根据上面的更新解决了问题,并使用此更新来宾操作系统主机:

sudo echo "10.0.2.2 site.name" | sudo tee -a /etc/hosts

10.0.2.2是主机的硬编码虚拟机ip。 使用sed的其他变体给出了错误。