Vagrant 流浪多机并联起动

Vagrant 流浪多机并联起动,vagrant,Vagrant,我正在尝试提供一个主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 我已经运行了多次,流浪汉只会在第一个虚拟机启动

我正在尝试提供一个主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 up
支持并行虚拟机,从键开始
--parallel

--[no-]并行如果提供程序支持,则启用或禁用并行

默认的
vagrant
提供程序
VirtualBox
不支持它,但您可以使用
xargs
同时启动虚拟机,它支持使用键
-p
并行执行命令(为您的vagrant文件提供的示例):


Vagrantfile可以在变量中包含这些框,因此静态地将Vagrantfile灰显不会在所有情况下都成功

下面是另一种捕获由
vagrant status

vagrant status | \
awk '
BEGIN{ tog=0; }
/^$/{ tog=!tog; }
/./ { if(tog){print $1} }
' | \
xargs -P2 -I {} vagrant up {}

命令分解
  • vagrant status
    获取由
    vagrant文件
    管理的机器的报告,在两个空行之间每行打印一台机器
  • awk
    命令捕获两个空行之间的所有机器行,并打印每个机器行的第一个字(即机器名称)
  • xargs
    命令将流更改为可使用
    -P
    选项并行使用的参数

您能解释代码的每个管道部分吗?所以其他人可以根据他们的用例调整它。。。那就太棒了1保持网站整洁。聪明的awk程序!值得注意的是,-P参数可以通过使用更高的数字来增加并行性。我测试了这个-如果你必须下载一个新的/更新的方框图像,它将不起作用。两个线程将同时尝试执行此操作,其中一个线程将失败。如果我们可以运行一个单线程依赖项来检查方框图像是否首先存在,如果不存在,那么就可以获得它。否则,使用此方法的代码将很难与其他人共享。这对虚拟盒用户来说是一个很大的帮助!如果您能分享您建议的代码修复,我们将不胜感激:)
vagrant status | \
awk '
BEGIN{ tog=0; }
/^$/{ tog=!tog; }
/./ { if(tog){print $1} }
' | \
xargs -P2 -I {} vagrant up {}