我正在使用vagrant在VirtualBox中创建Red Hat Enterprise Linux 7 VM。如果我有一个基本框,它既没有VirtualBox客户添加,也没有注册,那么我手动需要执行以下操作:
我之所以需要首先进行注册,是因为要安装添加的客户,我需要安装一些额外的套餐。
现在,这些任务都有第三方流浪插件:vagrant-registration和vagrant-vbguest。
我遇到的问题是vagrant-vbguest
插件将始终首先尝试运行,并且无法下载所需的软件包,因为vagrant-registration
插件没有&#39 ;但是还有机会注册该系统。
有没有办法强制其中一个在另一个之前运行?或者我还没想到的任何其他替代解决方案(我不是一个流浪巫师(或者那个刚被称为流浪汉的人)?)
答案 0 :(得分:5)
本着我的意见,但应该采用更自动的方式
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vbguest.auto_update = false
if Vagrant.has_plugin?("vagrant-registration")
system "vagrant vbguest --auto-reboot --no-provision" if ARGV[0] == 'up'
end
不确定它会以正确的顺序运行(没试过自己)
编辑这段代码的问题是它会在vm运行之前尝试运行vbguest,因此vbguest无法安装必要的库。
我看到的另一种可能性是使用vagrant触发器插件(https://github.com/emyl/vagrant-triggers),您可以定义在运行特定命令后运行特定脚本
config.vbguest.auto_update = false
config.trigger.after :up do
run "vagrant vbguest --auto-reboot --no-provision"
end
vbguest在机器启动后正确运行(所以我假设在流浪者注册后做了自己的事情)
运行vagrant up
的输出(有趣的部分):
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
default: The guest additions on this VM do not match the installed version of
default: VirtualBox! In most cases this is fine, but in rare cases it can
default: prevent things such as shared folders from working properly. If you see
default: shared folder errors, please make sure the guest additions within the
default: virtual machine match the version of VirtualBox you have installed on
default: your host and reload your VM.
default:
default: Guest Additions Version: 4.2.0
default: VirtualBox Version: 4.3
==> default: Mounting shared folders...
default: /vagrant => /Users/fhenri/project/examples/vagrant/precise
==> default: Running triggers after up...
==> default: Executing command "vagrant vbguest --auto-reboot --no-provision"...
==> default: GuestAdditions versions on your host (4.3.16) and guest (4.2.0) do not match.
客户添加的安装继续并且机器重新启动确定
答案 1 :(得分:3)
这似乎是vagrant-registration插件的问题。见https://github.com/projectatomic/adb-vagrant-registration/issues/69
此问题已修复,现在已发布固定版本,即https://rubygems.org/gems/vagrant-registration/versions/1.2.2