首页 文章

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

提问于
浏览
6

我正在使用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

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

1 回答

  • 14

    我'm not sure why the person'的答案被删除了,因为它是正确的 . 至于流浪汉1.7.0你可以name provisions .

    以下工作:

    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
    

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

    但是,如果您执行 vagrant up ,则所有配置程序都将运行,这是不希望的 . 作为一个解决方案,我运行 vagrant up --no-provision 然后 vagrant provision --provision-with main 作为默认值,我放入Makefile .

相关问题