背景
- 在CI、CD过程中,有时需要将Jenkins的构建日志展现给用户,此时涉及到docker login等命令时,会用到密码。
- 如果想要隐藏个人用户的密码,那改怎么办呢?
- 介绍一个Jenkins插件:MaskPasswords
使用方法
如果时全局账号,密码,设置比较方便,看文档即可。这里介绍更通用、强大的功能,那就是正则表达式:
以docker login为例
docker login -u username --password 123
如上命令,123密码会在日志中暴露,经过处理,我们理想的结果如下:
docker login -u username --password ****
实现步骤如下:
- Jenkins中安装插件 系统管理>插件管理
- 安装完以后配置全局正则表达式,当然也可以每个job单独配置。 系统管理>系统管理
- 在job中勾选mask
最后讲解一下正则表达式
(?<=--password).*(?=\s)
(?<=)
表示断言以某某开始,即以–password开始
(?=)
表示断言以某某结束,,\s即以空格结束
两个组合的效果就是,匹配出中间的部分,.*即–password和空格中间的任意字符,也就是密码。