如何从jenkins shell输出中隐藏密码

时间:2014-05-12 10:44:48

标签: linux bash shell jenkins

我首先在文件系统上有两个脚本,第二个是jenkins作业。 第二个脚本调用第一个并将参数传递给它。 参数包含密码参数。 如何将密码隐藏到日志中? 我试图通过使用exec命令隐藏输出,但问题没有解决。

2 个答案:

答案 0 :(得分:12)

Mask Passwords plugin就是这样做的。

答案 1 :(得分:0)

请在下面找到我的解决方案[不使用Mask Passwords插件]:

关于我的詹金斯工作的简要说明: 我写了一份工作,根据运行时给定的参数从Nexus下载工件,然后建立数据库SQL连接并使用maven flyway插件部署SQL脚本。我的工作需要-环境,数据库架构,工件版本号,Flyway命令,数据库用户及其密码作为输入参数。

问题的简要背景: 在将密码作为MAVEN GOAL(参数)传递时,它以纯文本形式出现在Jenkins Console中。 尽管我在运行时使用“密码参数”来传递密码,但后来它还是以纯文本形式出现在控制台中。

我尝试使用“秘密文本”对密码进行加密,但是随后我的工作开始失败,因为加密的密码已传递给无法连接到数据库的Maven Goals。

解决方案:

我从构建环境中使用了 “将密码作为环境变量注入到构建中” ,并将其值定义为我的“密码参数”(我的密码参数名称为db_password)我在运行时将其作为参数传递(例如:我将我的注入密码值定义为:$ {db_password})。

这按预期工作。我在工作时通过的密码为[*******]

  

[控制台日志:   执行Maven:-B -f /work/jenkins_data/workspace/S2/database-deployment-via-flyway-EDOS/pom.xml干净编译-Ddb = UAT_cms_core -DdatabaseSchema = cms-core -Dmode = info -DdeploymentVersion = 1.2。 9 -Ddb_user = DB_USER -Ddb_password = [*******]   ]