是否可以根据前一个供应商的成功或失败来运行一个 Vagrant 供应商?
我有一个配置了 Ansible 的 Vagrant VM,我想分发给其他人。问题是,其中一些人正在运行 Windows,而 Ansible 不支持 Windows。我可以解决这个问题,但我想抓住失败的供应商并做其他事情。
准确地说,我只想在 Ansible 配置程序失败时运行 shell 配置程序。Vagrantfile 只是 Ruby,所以看起来这应该是可能的,一种或另一种方式。
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# This fails on Windows
config.vm.provision "ansible" do |ansible|
ansible.playbook = "vagrant/ansible/main.yml"
end
# Run this provisioner IF AND ONLY IF the Ansible provisioner has failed:
config.vm.provision "shell", path: "failover.sh"
当尝试在 Windows 上运行 Ansible 配置器时,Vagrant 返回此错误:
[default] Running provisioner: ansible...
The executable 'ansible-playbook' Vagrant is trying to run was not found
in the %PATH% variable. This is an error. Please verify this software is
installed and on the path.