防止 Vagrant 操纵 /etc/hosts

防止 Vagrant 操纵 /etc/hosts

当在 Vagrantfile 中设置 config.vm.hostname 时,Vagrant 会管理主机名。此外,这对我来说是糟糕的部分,它会操纵 /etc/hosts 以包含指向 127.0.0.1 (localhost) 的主机名。

这几乎毫无意义……尤其是在有公共网络接口的情况下。当应用程序使用主机名来确定要绑定的 IP 地址时,就会出现问题。

这是一个 Vagrant 文件示例,用于演示此问题

Vagrant.configure(2) do |config|
  config.vm.box = "centos/7"
  config.vm.network :public_network, ip: "192.168.2.100", netmask: "255.255.255.0", bridge: ["eno1", "enp6s0"]
  config.vm.hostname = "test.mydomain.xyz"
end

结果是一个 /etc/hosts 文件,如下所示。

127.0.0.1   test.mydomain.xyz test localhost localhost.localdomain localhost4 localhost4.localdomain4                                                                                 
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6                                                                                                        

我的问题是

  1. 我怎样才能阻止 vagrant 以这种方式操作 /etc/hosts 文件?由于我自己管理 hosts 文件,我能完全阻止它接触 hosts 文件吗?Vagrant 1.8.1 中似乎没有这个选项。
  2. 这种默认的 Vagrant 行为到底有什么意义?我错过了什么?

感谢您的帮助!

相关内容