第一回目の記事「HCL Accelerate: GitHub と Jira と組み合わせた HCL Accelerate Value Stream Management」の第二回目、HCL Accelerate VSM with Jenkins – Part 2 の翻訳版です。
HCL Accelerate VSM を Jenkins と組み合わせて使用する - パート 2
2020年9月16日
著者: Daniel Trowbridge / Technical Lead
このチュートリアルでは、HCL Accelerate パイプラインからパラメトリックなJenkinsジョブを設定してデプロイする方法を説明します。
前提条件
1. PRODデプロイ用のJenkinsジョブを作成する
1.1 新しいパイプラインジョブの作成
今回は架空のプロダクションまたは「PROD」環境へのデプロイ用に、2つ目のパイプラインジョブを作成します。
1.2 パイプラインスクリプトの設定
以下のスクリプトをコピーしてパイプラインスクリプトとして貼り付けます。Build、DEV、QAで使用したスクリプトに似ています - PROD スクリプトには、"Download attributes for API" json ファイルから取得しなければならない2つの変数値があります。このファイルは、HCL Accelerate バリューストリームのツールアイコンからダウンロードできます。スクリプトをコピー&ペーストし、正しい変数値を提供したら、Jenkins で「適用」と「保存」をクリックします。
変数名 | 内容 | 例 |
---|---|---|
VSM_ENV_ID_PROD | バリューストリームの PROD 環境を一意に識別するID | 7a115f90-f4e5-4181-9920-78b216bb4afc |
VSM_APP_NAME | HCL Accelerate パイプライン・アプリケーション名(ワークブックには「JKE App1」を使用し、後でこのパイプライン・アプリケーションを作成します) | JKE App1 |
parameters([
string(name: 'buildNumber', description: 'The version of the application to deploy.')
])
node {
//Get value for VSM_ENV_ID_PROD from HCL Accelerate VSM "Download attributes from API" json file.
def VSM_ENV_ID_PROD="0e9ea7c7-ed1d-43f2-9ebf-a5ab5161d61e"
//VSM_APP_NAME must match your HCL Accelerate pipeline application name
def VSM_APP_NAME="JKE App1"
currentBuild.displayName = "${buildNumber}"
stage ("Deploy to PROD") {
step([$class: 'UploadDeployment',
//"versionExtId" can be used in place of "id" and "versionName"
id: "${currentBuild.displayName}",
versionName: "${currentBuild.displayName}",
name: "${currentBuild.displayName}",
description: 'UploadBuild Example',
tenantId: "5ade13625558f2c6688d15ce",
initiator: "admin",
//Must specify one of "appId", "appExtId", or "appName"
appName: "${VSM_APP_NAME}",
environmentName: 'PROD',
environmentId: "${VSM_ENV_ID_PROD}",
result: "${currentBuild.currentResult}".toLowerCase(),
startTime: "${currentBuild.startTimeInMillis}",
endTime: "${System.currentTimeMillis()}",
type: "Jenkins",
debug: false,
fatal: false,
])
}
}
1.3 ジョブをパラメータ化する
パイプラインジョブを「buildNumber」という文字列パラメータでパラメータ化します。Apply をクリックして Save をクリックします。
2. HCL Accelerate パイプラインのセットアップ
PROD のデプロイメントは、DEV や QA のデプロイメントを設定するのとは少し違った方法で設定します。このチュートリアルでは、パイプラインにバージョンを提供する入力ジョブ(以前のビルドまたはディプロイメント)を設定します。パイプラインには、Jenkin ジョブにビルド番号を渡すパラメータ化された PROD ディプロイメントも含まれます。パイプラインに利用可能な入力バージョンを確認し、このバージョンをPROD環境にデプロイすることができるようになります。
2.1 入力ジョブを構成する
2.1.1 パイプラインから、関心のあるアプリケーション(この例では「JKE App1」)の「Input」の下の「+」をクリックします。
2.1.2 "Create Version "フォームで "Automatically "を選択し、ビルドを生成するJenkinsジョブを選択します。このチュートリアルでは、以前に作成した Build, DEV, QA Jenkins ジョブを使用します。
2.2 PRODの配置を設定する
PRODにデプロイするJenkinsジョブをPROD用のHCL Accelerateパイプライン環境に割り当てる(マップする)必要があります。また、ビルド番号にパイプラインパラメータを使用するように、このジョブを設定する必要があります。
2.2.1 パイプラインから、対象のアプリケーション(この例では「JKE App1」)の「PROD」の下の「+」をクリックします。
2.2.2 PRODにデプロイするために作成したジョブを選択し、「保存」をクリックします。
2.2.3 ビルドをデプロイメントにリンクさせるために、Jenkins ジョブのパラメータとして buildNumber を渡します。パラメータを使用してジョブを構成したので、この時点でパラメータを提供するように求められます。HCL Accelerateは、流動的なパイプラインをサポートするために、様々なバージョン/インベントリーのパラメータを用意しています。この場合、${version.buildNumber} をフォームに入力します。
これで、「入力」と「PROD」の両方の列の下に「まだ実行していない」と表示されるはずです。先に進み、HCL Accelerate に新しいビルド情報を提供するための最初の Jenkins ジョブ (入力ジョブ) を実行します。入力ジョブを実行すると、バージョン情報が表示されるはずです。
3. ファイナルステージから PROD への変更
3.1 PROD へのパイプライン展開
3.1.1 HCL Accelerate パイプラインから、PROD の「Play」ボタンをクリックします。
3.1.2 最新版を選択して「デプロイ」をクリックします。これで、先ほど作成したパラメータ化されたJenkinsジョブが起動します。
3.1.3 ジョブが終了すると、パイプラインはバージョン番号とともに「Deployment succeeded」と表示されます。
価値の流れに戻る
バリューストリームに戻ると、ドットが最終段階であるPRODに向かって移動するのを見ることができます。
結論
これで、Jira、GitHub、Jenkinsのチュートリアルシリーズを終了します。私たちは、バックログから本番までのバリューストリームの旅全体をナビゲートし、途中で4つの別々のツールを使用しました:3つの外部ツール(Jira、GitHub、Jenkins)、そしてデプロイメントツールとしてのHCL Accelerate自体です。私たちは、ステージクエリ、統合、リンクルールを持つvsm.jsonファイル、パイプラインとデプロイメントなど、HCL Accelerateの主要な概念について学びました。ここから戻って、バリュー・ストリームの実験を始めることができます。手始めに、vsm.jsonファイルのステージとクエリを見ることから始めるのが良いでしょう。そこから、独自のプロセスに合わせてバリューストリームを形成し始めることができます。