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 ...
随机推荐
- 可缺省的CSS布局——张鑫旭
一.技术不难.意识很难 有些东西的东西的实现,难的不是原料.技术:而是想不到,或者说意识不到. 例如下面这个简单而又神奇的魔术: 是吧.搞通了,才发现,哦~原来这么回事,很简单的嘛,我也可以实现的!其 ...
- sqlserver年月日转汉字大写
也是今天sql群里有人问,看起来这个问题挺简单,但是我不知道具体该怎么实现.百度了一把,找到一个高手贡献的答案,记一下. 参考链接 sql中转换中文日期 ------ 配合相关函数 ------ cr ...
- 【java错误】错误: 编码GBK的不可映射字符
java源代码 今天在写java是出现一个编码错误,这里先将书上的java源代码贴出来. import java.io.Console; public class ConsoleTest { //用j ...
- 分享到xxx
来源百度 一.概述 百度分享代码已升级到2.0,本页将介绍新版百度分享的安装配置方法,请点击左侧列表查看相关章节. 二.代码结构 分享代码可以分为三个部分:HTML.设置和js加载,示例如下: 代码结 ...
- eclipse中DDMS 视图中sdcard中文件导入的处理
首先需要说明下,这里说的sdcard的权限并不是指在Android application程序中设置sdcard的权限读 取问题.而是指在DDMS看到的目录下的那个sdcard目录的权限问题. ...
- ES6中的import与export对class操作相关用法举例
两种用法: 一.指定输出类名 // export 输出 export class App extends React.Componet { // ..code } // import 引入 impor ...
- IIS测试环境搭建
1.控制面板->程序->程序和功能->打开或关闭Windows功能->Internet信息服务->Web管理工具,打开如下服务: 2.打开IIS管理器 2.1检查.net ...
- Java中的Number和Math类简单介绍
Java Number类 一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte.int.long.double 等. 实例: int a = 5000; float b = 13.65 ...
- gitlab的仓库迁移到新的gitlab
1.下载原有gitlab源码 git clone http://gitlab.**.com/projectName gitlab地址替换成为新gitlab地址 git remote set-url o ...
- 【日常记录】用 vs2015 编译 love2d 引擎时出现 依赖项目luajit编译失败的解决办法
如图片所示,提示是没有找到cmake命令.看来是需要camke软件支持的,由于当初安装CMake后我重装了系统,也没有把cmake的bin路径 解决办法一:重新安装CMake,并勾选上"ad ...