2

Когда config.vm.hostname установлен в Vagrantfile, 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 имеет смысл вообще? Что мне не хватает?

Спасибо за вашу помощь!

0