如何在成功配置后立即停止多机Vagrant设置中的机器?

问题描述 投票:1回答:1

有一个多计算机的Vagrant设置(在这里被截断为两台计算机),如下所示:

Vagrant.configure(2) do |config|

  config.vm.define "xfcevm" do |xfcevm|
    xfcevm.vm.box = "generic/ubuntu1904"
    xfcevm.vm.hostname = "xfcevm"
  end

  config.vm.define "gnomevm" do |gnomevm|
    gnomevm.vm.box = "generic/fedora30"
    gnomevm.vm.hostname = "gnomevm"
  end

  config.vm.provider "virtualbox" do |vb|
    vb.gui = true
    vb.memory = "2048"
    vb.cpus = 1
    vb.customize ["modifyvm", :id, "--vram", "32"]
  end

  config.vm.provision "ansible" do |ansible|
    ansible.verbose = "v"
    ansible.compatibility_mode = "2.0"
    ansible.playbook = "setup.yml"
  end

  config.vm.provision "ansible", run: 'always' do |ansible|
    ansible.verbose = "v"
    ansible.compatibility_mode = "2.0"
    ansible.playbook = "tests.yml"
  end

  # halt here

end

如果测试剧本顺利通过,那么我想在tests.yml剧本结束后立即停止该机器。如何从Vagrantfile或创建另一个Ansible任务来做到这一点?

ansible vagrant provisioning vagrantfile multi-machine
1个回答
1
投票

您可以在测试手册的末尾发出shutdown命令。仅在其余任务成功后才播放。

- name: shutdown machine
  become: true
  command: shutdown -h now

请参见shutdown --help使命令适应您的特定需求(例如,使用halt代替poweroff

© www.soinside.com 2019 - 2024. All rights reserved.