代码之家  ›  专栏  ›  技术社区  ›  Randy L

在源代码管理中跟踪地形规划输出文件?

  •  0
  • Randy L  · 技术社区  · 7 年前

    将地形图写入文件的动机有点模糊。所以我想问的是,是否还有其他人了解这背后的动机。在我看来,似乎有一个涉及使用这些计划文件的工作流,但该工作流一点也不清楚。在文档的末尾有一个声明 plan 命令:“Terraform的未来版本将使计划文件更加安全。”很明显,Hashicorp发现了一个 大量 使用这些计划文件有价值,但为什么?

    1 回复  |  直到 7 年前
        1
  •  3
  •   fishi0x01    7 年前

    应用预先计算的计划文件是可预测的,而直接运行 terraform apply 不是。

    想象一下你在跑步 terraform plan 一切看起来都很好。现在,您的基础结构中发生了一些不可预测的变化,您在运行之前都没有注意到 地形应用 ,这可能会导致不同于您预期的结果。

    具有 terraform apply <plan-file> ,之间的任何意外更改 plan apply 相位将被捕捉。特别是当您考虑构建地形CI/CD管道时,使用计划文件是为自动化增加可预测性的好方法。


    如评论中所述,可以在 official documentation :

    在自动化中运行Terraform时,重点通常是核心 计划/应用周期。因此,主路径大体上与CLI相同 用法:

    1. 初始化地形工作目录。
    2. 制定更改资源以匹配当前配置的计划。
    3. 让人工操作员审查该计划,以确保其可接受。
    4. 应用计划中描述的更改。

    进一步更新

    目前,我还在运行terraform 0.10.8 cm92 Matt Schuchard 我意识到以下几点:

    最近地形 0.11.0 已经发布,并且 changelog 提到对行为的有趣修改 地形应用 . 默认情况下,它将首先生成一个计划,并等待确认后再应用:

    命令terraform apply(不带显式plan参数)现在为 默认情况下为交互式。具体来说,它将显示生成的计划 并在应用之前等待确认,类似于现有的 地形破坏行为。当计划 提供了文件参数,可以获得之前的行为 使用-auto-approve选项没有计划文件

    不过,根据公司的审查流程,不同的可共享计划文件可能仍是一个有趣的选择。