在Jenkins中的build steps中使用shell脚本如何访问凭据中配置的用户名和密码? 不使用pipeline
时间: 2024-09-19 17:11:34 浏览: 102
在Jenkins中,如果你想要在非Pipeline构建步骤中(如自由风格项目或简单脚本任务),直接使用shell脚本访问存储在凭据中的用户名和密码,你需要借助Jenkins提供的环境变量或者命令行工具来间接实现。具体做法如下:
1. 配置凭据: 在Jenkins的"Credentials"部分,创建一个新的凭据,可以是"Username with Password"类型。记住它的ID和名称,比如ID为`myCredential`。
2. 设置系统属性: 在Jenkins全局配置中(System Configuration > Global Properties),打开“Environment variables”选项,然后添加一个新变量,例如叫`JENKINS_CREDENTIALS_ID`,值设置为你的凭据ID(如`myCredential`)。
3. 获取凭据信息: 在你的shell脚本中,可以使用`$JENKINS_URL/scriptText` API或者`curl`命令来获取凭据信息。这通常是通过发送POST请求到Jenkins服务器,附带包含凭据ID的查询参数。
示例脚本片段(使用cURL):
```sh
# 替换为你自己的Jenkins URL、username和password
CREDENTIAL_ID="myCredential"
USER=$(curl -s "${JENKINS_URL}/computer/${JENKINS_NAME}/jnlpJars/jenkins-cli.jar?url=${JENKINS_URL}&token=$JENKINS_TOKEN --data-urlencode 'credId=${CREDENTIAL_ID}' | jq -r '.credentials[0].username')
PASS=$(curl ... 同样方式获取password)
```
4. 在shell脚本中使用获取的用户名和密码,进行SSH连接或者其他需要凭据的操作。
注意:这种方法并不是最安全的,因为它将敏感信息暴露在脚本日志中。最好在更复杂的场景下考虑使用Job DSL插件或者使用插件如`jenkins-job-builder`来封装这种逻辑。
阅读全文