Jenkins插件截断了Terraform Plan输出

112次阅读
没有评论

问题描述

在使用Jenkins的Blue Ocean插件时,发现Terraform Plan的输出被截断了,只显示了大约1700行,并在底部显示了一个”Show Complete Log”按钮以查看完整的输出。然而,当用户打开完整日志时,带有颜色的Terraform Plan被转换成了特殊的字符,导致无法阅读计划。
用户希望增加在漂亮的界面(带有颜色)中显示的行数(或字节数),以便更容易阅读。
以下是特殊字符的示例:

[2023-03-23T17:48:53.254Z] [0m[1mmodule.mymodule.module.application.module.aws_something.data.file.policy: Reading...[0m[0m...[32m+[0m [0m[1m[0meffect[0m[0m    = "Allow"[2023-03-23T17:48:53.280Z]           [32m+[0m [0m[1m[0mresources[0m[0m = [[2023-03-23T17:48:53.280Z]               [32m+[0m [0m"arn:aws:sqs:ap-xxxxxxx-2:11212121212:xxxxxxxxxxxxxxxxxxx",[2023-03-23T17:48:53.280Z]             ][2023-03-23T17:48:53.280Z]           [32m+[0m [0m[1m[0msid[0m[0m       = "PermitTopic"

有什么解决办法吗?

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

你可以通过配置hudson.consoleTailKB系统属性来增加显示的行数(默认值为150)。具体如何设置系统属性取决于你如何安装Jenkins以及如何启动Jenkins服务(例如,我通过在/etc/sysconfig/jenkins中设置JENKINS_JAVA_OPTIONS变量来配置我的Jenkins)。
以下是如何设置hudson.consoleTailKB系统属性的步骤:
1. 打开Jenkins的配置文件(例如/etc/sysconfig/jenkins)。
2. 在配置文件中找到JENKINS_JAVA_OPTIONS变量。
3. 在变量中添加-Dhudson.consoleTailKB=<value>,其中<value>是你想要设置的行数。
4. 保存配置文件并重启Jenkins服务。
请注意,这种方法只适用于增加显示的行数,并不能解决特殊字符的问题。

方案2

特殊字符看起来像是ANSI转义码,你可以尝试使用ansicolor插件或将日志加载到支持ANSI颜色代码的查看器/编辑器中来解决这个问题。
以下是如何使用ansicolor插件的步骤:
1. 在Jenkins中安装ansicolor插件。
2. 在Jenkins的构建配置中,找到”Add post-build action”部分。
3. 选择”Color ANSI Console Output”选项。
4. 保存配置并重新运行构建。
ansicolor插件将会解析并正确显示ANSI颜色代码,使得Terraform Plan的输出能够正常显示。
请注意,这种方法需要安装额外的插件,并且可能会影响Jenkins的性能。

正文完