ski*_*ift 9 vagrant vagrantfile vagrant-windows
在我的Vagrantfile中,我有一个像这样的配置器:
config.vm.provision "reset", type: "shell", run: "always" do |s|
s.privileged = false
s.inline = "bash /path/to/my/reset/script.sh"
end
Run Code Online (Sandbox Code Playgroud)
通常情况下配置流浪汉,它运行正常.但我想做的是设置一个只在我手动调用时运行的配置器.所以,如果我有以下配置者:
config.vm.provision "otherScript", type: "shell", run: "manual" do |s|
s.privileged = false
s.inline = "bash /path/to/my/other/script.sh"
end
Run Code Online (Sandbox Code Playgroud)
我会用它来运行它vagrant provision --provision-with otherScript.我已经可以与其他供应商一起做了.但我无法找到一种方法来做到这一点,当我做的事情,vagrant provision它跳过任何运行设置manual.除了我可以"永远"使用之外,我在与之相关的文档中找不到任何内容.
我考虑过使用像fabric或者调用(python 3)这样的东西但是我必须在团队中的所有计算机上进行设置.我可以使用脚本设置,但我认为如果可能,这可能会更容易.
有没有办法实现这个目标?设置只在我手动调用它时才运行的配置器?
有一个合法需要手动/点播/明确的供应方,当你需要一个复杂的任务,需要时可用,可重复和整个团队重现性,如复位数据库,一个干净的石板.
不幸的是,Vagrant中仍然缺少这样的选项.有关功能请求,请参阅GitHub:https://github.com/mitchellh/vagrant/issues/5355.
幸运的是,通过Vagrantfile很容易解决这个限制.毕竟它只是Ruby.
if ARGV.include? '--provision-with'
config.vm.provision 'db-reset', type: 'shell', inline: 'mysql ...'
end
Run Code Online (Sandbox Code Playgroud)