无法看到Jenkins Credentials值

时间:2018-02-08 11:26:56

标签: jenkins kubernetes jenkins-plugins

我正在尝试利用Jenkins凭据插件来存储我想要注入Kubernetes集群中的Secrets的敏感数据。我有一个JenkinsFile,在我的项目中用于定义步骤,我添加了以下代码从凭证中提取用户名/密码并传递给shell脚本,用实际文件替换文件中的占位符: p>

stages {
    stage('Build') {
        steps {
           withCredentials([usernamePassword(credentialsId: 'creds-test', passwordVariable: 'PASSWORD', usernameVariable: 'USERNAME')]) {
               sh '''
                  echo $USERNAME
                  echo $PASSWORD

                  chmod +x secrets-replace.sh
                  ./secrets-replace.sh USERNAME_PLACEHOLDER $USERNAME
                  ./secrets-replace.sh PASSWORD_PLACEHOLDER $PASSWORD
                '''
              }
              echo 'Building...'
              sh './gradlew build --refresh-dependencies'
        }
    }
    ...
}

然而,无论何时运行,我得到的都是掩盖的****值,即使我将它传递给shell脚本。以下是构建日志的一部分:

Jenkins Log

我是否需要配置一些东西才能访问未屏蔽的值?

3 个答案:

答案 0 :(得分:2)

就像上面添加的其他内容一样,您实际上可以将其写入文件,然后将文件放在withCredentials之外。您应该对此感到满意。如下。

withCredentials([usernamePassword(credentialsId: 'creds-test', passwordVariable: 'PASSWORD', usernameVariable: 'USERNAME')]) {
           sh '''
              echo $USERNAME > tmp
              echo $PASSWORD >> tmp
            '''
          }
          sh 'cat tmp'

这将打印实际的凭证值

答案 1 :(得分:0)

将变量写为jenkins文件。转到jenkins工作区并查看文件内部。令牌将以纯文本形式显示在此处。

答案 2 :(得分:0)

考虑操作字符串

echo env.PASSWORD.toCharArray().join(' ');

喜欢

stages {
    stage('Build') {
        steps {
           withCredentials([usernamePassword(credentialsId: 'creds-test', passwordVariable: 'PASSWORD', usernameVariable: 'USERNAME')]) {
               script {
                  echo env.USERNAME.toCharArray().join(' ');
                  echo env.PASSWORD.toCharArray().join(' ');
               }
               sh '''
                  chmod +x secrets-replace.sh
                  ./secrets-replace.sh USERNAME_PLACEHOLDER $USERNAME
                  ./secrets-replace.sh PASSWORD_PLACEHOLDER $PASSWORD
                '''
              }
              echo 'Building...'
              sh './gradlew build --refresh-dependencies'
        }
    }
    ...
}