使用Vagrant触发器在主机上执行bash脚本

lon*_*ony 6 bash vagrant vagrant-plugin vagrant-provision

我使用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
Run Code Online (Sandbox Code Playgroud)

如何将所有命令移动到一个批处理文件中,然后我只包含该文件?

应该

[:up, :provision].each do |cmd|
    config.trigger.before cmd, stdout: true do
      include_script "Vagrant_trigger_before.sh"
    end
end
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助!

Fré*_*nri 5

您可以按照run说明直接运行脚本

[:up, :provision].each do |cmd|
    config.trigger.before cmd, stdout: true do
      run "Vagrant_trigger_before.sh"
    end
end
Run Code Online (Sandbox Code Playgroud)