如何不显示内容执行的内容替换从管道 jenkins



我希望在管道 jenkins 期间将应用程序 Vault 中的密码注入到属性文件中。我找到了一个有效的解决方案。但我对这个解决方案不是很满意。

密码未隐藏。我可以在管道 Jenkins 的日志作业中读取密码。此日志是由于内容替换插件。

有人想保护这种行为吗?

以下是我的日志作业中的内容替换插件生成的日志示例:

00:46:17 replace file content: /tmp/workspace/EXAMPLE_JOB_CONTENTREPLACE/application.properties
00:46:17  replace times: 0, [{{FTP_PASSWD}}] => [thisismyftppwd] 

正在做的一个例子是,我禁止了 Vault 代码以简化演示。

stage ('Inject Secrets') {
    steps {
        script {
            node {
                def vaultData = [:]
                vaultData['ftp_password'] = 'thisismyftppwd'
                contentReplace(
                    configs: [ fileContentReplaceConfig( 
                        configs: [ fileContentReplaceItemConfig(
                            search: '\{\{FTP_PASSWD\}\}', replace: vaultData['ftp_password'])],
                        fileEncoding: 'UTF-8', filePath:
                            " ${WORKSPACE}/application.properties")])
            }
        }
    }
}

感谢您的帮助。

您可以使用 wrap: 通用构建包装器MaskPasswordsBuildWrapper,如下所示:

pipeline {
  agent any
  stages {
    stage('Build') {
      steps {
        script {
          sh "touch ${WORKSPACE}/application.properties"
          sh "echo '{{FTP_PASSWD}}' > ${WORKSPACE}/application.properties"
          def vaultData = [ftp_password:'thisismyftppwd']
          def ftp_password = vaultData['ftp_password']
          wrap([
            $class: 'MaskPasswordsBuildWrapper', 
            varPasswordPairs: [
              [password: ftp_password, var: 'ftp_password']
            ]
          ]) {
              echo "${ftp_password}"
              contentReplace(
                configs: [ 
                  fileContentReplaceConfig( 
                    configs: [ 
                      fileContentReplaceItemConfig(
                        search: '\{\{FTP_PASSWD\}\}', 
                        replace: "${ftp_password}"
                      )
                    ],
                    fileEncoding: 'UTF-8', 
                    filePath: "${WORKSPACE}/application.properties"
                  )
                ]
              )
          }
          echo '########'
          sh "cat ${WORKSPACE}/application.properties"
        }
      }
    }
  }
}

最新更新