我试图配置一个主 - 主MySQL对,只有当它们都启动时才能正确配置它们。
Vagrant.configure("2") do |config|
web.vm.box = "centos/7"
config.vm.define "primary" do |primary|
.......
end
config.vm.define "secondary" do |secondary|
.......
end
end
我已经多次跑过,Vagrant只在第一个vm启动后才启动第二个vm。
有没有办法迫使Vagrant同时启动两个VM?
答案 0 :(得分:6)
vagrant up
支持使用密钥--parallel
并行启动VM:
- [no-] parallel如果提供者支持,则启用或禁用并行性
默认vagrant
提供商VirtualBox
不支持它,但您可以使用xargs
同时启动虚拟机,-P <max-procs>
支持使用密钥grep config.vm.define Vagrantfile | awk -F'"' '{print $2}' | xargs -P2 -I {} vagrant up {}
执行并行命令(示例)完全为您的Vagrant文件提供):
@Model
答案 1 :(得分:1)
Vagrantfile可能在变量中包含框,因此静态greping Vagrantfile不会在所有情况下都成功。
以下是捕获vagrant status
创建的名称的另一种方法
vagrant status | \
awk '
BEGIN{ tog=0; }
/^$/{ tog=!tog; }
/./ { if(tog){print $1} }
' | \
xargs -P2 -I {} vagrant up {}
vagrant status
获取由Vagrantfile
管理的计算机的报告,该报告打印为2行空行之间的每行计算机数。 awk
命令捕获2条空行之间的所有机器行,并打印每条机器行的第一个字(它们是机器名)。 xargs
命令将流更改为可以使用-P
选项并行使用的参数。