Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vagrant 如何访问文件中可用框的列表_Vagrant_Vagrantfile - Fatal编程技术网

Vagrant 如何访问文件中可用框的列表

Vagrant 如何访问文件中可用框的列表,vagrant,vagrantfile,Vagrant,Vagrantfile,我试图通过在两个不同的盒子之间切换使我的文件更智能,这取决于可用的东西 我希望能够从ubuntu/trusty创建一个框,并使用Puppet(已经完成)对其进行配置,但是我希望打包该框,并以该框为起点创建更多的机器 我的想法大致如下: available_boxes = <your answer here> if available_boxes.include? 'my/custombox' config.vm.box = 'my/custombox' else co

我试图通过在两个不同的盒子之间切换使我的文件更智能,这取决于可用的东西

我希望能够从ubuntu/trusty创建一个框,并使用Puppet(已经完成)对其进行配置,但是我希望打包该框,并以该框为起点创建更多的机器

我的想法大致如下:

available_boxes = <your answer here>
if available_boxes.include? 'my/custombox'
    config.vm.box = 'my/custombox'
else
    config.vm.box = 'ubuntu/trusty'
end
或者类似的东西,从这里开始,这一个被视为基础框

 available_boxes= `vagrant box list`.gsub(/\s+\(.*\)\n/,"\n").split("\n")
vagrant box list
运行子shell以列出可用的框,
gsub(/\s+\(.*\)\n/,“\n”)
使用模式匹配替换处理输出,因此我们每行获得一个框名,
.split(“\n”)
为每行命令输出将字符串拆分为一个数组元素


正则表达式分解如下:
\s+
(一个或多个空格)、
\(.*)
(后跟括号内的任何字符)和
\n
(后跟换行符)。

谢谢。我认为这将创建一个评估循环。但这很有魅力。不过,我想,这个解决方案只适用于像envs这样的linux?也许shell评估在windows中工作不好,但我无法测试它。不管怎样,它对我(Mac和Linux)都非常有用。我可以在windows下运行它,但我也安装了git bash。就我而言,这是一个糟糕的假设。似乎,但可能有一些事情是专门为流浪汉解决的。
 available_boxes= `vagrant box list`.gsub(/\s+\(.*\)\n/,"\n").split("\n")