Mik*_*keW 1 chef-infra vagrant
我想在新配置的服务器上的 Vagrant 文件中运行一个单独的配置块。目前,当我从 CI 服务器运行它时
vagrant up
Run Code Online (Sandbox Code Playgroud)
以下块执行成功
config.vm.provider :linode do |provider, override|
#creates a new instance etc .. the following block runs on this instance
end
config.vm.provision :chef_solo do |chef|
chef.provisioning_path = "/tmp/deploy"
chef.cookbooks_path = ["cookbooks"]
chef.add_recipe = "mydeployagent"
end
Run Code Online (Sandbox Code Playgroud)
现在我想在之后运行一个单独的供应商。(CI服务器中的一个单独任务)即
config.vm.provision :chef_solo do |chef|
chef.provisioning_path = "/tmp/deploy"
chef.cookbooks_path = ["cookbooks"]
chef.add_recipe = "mydeploydatabaseagent"
end
Run Code Online (Sandbox Code Playgroud)
我试图弄清楚我需要什么
运行 vagrant up 以便它只执行第一个配置块
运行 vagrant 以便它只在 1 中创建的实例上运行第二个配置块。
提前致谢
来自Vagrant 文档。
Vagrant.configure("2") do |config|
# ... other configuration
config.vm.provision "bootstrap", type: "shell" do |s|
s.inline = "echo hello"
end
end
Run Code Online (Sandbox Code Playgroud)
如果您只希望在指定了多个供应商的情况下运行特定供应商,则可以使用 --provision-with 标志。例如,如果您有一个 shell 和 Puppet 配置器,并且只想运行一个 shell,则可以执行 vagrant provision --provision-with shell。--provision-with 的参数可以是供应商类型(例如“shell”)或供应商名称(例如上面的“bootstrap”)。