如何配置Atlantis或Bitbucket清理Terraform计划中的控制代码?
去除Terraform计划在Bitbucket评论中的控制代码方案
以下是几个可行的解决方法:
1. 用Atlantis钩子过滤输出
在Atlantis的配置文件(如atlantis.yaml)中添加工作流钩子,直接清洗terragrunt plan的输出:
workflows: terragrunt-plan-clean: plan: steps: - run: terragrunt plan -no-color | sed 's/\x1b\[[0-9;]*m//g'
通过sed命令直接剔除所有ANSI控制字符,确保输出无干扰代码。
2. 在Bitbucket Pipeline中预处理输出
如果是通过Bitbucket Pipeline执行计划,可在脚本里先处理输出再提交评论:
# 执行计划并过滤控制字符 terragrunt plan -no-color | sed 's/\x1b\[[0-9;]*m//g' > clean-plan.txt # 将clean-plan.txt的内容作为评论提交到Bitbucket # 此处替换为你实际的评论提交逻辑
3. 使用Terraform JSON输出格式(推荐)
改用JSON格式输出计划,彻底规避控制字符问题,还能自定义展示内容:
# 输出JSON格式的计划 terragrunt plan -no-color -json # 用jq转换成易读的文本(可选) terragrunt plan -no-color -json | jq -r '.resource_changes[] | "\(.type).\(.name): \(.change.actions[])"'
JSON输出完全纯净,没有任何格式控制代码,适配各种评论场景。
4. 检查Terragrunt全局配置
确认terragrunt.hcl中全局添加了-no-color参数,避免局部执行时遗漏:
extra_arguments "plan" { commands = ["plan"] arguments = ["-no-color"] }
内容的提问来源于stack exchange,提问作者carlitos081
相关产品推荐
相关产品推荐

