是否有可能在特定的流浪机器上执行供应器,在该机器之后';Vagrant文件中的定义是否已结束?
我希望能够为一个项目一次启动我所有的漫游虚拟机,然后在最后,在其中一个虚拟机上执行Ansible(使用Ansible_local)。是否可以在您之前定义的机器上运行诸如ansible_local之类的供应器 我想做的示例:是否有可能在特定的流浪机器上执行供应器,在该机器之后';Vagrant文件中的定义是否已结束?,vagrant,ansible,virtualbox,Vagrant,Ansible,Virtualbox,我希望能够为一个项目一次启动我所有的漫游虚拟机,然后在最后,在其中一个虚拟机上执行Ansible(使用Ansible_local)。是否可以在您之前定义的机器上运行诸如ansible_local之类的供应器 我想做的示例: # VM definitions config.vm.define "control" do |control| control.vm.hostname = "control.somedomain.local" control.
# VM definitions
config.vm.define "control" do |control|
control.vm.hostname = "control.somedomain.local"
control.vm.network "private_network", ip: "172.28.128.3"
control.vm.provider "virtualbox" do |control_vbox|
control_vbox.name = "Ansible Controller"
control_vbox.cpus = 2
control_vbox.memory = 1024
end
end
config.vm.define "web01" do |web|
control.vm.hostname = "web01.somedomain.local"
control.vm.network "private_network", ip: "172.28.128.4"
control.vm.provider "virtualbox" do |web_vbox|
web_vbox.name = "Web Server 1"
web_vbox.cpus = 2
web_vbox.memory = 1024
end
end
# run ansible_local provisioner from the control VM
config.vm.provision "ansible_local" do |ansible|
ansible.run_on_vm = "control"
ansible.playbook = "some_playbook.yml"
end
您可以在文件中进行以下更改
# VM definitions
config.vm.define "control" do |control|
control.vm.hostname = "control.somedomain.local"
control.vm.network "private_network", ip: "172.28.128.3"
control.vm.provider "virtualbox" do |control_vbox|
control_vbox.name = "Ansible Controller"
control_vbox.cpus = 2
control_vbox.memory = 1024
end
# run ansible_local provisioner from the control VM
control.vm.provision "ansible_local" do |ansible|
ansible.run_on_vm = "control"
ansible.playbook = "some_playbook.yml"
end
end
config.vm.define "web01" do |web|
control.vm.hostname = "web01.somedomain.local"
control.vm.network "private_network", ip: "172.28.128.4"
control.vm.provider "virtualbox" do |web_vbox|
web_vbox.name = "Web Server 1"
web_vbox.cpus = 2
web_vbox.memory = 1024
end
end
这样ansible provisioner将仅在控制VM上运行
其他的可能性是
- 按以下顺序运行vagrant命令
$ vagrant up --no-provision // will spin up all the vms but will not provisiong $ vagrant provision control // will provision the control vm
- 检查可以用来运行特定命令的,我还没有在多机环境下测试过