• 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应用开发——Linux下的C编程基础
    Linux基础入门(20135207 王国伊)
    Java实验报告(实验四)
    linux系统之pam模块
    linux 从入门到跑路-时间,日期问题
    linux 从入门到跑路-Shell和部分命令
    linux 从入门到跑路-挂载,命令的执行顺序
  • 原文地址:https://www.cnblogs.com/kika/p/10851646.html
Copyright © 2020-2023  润新知