我正在尝试将AWS密钥和密码传递到jenkins脚本(用于创建环境文件)
我的代码:
node {
writeFile file: 'temp_env.txt', text: """
AWS_ACCESS_KEY= << Access Key >>
AWS_SECRET_KEY= << password >>
"""
docker.withRegistry('https://quay.io', 'c5234316dc-dqwqwda1-415645452-b343-406bf8332edb') {
sh 'docker pull quay.io/docker_image'
docker.image ('quay.iodocker_image').run('-it --env-file temp_env.txt --name test quay.io/docker_image:develop ./code/test1.py test-service')
sh 'rm temp_env.txt'
}
}
我正在使用实际的密钥和ID,我希望在这里注入凭据。我该如何实现?我阅读了整个说明here,但无法弄清楚。
我知道如何使用凭据绑定插件,但是不确定如何将user_name和password凭据变量添加到我的代码中。
答案 0 :(得分:0)
those instructions的想法是首先将Credentials section of Jenkins中的那些凭据存储为Jenkins Credential Biding plugin到shown here
一旦安全地存储在那里,您可以在环境步骤中声明它们:
environment {
AWS_ACCESS_KEY_ID = credentials('jenkins-aws-secret-key-id')
AWS_SECRET_ACCESS_KEY = credentials('jenkins-aws-secret-access-key')
}
答案 1 :(得分:0)
解决方案:存储凭据,api令牌和秘密密钥的最佳做法是将其存储在jenkins中的全局凭据上(这适用于项目/项目/对象)并获取管道代码。这种方法可防止用户在其代码/项目中以纯文本格式不安全地存储敏感数据。
我将通过简短示例进行演示:在此示例中,我将应用的api令牌存储在Jenkins凭据中,将其放入管道步骤中并进行卷曲以执行一些其余的api我的服务器上的HTTP操作。
首先存储:
Jenkins->凭据->全局->添加凭据->选择您的 输入并填写详细信息
在我的示例中,我创建带有秘密xxx的秘密文本,ID为MY_SECRET_TOKEN,说明将成为我的api服务的秘密令牌。 比好,我将其保存,并且管道如下所示。
script{
withCredentials([
string(
credentialsId: 'MY_SECRET_TOKEN',
variable: 'TOKEN_VARIABLE')
]) {
sh """#!/bin/bash
curl -k -L -H 'Authorization: Token ${TOKEN_VARIABLE}'
https://myservice/api/users/someaction/
"""
}
}
有关更多信息,请查看documentation