在我的Vagrantfile中,我有一个像这样的provisioner:
config.vm.provision "reset", type: "shell", run: "always" do |s|
s.privileged = false
s.inline = "bash /path/to/my/reset/script.sh"
end
当使用标准方法来配置Vagrant时,它可以正常运行。但是我想做的是,设置一个只在手动调用时才运行的provisioner。因此,如果我有以下provisioner:
config.vm.provision "otherScript", type: "shell", run: "manual" do |s|
s.privileged = false
s.inline = "bash /path/to/my/other/script.sh"
end
我会使用vagrant provision --provision-with otherScript
来运行它。我已经可以用其他的配置管理工具做到这一点。但是,我找不到一种方法使得当我执行像vagrant provision
这样的命令时,跳过任何带有manual
运行设置的命令。除了可以使用 "always" 之外,文档中没有找到相关内容。
我考虑过使用类似于 fabric 或 invoke (python 3) 的工具,但是我需要在团队中的所有计算机上都安装它们。我可以通过脚本来完成这个设置,但如果可能的话,我认为这可能更容易。
是否有办法实现这一点?可以设置一个配置管理工具,只有当我手动调用它时才会运行吗?