本頁面將引導您設定 Jenkins,以便將建構的 Maven 套件儲存在 Artifact Registry 存放區中。
事前準備
如果目標存放區不存在,請建立新的存放區。
設定存放區存取權
建立 Jenkins 專用服務帳戶,供 Jenkins 與 Artifact Registry 搭配使用。
執行下列指令,建立名稱為
jenkins-sa
的服務帳戶:gcloud iam service-accounts create jenkins-sa
這會建立名為 jenkins-sa@PROJECT.iam.gserviceaccount.com的服務帳戶,其中 PROJECT 是您的專案 ID。
在包含存放區的專案中,將 Artifact Registry Writer 角色授予您建立的 Jenkins 服務帳戶。您可以為專案中的所有存放區授予角色,也可以為服務帳戶需要存取的特定存放區授予角色。
如要進一步瞭解權限和依角色授予存取權,請參閱「設定存取權控管」。
設定 GKE 叢集
設定新的 Google Kubernetes Engine 叢集或節點集區時,請使用您為 Jenkins 建立的服務帳戶。
控制台
如要使用 Google Cloud 主控台建立叢集,請執行下列步驟:
前往 Google Cloud 控制台的「Artifact Registry」選單。
按一下 [Create cluster] (建立叢集)。
視需要設定叢集。請先不要點選 [Create] (建立)。
按一下預設節點集區中的「更多選項」。
在「安全性」專區中,選取您建立的 Jenkins 服務帳戶。
按一下「Save」即可結束重疊視窗。
按一下 [建立]。
gcloud
使用下列任一指令,透過 Jenkins 服務帳戶建立叢集。在指令中,PROJECT 是您的專案 ID。
如要使用服務帳戶建立叢集,請執行指令。
gcloud container clusters create example-cluster --service-account=jenkins-sa@PROJECT.iam.gserviceaccount.com
若要在現有叢集中建立節點集區:
gcloud container node-pools create example-pool --service-account=jenkins-sa@PROJECT.iam.gserviceaccount.com
如要進一步瞭解這項指令,請參閱 gcloud container clusters create 說明文件。
在 GKE 上設定 Jenkins
請按照在 GKE 上設定 Jenkins的教學課程操作。使用您在上一節建立的叢集。
在 Jenkins 中,將 GKE 外掛程式更新至最新版本。依序點選「Manage Jenkins」 >「Manage Plugins」 >「Updates」。
設定 Maven 專案
在 Jenkins 說明文件 GitHub 存放區中,分支 Maven 範例專案。
複製分支存放區。
git clone git@github.com:USER_NAME/simple-java-maven-app.git
在 Jenkins 介面中設定新的管道。
- 按一下「新增項目」。
- 選取「管道」。
- 為管道命名,然後按一下「確定」。
在「General」分頁中,在「Pipeline」部分設定下列選項:
- 選取「Pipeline script from SCM」。
- 在 SCM 下拉式選單中,選取「Git」,然後指定連結至 GitHub 存放區的網址和憑證。
按一下 [儲存]。
設定存放區連線
使用存放區和憑證設定 Jenkins,以便連線至存放區。
將存放區新增至 Maven
pom.xml
。使用下列指令列印要新增的程式碼片段。gcloud artifacts print-settings mvn [--project=PROJECT] \ [--repository=REPOSITORY] [--location=LOCATION]
地點
建立 YAML 檔案做為 Jenkins 代理程式的 Pod 範本。
mkdir jenkins cat > jenkins/maven-pod.yaml << EOF apiVersion: v1 kind: Pod spec: containers: - name: maven image: maven:3.3.9-jdk-8-alpine command: ['cat'] tty: true EOF
修改
Jenkinsfile
檔案。pipeline { agent none stages { stage('Deploy') { steps { agent { kubernetes { label 'mavenpod' yamlFile 'jenkins/maven-pod.yaml' } } container('maven') { sh "mvn -B clean deploy" } } } } }
開始建構
將所做的變更推送至 GitHub 專案。
git add . && git commit -m "Configure my Jenkins pipeline" && git push
在 Jenkins 介面中,為範例 Maven 專案中的應用程式啟動新的建構作業。
建構作業完成後,構件會加入您建立的 Artifact Registry Java 套件存放區。
執行下列指令,列出存放區中的套件:
gcloud artifacts packages list --repository=mvn-jenkins --location=LOCATION
輸出內容會與下列範例相似:
Listing items under project {YOUR_PROJECT}, repository mvn-jenkins.
PACKAGE CREATE_TIME UPDATE_TIME
com.mycompany.app:my-app 2019-06-25T17:09:44 2019-06-25T17:09:44