Khi config.vm.hostname được đặt trong Vagrantfile, Vagrant sẽ quản lý tên máy chủ. Hơn nữa, và đây là phần tồi tệ đối với tôi, nó thao túng / etc / hosts để chứa tên máy chủ trỏ đến 127.0.0.1 (localhost).
Điều này hầu như không có ý nghĩa ... đặc biệt là khi không có giao diện mạng công cộng. Vấn đề phát sinh là khi các ứng dụng sử dụng tên máy chủ để xác định địa chỉ IP để liên kết.
Đây là một ví dụ mô phỏng tập tin Vagrant để chứng minh vấn đề
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
Kết quả là một tập tin / etc / hosts như bên dưới.
127.0.0.1 test.mydomain.xyz test localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
Vì vậy, câu hỏi của tôi là
- Làm cách nào tôi có thể ngăn người lang thang thao tác với tập tin / etc / hosts theo cách này? Vì tôi tự quản lý tệp máy chủ, tôi có thể ngăn nó chạm vào tệp máy chủ không? Dường như không có tùy chọn nào trong Vagrant 1.8.1 cho điều đó.
- Làm thế nào để hành vi Vagrant mặc định này có ý nghĩa ở tất cả? Tôi nhớ cái gì
Cảm ơn bạn đã giúp đỡ!
Tôi đã biến chủ đề này thành trang GIThub của Vagrant github.com/mitchellh/vagrant/issues/7263
—
John