Mask Passwords插件只允许将预设密码传递给构建过程,因此它对作业的安全性没有任何作用。
我需要一个密码参数,每次运行作业时都需要输入(作为参数),我需要在控制台输出中屏蔽它。
从我正在阅读的内容,去管理Jenkins - >配置系统和选择屏蔽密码参数应该工作,但它不是出于某种原因..任何建议?
答案 0 :(得分:10)
使用Jenkins 1.609.1和Mask Passwords Plugin 2.7.3进行测试。您需要在"配置系统"中激活它。以及你想要使用它的工作。在工作配置中是一个点"掩码密码"必须激活,然后使用全局配置来屏蔽密码。
答案 1 :(得分:6)
如果您有Linux构建器,则可以隐藏shell命令的输出 在命令文本框中的执行shell下,只需在第一行添加以下行:
#!/bin/bash +x
some other commands...
这将仅在控制台输出中使用密码隐藏命令的输出
答案 2 :(得分:1)
我在这里使用“将构建密码注入环境变量”形成“构建环境”。这真的很棒。它将隐藏密码从控制台。 更多它还通过“密码参数”隐藏用户输入密码
真的很酷!! :)
答案 3 :(得分:1)
您可以使用凭据。添加秘密文本凭据,并提供您将使用的身份和ID,如下所示:
withCredentials([string(credentialsId: 'DOCKER_USER', variable: 'DOCKER_USER'), string(credentialsId: 'DOCKER_PASSWORD', variable: 'DOCKER_PASSWORD')]) {
sh "docker login -u $DOCKER_USER -p $DOCKER_PASSWORD"
sh "docker push '$DOCKER_USER/appName:test'"
}
DOCKER_USER
和DOCKER_PASSWORD
位于jenkins凭证存储中,在日志中将由***
替换
答案 4 :(得分:0)
你可以使用Mask Passwords Plugin这是非常有用的 https://wiki.jenkins-ci.org/display/JENKINS/Mask+Passwords+Plugin
答案 5 :(得分: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 = [*******] ]