Ansible 如何在成功配置后立即停止多机漫游设置中的机器?
有一个多机器流浪设置(此处截断为两台机器),如下所示:Ansible 如何在成功配置后立即停止多机漫游设置中的机器?,ansible,vagrant,provisioning,vagrantfile,Ansible,Vagrant,Provisioning,Vagrantfile,有一个多机器流浪设置(此处截断为两台机器),如下所示: 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 = "ge
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
如果测试playbook没有错误地通过,那么我希望在
tests.yml
playbook完成后立即停止该机器。如何从Vagrantfile或通过创建另一个Ansible任务来执行此操作?您可以在测试手册的末尾发出shutdown
命令。只有在其他任务成功的情况下才会播放
- name: shutdown machine
become: true
command: shutdown -h now
请参见
shutdown--help
以使命令适应您的特定需要(例如,使用halt
而不是poweroff
)好吧,这是一个干净的解决方案,我可能没有考虑过它,因为最后一刻从“destroy”更改为“halt”在准备问题时。Ansible现在无法关闭与的连接
,一分钟延迟是该命令的最小可用值命令:关机-P+1
。Tnx!