流浪汉中单独的ansible供应剧本

mhk*_*ler 6 vagrant ansible

我正在使用vagrant和ansible配置虚拟机,并且工作正常.ansible playbook克隆了一个git repo,安装它并运行一个服务守护进程.

我还想要一个vagrant命令执行一个单独的"更新"手册,该手册从git仓库中提取最新信息,安装并重启守护进程.

像这样的用法会很好.

Vagrant.configure("2") do |config|

  # Default
  config.vm.provision "ansible" do |ansible|
    ansible.playbook = "playbook.yml"
  end

  # Update
  config.vm.provision "ansible", name="update" do |ansible|
    ansible.playbook = "update.yml"
  end
end
Run Code Online (Sandbox Code Playgroud)

然后我可以运行它vagrant --provision-with update.这样的事情可能吗?我想避免在框中运行这样的更新.

mhk*_*ler 14

我不确定为什么这个人的答案被删除了,因为它是正确的.至于流浪汉1.7.0,你可以说出规定.

以下工作:

Vagrant.configure("2") do |config|

  # Default
  config.vm.provision "main", type: "ansible" do |ansible|
    ansible.playbook = "playbook.yml"
  end

  # Update
  config.vm.provision "update", type: "ansible" do |ansible|
    ansible.playbook = "update.yml"
  end
end
Run Code Online (Sandbox Code Playgroud)

您可以使用vagrant provision --provision-with <foo>然后执行任一个.

但是,如果这样做vagrant up,所有配置程序都将运行,这是不希望的.作为一个解决方案,我跑vagrant up --no-provision那么vagrant provision --provision-with main作为默认,这是我放在一个Makefile.