我已经通过 github/jenkins 设置了一个自动化,以通过 jenkins 发布 repo 的 terraform 计划的输出,作为对 github 中拉取请求的评论。整个编排效果很好,除了 terraform plan 的输出不是人类可读的,并且在这种自动化中没有为您提供在终端中运行时的样子。我使用了几种方法,例如将 terraform show 用于计划文件,然后将其抓取到自定义文件中并将其作为评论发布到 GitHub PR 中。在每种情况下,输出都包含一些二进制字符。
我什至使用了 terraform-plan-parser https://github.com/lifeomic/terraform-plan-parser 但这不适用于 terraform 0.12 并且与以下问题有关:- https://github.com/lifeomic /terraform-plan-parser/issues/31
在自动化中检索任何 terraform 计划的输出以便可以引用它的最佳方法是什么,但是需要在应用完成之前进行检查。在我看来,它只适用于终端。
这里的任何帮助或建议将一如既往地受到高度赞赏。
默认情况下,Terraform 使用终端转义序列以简单的格式(如颜色或粗体)突出显示输出的部分。
为了在 GitHub 的上下文中准确地重现该结果,需要将终端转义序列转换为 GitHub 能够呈现的形式。
不幸的是,GitHub 评论是用 GitHub 风格的 Markdown 编写的,在我写这篇文章的时候,它不支持任何直接的方式来创建类似于 Terraform 计划输出的彩色文本。因此,我知道没有简单的方法可以从 GitHub 评论中的 Terraform 计划输出中重现文本格式。
如果您terraform plan使用该-no-color选项运行,那么它将跳过终端转义序列并生成纯文本输出,您可以将其包含在 Markdown 注释中的预格式化文本块中。但是,该输出因此不会包括您通常在终端中看到的文本格式。
如果您愿意编写一些自定义格式化代码来为您的 GitHub 评论以不同的格式呈现 Terraform 计划,您可以通过将计划保存到磁盘然后使用以下命令读取来获取计划的 JSON 表示terraform show:
terraform plan -out=tfplan
terraform show -json tfplan
Run Code Online (Sandbox Code Playgroud)
这将生成计划的 JSON 表示,您可以在自己设计的程序中解析该计划并发出您想要的任何结果格式。然而,这将比仅仅从 Terraform 的正常输出解释终端转义序列要多得多,因为它是 Terraform 用于生成计划渲染的数据的 JSON 表示,而不是计划渲染本身。
| 归档时间: |
|
| 查看次数: |
4554 次 |
| 最近记录: |