zoukankan      html  css  js  c++  java
  • Vagrant 手册之 Vagrantfile

    原文地址

    Vagrantfile 的主要用途是描述用于项目的机器类型,以及如何配置和提供这些机器。

    Vagrant 的每个项目运行一个 Vagrantfile,并且 Vagrantfile 应该被提交到版本控制。这允许参与该项目的其他开发人员检查代码,运行 vagrant up。Vagrantfile 可以在 Vagrant 支持的每个平台上移植。

    Vagrantfiles 的语法是 Ruby,但对 Vagrantfile 进行修改并不需要有关 Ruby 编程语言的知识,因为基本上只需要简单的变量赋值。

    1. 查找路径

    运行 vagrant 命令时,Vagrant 会从当前目录开始依次查找目录树,寻找第一个匹配的 Vagrantfile。假如在 /home/mitchellh/projects/foo 目录中运行 vagrant,会依次在下面的目录中查找 Vagrantfile,直到找到为止:

    /home/mitchellh/projects/foo/Vagrantfile
    /home/mitchellh/projects/Vagrantfile
    /home/mitchellh/Vagrantfile
    /home/Vagrantfile
    /Vagrantfile

    这个特征使得你可以在项目的任何目录中运行 vagrant。

    可以设置 VAGRANT_CWD 环境变量指向某个其他路径,来改变 Vagrant 查找 Vagrantfile 文件的起始目录。

    2. 加载顺序和合并

    必须理解的一个重要概念是 Vagrant 如何加载 Vagrantfile。Vagrant 实际上加载了一系列的 Vagrantfile,并将合并设置。这允许具有不同特异性等级的 Vagrantfile 覆盖之前的设置。Vagrantfile 按以下所示顺序加载。注意,如果在任何步骤中未找到 Vagrantfile,Vagrant 将继续执行下一步。

    1. 与用于给定机器的 box 一起打包的 Vagrantfile。
    2. Vagrant 主目录中的 Vagrantfile(默认为 ~/.vagrant.d)。这使你可以为系统用户指定一些默认值。
    3. 项目目录中的 Vagrantfile。通常,你只需要修改这个 Vagrantfile。
    4. 多台机器覆盖,如果有多台机器的话。
    5. 特定 provider 的覆盖,如果有的话。

    在每个级别,设置将与之前的值合并。具体细节取决于设置类型。对于大多数设置,较新的设置将覆盖较旧的设置。但是,对于诸如定义网络之类的事情,网络实际上是相互追加。默认情况下,应该假定设置将相互覆盖。如果行为不同,将在相关文档部分注明。

    在每个 Vagrantfile 中,可以指定多个 Vagrant.configure 块。所有配置将按照它们定义的顺序在单个 Vagrantfile 中合并。

  • 相关阅读:
    自己写的杨辉三角打印算法
    linux下将编译错误输出到一个文本文件
    在重命名SqlServer数据库时,报5030错误的解决办法
    将毫秒数转换为时分秒
    搜索手机中的所有音频文件
    安卓-去除ActionBar的方法
    Android, JSONLIB , java.lang.NoClassDefFoundError: Failed resolution of: Lnet/sf/json/JSONArray; 原因
    安卓开发错误:The type android.support.v4.app.TaskStackBuilder$SupportParentable cannot be resolved.
    Jar mismatch! Fix your dependencies的问题
    activity和fragment的生命周期
  • 原文地址:https://www.cnblogs.com/kika/p/10851646.html
Copyright © 2011-2022 走看看