## 憑證管理
Jenkins 的聲明式流水線語法有一個 credentials()函數,它支持 secret text(加密文本)、username 和 password(用戶名和密碼)以及 secret file(加密文件)等。接下來看一下一些常用的憑證處理方法。
### 1.加密文本
本實例演示將兩個 Secret 文本憑證分配給單獨的環境變量來訪問 Amazon Web 服務,需要 提前創建這兩個文件的 credentials,Jenkinsfile 文件的內容如下
~~~json
//Jenkinsfile (Declarative Pipeline)
pipeline {
agent any
environment {
AWS_ACCESS_KEY_ID = credentials('txt1')
AWS_SECRET_ACCESS_KEY = credentials('txt2')
}
stages {
stage('Example stage 1') {
steps {
echo "$AWS_ACCESS_KEY_ID"
}
}
stage('Example stage 2') {
steps {
echo "$AWS_SECRET_ACCESS_KEY"
}
}
}
}
~~~
### 2.用戶名密碼
本示例用來演示 credentials 賬號密碼的使用,比如使用一個公用賬戶訪問Bitbucket、GitLab、 Harbor 等。假設已經配置完成了用戶名密碼形式的 credentials,憑證ID為harbor-account
~~~json
//Jenkinsfile (Declarative Pipeline)
pipeline {
agent any
environment {
BITBUCKET_COMMON_CREDS = credentials('harbor-account')
}
stages {
stage('printenv') {
steps {
sh "env"
}
}
}
~~~
**上述的配置會自動生成3個環境變量**
* BITBUCKET\_COMMON\_CREDS:包含一個以冒號分隔的用戶名和密碼,格式為 username:password
* BITBUCKET\_COMMON\_CREDS\_USR:僅包含用戶名的附加變量
* BITBUCKET\_COMMON\_CREDS\_PSW:僅包含密碼的附加變量。
### 3.加密文件
需要加密保存的文件,也可以使用 credential,比如鏈接到 Kubernetes 集群的 kubeconfig 文件等。
假如已經配置好了一個kubeconfig文件,此時可以在Pipeline中引用該文件
~~~
//Jenkinsfile (Declarative Pipeline)
pipeline {
agent {
kubernetes {
cloud 'kubernetes'
slaveConnectTimeout 1200
workspaceVolume emptyDirWorkspaceVolume()
yaml '''
kind: Pod
metadata:
name: jenkins-agent
spec:
containers:
- args: [\'$(JENKINS_SECRET)\', \'$(JENKINS_NAME)\']
image: '192.168.10.15/kubernetes/jnlp:alpine'
name: jnlp
imagePullPolicy: IfNotPresent
- command:
- "cat"
image: "192.168.10.15/kubernetes/kubectl:apline"
imagePullPolicy: "IfNotPresent"
name: "kubectl"
tty: true
restartPolicy: Never
'''
}
}
environment {
MY_KUBECONFIG = credentials('kubernetes-cluster')
}
stages {
stage('kubectl') {
steps {
container(name: 'kubectl') {
sh """
kubectl get pod -A --kubeconfig $MY_KUBECONFIG
"""
}
}
}
}
}
~~~
- DevOps介紹
- 持續集成流程
- git工作流實踐
- 新人準備git環境
- git工作流最佳實踐
- jenkins基礎入門
- jenkins簡介
- jenkins安裝(docker)
- 源碼拉取
- maven構建
- 應用發布
- 結合gitlab版本管理
- jenkins-docker部署
- harbor鏡像發布
- jenkins集成SonarQube
- SonarQube代碼檢測
- 集成SonarQube
- jenkins-pipeline
- 構建pipeline任務
- pipeline基礎結構
- pipeline核心語法
- jenkinsfile構建
- 完整案例
- 整合釘釘發送通知
- 腳本使用憑證信息
- jenkins結合k8s使用
- k8s架構及基礎概念
- k8s操作命令
- jenkins部署k8s
- 附錄(其他未完成)
- jenkins高可用服務搭建
- gitlab-docker環境搭建
- 開發人員安裝git
- JDK與maven
- docker安裝gitlab
- docker安裝
- docker-compose安裝
- harbor安裝
- SonarQube安裝
- 2.暫時沒寫的內容
- 構建結果郵件發送
- 已有項目上傳gitlab