使用jenkins的凭据插件时,如何清除密码的日志和输出文件?
credentialsPlugin可从控制台隐藏机密,但不会将其排除在其他工具生成的日志/输出文件之外。例如, 接下来,将使用junit输出回调运行ansible,该回调将输出存储为junit xml文件,并在此文件中公开USER / PASSWORD机密。
withCredentials([usernamePassword(credentialsId: 'my-test-user',
passwordVariable: 'USER',
usernameVariable: 'PASSWORD')]) {
withEnv([
"ANSIBLE_STDOUT_CALLBACK=junit",
"JUNIT_OUTPUT_DIR=${env.WORKSPACE}"
]) {
ansiblePlaybook(
playbook:"ansible/playbooks/steps.yml",
extraVars: [
user: USER,
password: PASSWORD
]
)
}
}
很显然,凭据插件无法神奇地到达工具链并有选择地隐藏秘密。 ansiblePlaybook插件也不可能做到这一点。但是,对于certificatePlugin具有名为obscureCredentialsInFile(file: 'mylog.xml')
的端点/方法将是很好的。可以在插件外部实现此功能,但似乎是意外泄漏的良方。
有人知道这个的标准詹金斯模式吗?我怀疑答案很简单:“不要那样做”,但我想我会问