使用Vagrant触发器在主机

时间:2017-01-05 10:30:41

标签: bash vagrant vagrant-provision vagrant-plugin

我使用Vagrant来启动我的测试环境。可悲的是,我必须在旋转我的Vagrant盒子之前检索信息(密码)。到目前为止,我使用Vagrant-Triggers来执行此操作并拥有多个run "do something"命令。

IS

[:up, :provision].each do |cmd|
    config.trigger.before cmd, stdout: true do
      run "rm -rf #{cookbooks_path}"
      run "mkdir -p #{cookbooks_path}"
      run "touch fileX"
      run "touch fileY"
      run "touch fileZ"
    end
end
  

如何将所有命令移动到一个批处理文件中,我只能这样做   包括?

应该

[:up, :provision].each do |cmd|
    config.trigger.before cmd, stdout: true do
      include_script "Vagrant_trigger_before.sh"
    end
end

感谢您的帮助!

2 个答案:

答案 0 :(得分:5)

您可以使用run说明直接运行脚本

[:up, :provision].each do |cmd|
    config.trigger.before cmd, stdout: true do
      run "Vagrant_trigger_before.sh"
    end
end

答案 1 :(得分:2)

将触发器插件合并到无所事事的主线后,语法似乎更改为

config.trigger.before :up, :provision do |trigger|
  trigger.run = {inline: "Vagrant_trigger_before.sh"}
end

参考:https://www.vagrantup.com/docs/triggers/configuration#inline