virtualbox+vagrant学习-4-Vagrantfile-1-简介
Vagrantfile
Vagrantfile的主要功能是描述项目所需的机器类型,以及如何配置和提供这些机器。之所以称为Vagrantfiles,是因为文件的实际文本文件名是Vagrantfile(除非文件系统在严格的区分大小写模式下运行,否则大小写无关紧要)。
每个项目运行一个Vagrantfile文件,Vagrantfile文件应该提交给版本控制。这允许参与项目的其他开发人员检查代码,运行vagrant up,并继续他们的工作。Vagrantfile文件可移植到每个支持vagrant的平台。
Vagrantfile的语法是Ruby,但修改Vagrantfile并不需要了解Ruby编程语言,因为它主要是简单的变量赋值。实际上,Ruby甚至不是最受欢迎的社区vagrant,这应该有助于说明,尽管人们没有Ruby知识,但vagrant是非常成功的。
1.Lookup Path查找路径
当运行任何vagrant命令时,vagrant会爬上目录树,寻找它能找到的第一个Vagrantfile,首先从当前目录开始。所以如果你在/home/mitchellh/projects/foo中运行vagrant,它会搜索以下路径来寻找流浪者文件,直到找到一个:
/home/mitchellh/projects/foo/Vagrantfile
/home/mitchellh/projects/Vagrantfile
/home/mitchellh/Vagrantfile
/home/Vagrantfile
/Vagrantfile
这个特性允许你从项目中的任何目录运行vagrant。
通过将VAGRANT_CWD环境变量设置为其他路径,可以更改vagrant查找Vagrantfile文件的起始目录。
2.Load Order and Merging加载顺序和合并
需要理解的一个重要概念是vagrant如何加载Vagrantfile文件。实际上,vagrant加载了一系列Vagrantfiles文件,并合并了设置。这允许不同级别的Vagrantfiles文件覆盖以前的设置。Vagrantfile按如下所示的顺序加载。请注意,如果在任何步骤中没有找到Vagrantfiles,vagrant将继续下一步。
- 与给定的机器中的box一起打包的Vagrantfile
- 在你的根目录下的Vagrantfile (默认指向
~/.vagrant.d目录)。这允许你为系统用户指定一些默认值 - 来自项目目录的Vagrantfile。你可以在这个Vagrantfile文件中为系统用户指定一些默认值——这就是大多数时候要修改的Vagrantfile。
- 多机器覆盖(如果有的话),Multi-machine overrides
- 指定provider覆盖(如果有的话),Provider-specific overrides
在每个级别,设置集将与以前的值合并。这究竟意味着什么,取决于环境。对于大多数设置,这意味着新的设置将覆盖旧的设置。然而,对于诸如定义网络之类的事情,网络实际上是相互附加的。默认情况下,你应该假设设置将相互覆盖。如果行为不同,将在相关文档部分中记录。
在每个Vagrantfile文件中,你可以指定多个Vagrant.configure块。所有配置将按照定义的顺序合并到一个Vagrantfile文件中。
3.Available Configuration Options可用的配置选项
继续往下看
virtualbox+vagrant学习-4-Vagrantfile-1-简介的更多相关文章
- virtualbox+vagrant学习-2(command cli)-26-vagrant share命令
Share share命令初始化了一个vagrant share会话,允许你与世界上任何一个人共享vagrant环境,允许在几乎任何网络环境中直接在vagrant环境中进行协作. 你可以在本博客的vi ...
- virtualbox+vagrant学习-1-环境安装及vagrantfile的简单配置-Mac系统
在学习docker-machine时,发现需要使用到虚拟化平台,所以选择了使用virtualBox. 然后后面发现需要使用vagrant来在mac系统中作为虚拟机管理软件,所以下面将会简述我自己学习使 ...
- virtualbox+vagrant学习-2(command cli)-8-vagrant Package命令
Package 格式: vagrant package [options] [name|id] 这将当前正在运行的VirtualBox或Hyper-V环境打包到一个可重用的box中.如果provide ...
- virtualbox+vagrant学习-3-Vagrant Share-2-HTTP Sharing
HTTP Sharing Vagrant Share可以创建一个可公开访问的URL端点来访问在Vagrant环境中运行的HTTP服务器.这被称为“HTTP共享”,在使用Vagrant Share时默认 ...
- virtualbox+vagrant学习-5-Boxes-1-简介
Boxes boxes是vagrant环境的包格式.在vagrant支持的任何平台上,任何人都可以使用一个box来创建一个相同的工作环境.vagrant box实用程序提供了管理boxes的所有功能. ...
- virtualbox+vagrant学习-5-Boxes-2-Box Versioning
Box Versioning 从Vagrant 1.5版本开始, box支持版本控制.这允许创建box的人将更新推送到box中,使用box的人有一个简单的工作流,用于检查更新.更新box以及查看发生了 ...
- virtualbox+vagrant学习-2(command cli)-6-vagrant init命令
Init——创建Vagrantfile文件 格式: vagrant init [options] [name [url]] 通过创建初始的Vagrantfile文件(如果不存在的话),将当前目录初始化 ...
- virtualbox+vagrant学习-2(command cli)-10-vagrant Port命令
Port 格式: vagrant port [options] [name|id] 端口命令显示映射到主机端口的客户端口的完整列表 userdeMacBook-Pro:~ user$ vagrant ...
- virtualbox+vagrant学习-2(command cli)-14-vagrant reload命令
Reload 格式: vagrant reload [vm-name] 其等价于在运行vagrant up命令后接着运行vagrant halt 要使在Vagrantfile文件中所做的更改生效,通常 ...
- virtualbox+vagrant学习-2(command cli)-17-vagrant ssh命令
SSH 格式: vagrant ssh [options] [name|id] [-- extra ssh args] 这将SSH导入正在运行的vagrant机器,并允许你访问机器的shell. us ...
随机推荐
- npm saveError ENOENT: no such file or directory
1.报错情况 在执行npm install xxx时,出现如下:npm WARN saveError ENOENT: no such file or directory, open '/nodetes ...
- 第二十三天- 模块 re
# 1. 正则表达式 # 元字符# . 除了换行符外任意字符# \w 数字 字母 下划线# \s 空白符# \b 单词的末尾# \d 数字# \W 除了数字 字母 下划线# \D 除了数字# \S 除 ...
- vue2.0 element-ui中input的@keyup.native.enter='onQuery'回车查询刷新整个表单的解决办法
项目中用的element-ui是v1.4.3版本 实现的功能是在input中输入查询的名称,按下键盘回车键,可以查询表格中数据 问题是,我输入名称,按下回车,会整个表单刷新,搜索条件也被清空:代码如下 ...
- 爬虫必备—Scrapy
一.Scrapy简介 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 ...
- javaSE——字节流
IO流:InputStream/OutputStream 字节流: 文件输出流 :内存 ——>文件 文件输入流 :内存<——文件 应用 文件输入/出 ...
- ERP 实施执行力提高的障碍,看看你中了几招?
据统计,在国内 ERP 实施的成功率非常低,成功实施实现系统集成的只占10%-20%:没有实现系统集成或实现部分集成的只有30%-40%:而失败的却占50%,并且在实施成功的10%-20%中大多为外资 ...
- Android:Building " " Gradle project info 问题
Android Studio新建或者打开项目的时候,一直卡在Building "" Gradle project info 进度上不动,猜测是网络原因下载gradle不成功. 两种 ...
- Android MVP模式就是这么回事儿
MVP模式 概念就不说了,大家都懂.View层通过Persenter层相互通信,避免了View中大量的业务代码,而将其提取到Model中.其实简单的来说,就是通过接口回调,把业务分离出去.提高代码的可 ...
- Android手势密码实现
图 二.实现思路: 1. 正上方的提示区域,用一个类(LockIndicator.java)来实现,自定义view来绘制9个提示图标: 2. 手势密码绘制区域,用一个类(GestureContentV ...
- lodop 代码注释
LODOP.SET_PRINT_PAGESIZE(1,1000,1500,""); /*1,纵向输出;1000,宽度;1500,高度*:单位为0.1毫米/LODOP.ADD_PR ...