我目前利用 Vagrant 和 Chef 为不同的应用程序配置单独的 linux VM。
这些应用程序可从主机进行域寻址,无需在主机上进行任何其他设置。这是在 linux 客户机上使用 avahi 实现的。主机然后通过访客的主机名访问,例如:
myguest1.local -> VM#1
myguest2.local -> VM#2
我现在要安装另一个应用程序,用于复制生产服务器,应该有 2 个 Apache 虚拟主机可在一个 VM 中寻址,例如:
myguest3.local
-> VM#3
myguest4.local
我也可以使用 Vagrant/Chef 完全实现这一点,而不需要对主机进行任何修改吗?
有一个 Vagrant 插件: vagrant-hostsupdater
从 github 页面提取:
还有vagrant-hostmanager,它支持 Windows 机器。我没有使用它,所以欢迎任何反馈。
从它的 github 页面中提取:
所以似乎这两个插件都自动将条目添加到
/etc/hosts
它肯定会起作用,但是您需要在主机的 /etc/hosts 文件中手动设置虚拟主机的条目。这应该是主机上唯一需要的步骤。
您可以使用 Avahi.EntryGroup.AddRecord: python example通过 Avahi API 宣布别名。
SO上提供了使用脚本的详细解决方案