Pad*_*ddy 3 jenkins jenkins-plugins kubernetes
我正在尝试利用 Jenkins 凭证插件来存储我想注入到我的 Kubernetes 集群中的 Secrets 中的敏感数据。我有一个 JenkinsFile ,它在我的项目中用于定义步骤,并且我添加了以下代码以从凭证中提取用户名/密码并传递给 shell 脚本以将文件中的占位符替换为实际文件:
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'
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
然而,每当它运行时,我得到的只是被屏蔽的 **** 值,即使我将它传递给 shell 脚本也是如此。这是构建日志的一部分:
我需要配置什么才能访问未屏蔽的值吗?
将变量写入 jenkins 中的文件。转到 jenkins 工作区并查看文件内部。令牌将以纯文本形式出现在那里。
更新
更简单的方法是打印base64凭证的编码值,然后对其进行解码。
小智 6
与上面添加的其他内容一样,您实际上可以将其写入文件,然后在 withCredentials 之外捕获该文件。你应该对此没问题。如下..
withCredentials([usernamePassword(credentialsId: 'creds-test', passwordVariable: 'PASSWORD', usernameVariable: 'USERNAME')]) {
sh '''
echo $USERNAME > tmp
echo $PASSWORD >> tmp
'''
}
sh 'cat tmp'
Run Code Online (Sandbox Code Playgroud)
这会打印实际的凭证值
| 归档时间: |
|
| 查看次数: |
6566 次 |
| 最近记录: |