[英]How to pass a parameter to a powershell script in a jenkins pipeline
[英]How to pass AWS secret key and id in jenkins build pipeline script?
我正在嘗試將 AWS 密鑰和密碼傳遞給 jenkins 腳本(它創建 env 文件)
我的代碼:
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,我寧願在此處注入憑據。 我怎樣才能實現它? 我在這里閱讀了整個說明,但無法弄清楚。
我知道如何使用憑據綁定插件,但不確定如何將 user_name 和密碼憑據變量添加到我的代碼中。
這些說明的想法是首先將這些憑據存儲在Jenkins Credential Biding 插件中的Jenkins 憑據部分中,如下所示
一旦安全地存儲在那里,您就可以在環境步驟中聲明它們:
environment {
AWS_ACCESS_KEY_ID = credentials('jenkins-aws-secret-key-id')
AWS_SECRET_ACCESS_KEY = credentials('jenkins-aws-secret-access-key')
}
解決方案:存儲憑據、api 令牌和密鑰的最佳做法是將其存儲在 jenkins 中的全局憑據上(這適用於項目/項目/對象中的所有憑據范圍)並獲取管道代碼。 這種方法可以防止用戶在其代碼/項目中不安全地以純文本形式存儲敏感數據。
我將用簡短的例子來演示它:在這個例子中,我將我的應用程序的 api 令牌存儲在 Jenkins 憑證中,在我的管道步驟中獲取它並卷曲它以在我的服務器上執行一些 rest api HTTP 操作。
首先存儲它:
Jenkins -> Credentials -> Global -> Add Credentials -> 選擇你的類型並填寫詳細信息
在我的示例中,我使用秘密 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/
"""
}
}
有關更多信息,請查看文檔
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.