如何从服务器运行批处理脚本来触发Jenkins中的作业,该作业使用全局凭证(秘密文件),例如数据库服务器的密码?
我已经在Jenkins中创建了一个参数化作业,该作业执行放置在服务器上的bash命令以进行数据库备份,该批处理作业使用Jenkins的全局凭据中的数据库密码。当我从Jenkins控制台执行时,这个作业是成功的。
现在,我希望使用bash脚本通过传递参数(使用crumb令牌)来执行此作业,bash希望利用放置在Jenkins全局凭据集中的凭据。这个批处理脚本可以利用来自Jenkins的全局凭证(在本例中是数据库密码)吗?
#!/bin/bash
##this generates the crumb token
crumb=$(curl -u "userid:pswd" -s 'http://<jenkins-url>:8080/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)')
##this will call the remote job where i am passing the variables
curl -u "userid:pswd" -H "$crumb" -X POST http://<jenkins-url>:8080/job/backup-to-aws/buildWithParameters?MYSQL_HOST=db_host&DATABASE_NAME=testdb&AWS_BUCKET_NAME=<bkt-name>&DB_PASSWD=<how should i pass this secret credential stored in jenkins>我想从服务器运行批处理脚本,该服务器使用Jenkins存储的全局凭据,如db密码。如何在从服务器传递脚本时使用这些凭据?
发布于 2019-08-16 17:47:42
curl -u "userID:pswd" -H "$crumb" -X POST http://<jenkins-url>:8080/job/Daily-Backup-Job/buildWithParameters?J_DB_NAME=mysql&J_DB_SERVER=db_host&J_BUCKET_NAME=<name-of-my-bucket>&J_DB_PASSWD=${DB_PASSWD}&J_AWS_PASS=${AWS_SECRET_ACCESS_PASSWORD}此语句已成功运行,其中${ DB_PASSWD }和${ AWS_SECRET_ACCESS_PASSWORD }实际上是在jenkins全局凭据变量中定义的参数,即DB_PASSWD和AWS_SECRET_ACCESS_PASSWORD分别是这些凭据的ID
https://stackoverflow.com/questions/57521489
复制相似问题