【问题标题】:how do I setup the hosts file on my vagrant vm如何在我的 vagrant vm 上设置主机文件
【发布时间】:2016-11-16 19:20:20
【问题描述】:

我们正在尝试使用 nginx 作为代理/路由器,这样我们就可以重新开发大型单体网站的部分内容。这个想法是让开发人员在 vagrant 创建的 vm 中运行 nginx,它将请求路由到新站点或原始单体。所有站点都在主机上的 Windows 中。

我需要在来宾操作系统上设置主机文件,以便它可以路由到主机。当前主机网站在 localhost 上运行,而来宾操作系统认为它也在 127.0.0.1 上,因此来自 nginx 的路由失败。

我需要让 vagrant 使用站点名称和主机 IP 更新来宾主机文件。

我看到一个叫做 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

【问题讨论】:

  • 你知道你需要添加到主机文件吗?只需一个 shell 脚本即可将信息附加到您的文件中。
  • 是的,但我想将其提供给其他开发人员,因此我无法在其中硬编码自己的 IP 地址。我认为 shell 脚本可以正常工作 - 只是不知道如何将其放入 vagrantfile。
  • 哦,刚刚发现这个:stackoverflow.com/questions/19917148/…

标签: vagrant


【解决方案1】:

按照上面的更新解决了,并使用它来更新来宾操作系统主机:

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

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

【讨论】:

    猜你喜欢
    • 2015-12-05
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-08
    • 1970-01-01
    相关资源
    最近更新 更多