我希望每次运行 vagrant up
/ vagrant destroy
时,根据项目's dirname and VM'的IP地址自动添加/删除我的 /etc/hosts
文件的条目别名 . 有一些插件可以做到这一点,但不支持dhcp .
我正在使用 machine_name = File.basename(File.expand_path('..', Dir.pwd)) + '.local'
构建dirname .
我缺少的另一个难题是在Vagrantfile中获取VM的dhcp分配的IP地址并更新主机上的/ etc / hosts文件 .
我的目标是在Vagrantfile和/ etc / hosts中编辑虚拟机而不编辑其名称和/或IP .
我正在使用Vagrant 1.7.4,VirtualBox 5.x和Puppet 4.2 .
有任何想法吗?
3 回答
我安装了vagrant-hostmanager,它有一个非常有用的
config.hostmanager.ip_resolver
选项 .将以下代码添加到
Vagrantfile
以确保在运行vagrant up
命令时更新/etc/hosts
文件:积分:https://github.com/smdahlen/vagrant-hostmanager/issues/86#issuecomment-107052823
你应该能够做到这一点 .
请记住,流浪文件是红宝石?编写一个配置shell脚本,设置/ etc / hosts并将其作为文件位置传递给Vagrant文件中的arg(类似于上面的File.exapand) .
这种方式当vagrant运行脚本时,它将生成参数,供应脚本将拾取并使用它 .
供参考:https://docs.vagrantup.com/v2/provisioning/shell.html
您应该能够使用vagrant-dns来实现此目的,它看起来它完成了您尝试实现的大部分内容(尽管如Mircea所说,几乎所有内容都可以通过脚本完成)
doc提供了一个使用专用网络的示例,但您也可以使用以下配置
安装vagrant-dns后(运行
vagrant dns --install
),您可以通过www.test-machine.dev:8080访问您的机器