一、场景原文链接:https://www.dqzboy.com 描述
我们在通过Jenkins去构建、或者部署某些服务、再或者去SSH远程到某台节点主机上执行一些脚本等等,在这些场景下,我们肯定会使用到密码,那么Jenkins默认情况下不进行任何处理的话,在前端展示UI和控制台日志输出中都会将我们传入的密码以明文的方式展示出来,这个时候就大大降低了服务访问的安全性,所以我们就需要通过下面的方法将UI和控制台日志输出中的密码进行隐藏。
二、UI界面隐藏
对Jenkins构建Job任务的UI界面上隐藏一些关键性的参数,例如:密码,在Jenkins的参数化构建中默认有个密码参数,这个参数可以对UI中输入的内容进行隐藏,设置如下:
三、控制台隐藏
- 上面的方式只可以隐藏Job UI上的一些参数,但是无法隐藏控制台日志中输出的一些关键信息,这个时候我们就需要使用到插件
Mask
原文链接:https://www.dqzboy.com Passwords - 插件介绍:https://plugins.jenkins.io/mask-passwords/
1、启用Mask Password
2、Job任务中选择密码参数
3、Pipelin文章来源(Source):https://www.dqzboy.com e中实现方法
#!groovy
@Library('jenkinslib') _
def tool = new org.devops.tool()
pipeline {
agent {
any
}
stages {
stage('Checkout') {
steps {
script {
tool.PrintMes("========Check Out========",'green')
}
}
}
stage('TEST Passwd') {
steps{
script {
tool.PrintMes("========TEST Passwd========",'green')
}
//控制台日志中将打印Passwd参数的值替换为****;注意Passwd是与上面参数化构建中我们选择密码参数时定义的Name名称保持一致
wrap([$class: 'MaskPasswordsBuildWrapper', varPasswordPairs: [[var: 'Passwd', password: Passwd]], varMaskRegexes: []]) {
sh '''
echo ${Passwd}
'''
}
}
}
}
post {
success {
script {
tool.PrintMes("========流水线执行成功========",'green')
}
}
failure {
script {
tool.PrintMes("========流水线执行失败========",'red')
}
}
}
}
- 执行任务查看效果,如下图所示,控制台输出的日志中展示的密码被隐藏了,这就达到了我们所要的效果了。
好久没过来了,过来学习下,支持博主