我已经保存terraform plan -out=my-plan并打算将其保存到源代码管理中,并进一步注入到自定义工具中,以进行摄取和执行测试等。
但是,的文件内容my-plan混乱,我想知道使用的编码是什么。
否则,有没有办法另存my-plan为人类可读的文本格式?
虽然此处提到的其他工具很有用,但 Terraform 空间中的情况会定期发生变化,并且第三方工具通常无法保持最新状态。
一段时间以来,Terraform 直接支持以与您运行时显示的人类可读格式相同的格式查看计划文件plan:
terraform show <filename>
Run Code Online (Sandbox Code Playgroud)
从 v0.12 开始,您现在还可以查看 JSON 格式的计划文件,您可以保存该文件以使用其他工具进一步处理:
terraform show -json <filename>
Run Code Online (Sandbox Code Playgroud)
在https://www.terraform.io/docs/internals/json-format.html 中有对 JSON 模式的解释。在撰写本文时,请注意:
输出 ... 目前的主要版本为零,表明该格式是实验性的,可能会发生变化。未来的版本将分配一个非零的主要版本......但是,我们预计在第一个主要版本之前不会对格式进行任何重大的破坏性更改。
Terraform计划输出是二进制格式,不能在Terraform之外使用。从技术上讲,您可以使用Terraform用来处理格式的任何内容对其进行序列化,但是对此没有稳定的API,并且可以随时进行更改。
Hashicorp的一名员工(Phinze)在本期中对此进行了简要介绍:https : //github.com/hashicorp/terraform/issues/7976
一种可能是相当脆弱的选择是简单地解析运行中的文本输出terraform plan。在处理Terraform根本无法处理的JSON差异时,我使用Terraform Landscape在本地格式化计划输出。但是,由于Terraform根本没有将其指定为API,因此在“次要”版本升级(例如0.9到0.10)上也往往会中断。Terraform Plan Parser还会解析文本输出,并请注意,二进制输出几乎不使用它。
| 归档时间: |
|
| 查看次数: |
2023 次 |
| 最近记录: |