我希望在暂停或暂停操作生效之前触发我的VM 上的操作。
我看到我可以使用的动作钩子但是完成动作https://www.vagrantup.com/docs/plugins/action-hooks.html之后它们都是。 有线索吗?
答案 0 :(得分:4)
我相信大多数钩子都是用于插件开发的 - 你所看到的是vagrant trigger plugin所以如果你想在挂起或停止之前完成操作:
Vagrant.configure("2") do |config|
# Your existing Vagrant configuration
...
# run some script before the guest is halted
config.trigger.before :halt do
info "Dumping the database before destroying the VM..."
run_remote "bash /vagrant/cleanup.sh"
end
# run some script before the guest is suspended
config.trigger.before :suspend do
info "Dumping the database before destroying the VM..."
run_remote "bash /vagrant/cleanup.sh"
end
# clean up files on the host after the guest is destroyed
config.trigger.after :destroy do
run "rm -Rf tmp/*"
end
# start apache on the guest after the guest starts
config.trigger.after :up do
run_remote "service apache2 start"
end
end
答案 1 :(得分:0)
我认为您也可以尝试在来宾计算机上使用udev事件。
当vagrant up
第一次完成(或稍后使用vagrant provision
时,可以通过配置完成此操作。
例如,我在nfs使用代码挂载目录后重新启动php5-fpm。
我认为您也可以在来宾操作系统上使用systemd(如果您正在使用具有systemd的操作系统)。
答案 2 :(得分:0)