Appearance
5. CI/CDパイプラインの実行
Qmonus Value Stream に登録した CI/CD パイプラインを実行し、API Backend をデプロイします。
5-1. AssemblyLineの確認(azure-shared-infra)
azure-shared-infra
の AssemblyLine を確認して、登録された CI/CD パイプラインの内容を確認してみましょう。
Pipeline Stages を確認すると、deploy
Pipeline が存在していることがわかります。この deploy
Pipeline は、本チュートリアルで選択した構成(Architecture, Option)に基づいて生成された、azure-shared-infra
用のクラウドリソースをデプロイする Pipeline になります。 azure-shared-infra
の AssemblyLine は、この deploy
Pipeline のみから構成されています。このため、この AssemblyLine を実行すると deploy
Pipeline が実行され、deploy
Pipeline の実行が完了すると AssemblyLine の実行が完了することになります。
5-2. Deployment Configの登録(azure-shared-infra)
azure-shared-infra
の AssemblyLine を実行するために Deployment Config を登録します。 Deployment Config は AssemblyLine の実行に必要なパラメータです。
以下の手順に従って azure-shared-infra
のAssemblyLine の Deployment Config を登録してください。
Deployment Config とは
Deployment Config とは、Deployment に対して定義可能な Key-Value 形式のパラメータです。 各環境ごとにアプリケーションに必要なパラメータや、AssemblyLine を実行するためのパラメータを設定するために利用できます。
AssemblyLine の Pipeline Stages で
deploy
を選択します。画面下部のパラメータ一覧で、赤色となっている箇所が空欄かを確認します。空欄の場合は続けて Deployment Config を編集し、パラメータを設定する必要があります。
EDIT DEPLOYMENT CONFIG
ボタンを押下し、表示される Edit Deployment Config ダイアログで、設定が必要なパラメータを入力します。今回設定する必要のあるパラメータは、以下の通りです。
パラメータ 説明 azureDnsZoneResourceGroupName 事前準備で作成したDNSゾーンが所属するリソースグループ名(例: azure-dns-rg) dnsZoneName 事前準備で作成したDNSゾーン名(例: 2nd-tutorial.azure.vsdev.axis-dev.io) keyVaultAccessAllowedObjectIds Azure Key Vault のシークレットへのアクセスを許可したいオブジェクト ID のリスト
本チュートリアルでは、ユーザー (オブジェクト ID) を検索するや下記のオブジェクトIDの取得方法
を参考に、自分の Azure アカウントのオブジェクト ID を指定してください(例: xxxxx-xxxx-xxxxx-xxxx-xxxxxx)
オブジェクトIDの取得方法
自分の Azure アカウントのオブジェクト ID
は、以下の手順で取得してください。
- Azure portalにログインし、検索欄に
Microsoft Entra ID
を検索して選択します。 - 左のメニュー一覧よりユーザを選択します。
- 検索欄に自分の ID を入力して検索をし、表示されたらユーザをクリックします。
- ユーザの詳細画面をクリックすると
オブジェクトID
が表示されるのでコピーしてパラメータに入力します。
以下のようにパラメータを入力します。入力内容は適宜読み替えてください。
yaml
azureDnsZoneResourceGroupName: azure-dns-rg
dnsZoneName: 2nd-tutorial.azure.vsdev.axis-dev.io
keyVaultAccessAllowedObjectIds: xxxxx-xxxx-xxxxx-xxxx-xxxxxx
SAVE
ボタンを押下し、ダイアログを閉じます。Pipeline Stages
deploy
の画面下部のパラメータ一覧が、すべて青色になっていることを確認します。
5-3. AssemblyLineの実行(azure-shared-infra)
azure-shared-infra
の AssemblyLine を実行し、リソースを Azure にデプロイします。
手順2-2でコピーした Git コミットのハッシュ値を確認します。
画面上部の Input Parameters に以下を入力し、
RUN
ボタンを押下して AssemblyLine を実行します。- gitRevision: Gitコミットのハッシュ値
5-4. AssemblyLineの実行結果の確認(azure-shared-infra)
AssemblyLine を実行すると、自動的に AssemblyLine の進捗画面に遷移します。この画面で、AssemblyLine のステータス、ログ、イベントといった AssemblyLine の進捗を確認できます。
1. ステータスの確認
- Pipelines (Stages) に、各 Pipeline のステータスが表示されます。
- 表示されている
deploy
カードを選択することで、deploy
Pipeline の中で実行される Task のステータスを確認できます。
- すべての Task および Pipeline のステータスが完了になると、AssemblyLine の実行が完了します。
TIP
AssemblyLine の実行には10分程度かかりますが、リアルタイムで状況が反映されます。実行が完了するまでお待ちください。
2. ログの確認
- ページ下部の Timeline に、各 Pipeline および Task の詳細が表示されます。
- Task 名を選択すると、Task の中で実行済みおよび実行中の Step が表示されます。
- Step 名を選択すると、Step の中で実行された処理のログを確認できます。
3. イベントの確認
- 画面右上の
EVENTS
ボタン、もしくは Pipeline および Task カード上の虫眼鏡マーク🔎 から、Pipeline および Task のイベントのログを確認できます。AssemblyLine の実行に失敗した場合などは、原因を分析するためにこちらのログを参照してください。
5-5. 作成されたAzureリソースの確認
Task および Pipeline のステータスがすべて完了となり、AssemblyLine の実行が完了したら、Azure にリソースが作成されたかを確認します。
Azure portalにログイン後に、Provisioning Target 設定時に入力したリソースグループに移動し、リソースを表示します。 リソース一覧を確認し、以下の種類のリソースが生成されていればデプロイは完了です。
リソース一覧
* Kubernetesサービス
* ネットワークセキュリティグループ
* アプリケーション ゲートウェイ
* パブリックIP
* ネットワークセキュリティグループ
* マネージドID
* マネージドID
* Azure DataBase for MySQL
* Azure Cache for Redis
* 仮想ネットワーク
* キーコンテナー
* コンテナー レジストリ
以上で、azure-shared-infra
の AssemblyLine に関する作業は完了です。 続いて、azure-api-backend
の AssemblyLine を実行して、azure-shared-infra
によって作成されたクラウドリソース上に API Backend をデプロイする作業を進めます。
5-6. AKSへのKubernetes Namespaceの作成
本チュートリアルでは、API Backend を Kubernetes クラスタにデプロイすることになります。 そのため、まずは azure-shared-infra
の AssemblyLine によって Azure に作成された Azure Kubernetes Service(AKS)クラスタに、API Backend をデプロイするための Namespace を作成します。
Azure portalにログイン後に、Provisioning Target 設定時に入力したサブスクリプションに移動し、リソースを表示します。
リソース一覧から
Kubernetesサービス
をクリックします。Kubernetesサービス
の画面に移動したら、本チュートリアルで作成したKubernetesサービス
を選択し、左のメニュー一覧より名前空間
を選択します。画面上部の
+ 作成
ボタンをクリックし、名前空間
を選択します。入力画面が表示されたら名前の入力欄に
2nd-tutorial
と入力し、OK
ボタンをクリックして Namespace を作成します。一覧に
2nd-tutorial
が表示されたら Namespace の作成は完了です。
5-7. kubeconfigの再設定
続いて、Qmonus Value Stream からデプロイ先の AKS クラスタにアクセスしてリソースをデプロイできるようにするために、AKS クラスタにアクセスするための kubeconfig を設定します。 kubeconfig は Azure Credentialsとkubeconfigの登録にて登録しましたが、その時点ではまだ AKS クラスタが作成されていなかったためダミーの文字列を登録しただけだったので、実際に利用可能な kubeconfig を再登録する必要があります。
再登録する kubeconfig は、azure-shared-infra
の AssemblyLine によって AKS クラスタが作成されると同時に生成されています。 その時に生成された kubeconfig が Azure Key Vault に保管されているので、取得して Qmonus Value Stream に登録します。
はじめに、Key Vault から kubeconfig を取得するのに必要な操作をします。
Azure portal にログイン後に、Provisioning Target 設定時に入力したリソースグループに移動し、リソースを表示します。
リソース一覧からキーコンテナーを選択します。
左メニュー一覧からシークレットを選択します。
シークレットをクリックするとシークレット情報一覧が表示されるので、一覧の中から
kubeconfig
を選択します。バージョン一覧が表示されるので、現在のバージョンを選択します。
シークレット情報の画面に移動したら、画面下部の
シークレット値を表示する
ボタンをクリックします。kubeconfigが表示されるので、内容をコピーしておきます。
kubeconfig を取得できたので、この kubeconfig を Qmonus Value Stream に再設定します。 再設定は以下の手順で行います。
左のメニューから
Application
を選択します。Application の一覧画面で
azure-api-backend
を選択します。選択すると Deployments の一覧に
application-3-tier-env
が表示されるのでクリックします。Deployment 詳細画面に移動したら、画面右上の
EDIT
ボタンをクリックします。Deployment 編集画面に移動したら、画面下の kubeconfig の入力欄に、コピーした kubeconfig を入力します。
最後に画面右下の
SAVE
をクリックして設定を保存します。
以上で kubeconfig の再設定は完了です。
5-8. AssemblyLineの確認(azure-api-backend)
Qmonus Value Stream からリソースをデプロイできる準備が整ったので、azure-api-backend
の AssemblyLine を確認して、登録された CI/CD パイプラインの内容を確認してみましょう。
左メニューから
AssemblyLine
を選択します。AssemblyLine 一覧画面に移動したら、一覧より
api-backend
の AssemblyLine を選択します。AssemblyLine が表示されたら、
DETAIL
ボタンをクリックして AssemblyLine 詳細画面へ移動します。
Pipeline Stages を確認すると、refer
build
deploy
の Pipeline が存在していることがわかります。これらの Pipeline は、本チュートリアルで選択した構成(Architecture, Option)に基づいて生成された Pipeline であり、azure-api-backend
の AssemblyLine はこれらの Pipeline から構成されています。
各 Pipeline は、それぞれ以下の機能を担っています。
refer
: 他の AssemblyLine でデプロイされたクラウドリソースの情報を取得し、azure-api-backend
の AssemblyLine に渡してリソースデプロイに活用する。- 今回は
azure-shared-infra
の AssemblyLine によってデプロイされたリソースの情報を取得します。
- 今回は
build
: API Backend としてデプロイするアプリケーションのコンテナイメージをビルドする。deploy
:azure-api-backend
用のクラウドリソースをデプロイする。
また、Pipeline Stages が refer
build
deploy
の順番で配置されていることに注目してください。このため、この AssemblyLine を実行すると、まず refer
Pipeline が実行され、refer
Pipeline の実行が完了すると build
Pipeline が実行され、build
Pipeline の実行が完了すると deploy
Pipeline が実行され、deploy
Pipeline の実行が完了すると AssemblyLine の実行が完了することになります。
5-9. Deployment Configの登録(azure-api-backend)
azure-api-backend
の AssemblyLine を実行するために Deployment Config を登録します。 手順は、先に行った azure-shared-infra
の Deployment Config の登録と同様です。
AssemblyLine の Pipeline Stages で
refer
カードを選択します。画面下部のパラメータ一覧で、赤色となっている箇所が空欄かを確認します。これらの赤くなっている空欄の箇所のパラメータを Deployment Config で設定します。
同様に、Pipeline Stages で
build
カードを選択し、画面下部のパラメータ一覧で、赤色となっている箇所が空欄かを確認します。同様に、Pipeline Stages で
deploy
カードを選択し、画面下部のパラメータ一覧で、赤色となっている箇所が空欄かを確認します。EDIT DEPLOYMENT CONFIG
ボタンを押下し、表示される Edit Deployment Config ダイアログで、設定が必要なパラメータを入力します。今回設定する必要のあるパラメータは、以下の通りです。
パラメータ 説明 azureDnsARecordName 新たに作成するAレコード名(例: api) azureDnsZoneName 事前準備で作成したDNSゾーン名(例: 2nd-tutorial.azure.vsdev.axis-dev.io) azureDnsZoneResourceGroupName 事前準備で作成したDNSゾーンが所属するリソースグループ名(例: azure-dns-rg) imageShortName ビルドするコンテナイメージの省略名(例: api-backend) mysqlCreateDbName 新たに作成するMySQLのデータベース名
本チュートリアルではdatabase
を指定してくださいpathToContext ソースディレクトリから Dockerfile のあるディレクトリへの相対パス
本チュートリアルではtodo-app/backend
を指定してくださいreferAppName azure-shared-infra
の AssemblyLine で指定していた Application 名referDeploymentName azure-shared-infra
の AssemblyLine で指定していた Deployment 名referDeploymentStateName Qmonus Value Streamが管理しているリソース状態を表すファイル名
本チュートリアルではapp
を指定してくださいport API Backend のアプリケーションが利用するポート番号
以下のようにパラメータを入力します。入力内容は適宜読み替えてください。
yaml
azureDnsARecordName: api
azureDnsZoneName: 2nd-tutorial.azure.vsdev.axis-dev.io
azureDnsZoneResourceGroupName: azure-dns-rg
imageShortName: api-backend
mysqlCreateDbName: database
pathToContext: todo-app/backend
referAppName: azure-shared-infra
referDeploymentName: application-3-tier-env
referDeploymentStateName: app
port: "3000"
SAVE
ボタンを押下し、ダイアログを閉じます。Pipeline Stages で
refer
カードを選択し、画面下部のパラメータ一覧が、すべて青色になっていることを確認します。Pipeline Stages で
build
カードを選択し、画面下部のパラメータ一覧が、すべて青色になっていることを確認します。Pipeline Stages で
deploy
カードを選択し、画面下部のパラメータ一覧が、すべて青色になっていることを確認します。
5-10. AssemblyLineの実行(azure-api-backend)
azure-api-backend
の AssemblyLine を実行し、リソースを Azure にデプロイします。
手順2-2でコピーした Git コミットのハッシュ値を確認します。
画面上部の Input Parameters に以下を入力し、
RUN
ボタンを押下して AssemblyLine を実行します。- gitRevision: Gitコミットのハッシュ値
5-11. AssemblyLineの実行結果の確認(azure-api-backend)
AssemblyLine を実行すると、自動的に AssemblyLine の進捗画面に遷移します。
1. ステータスの確認
- Pipelines (Stages) に、各 Pipeline のステータスが表示されます。
- 表示されている
refer
build
deploy
カードを選択することで、それぞれの Pipeline の中で実行される Task のステータスを確認できます。 - すべての Task および Pipeline のステータスが完了になると、AssemblyLine の実行が完了します。
TIP
AssemblyLine の実行には10分程度かかりますが、リアルタイムで状況が反映されます。実行が完了するまでお待ちください。
以上で AssemblyLine の実行は完了です。
5-12. デプロイされたサンプルアプリケーションの実行確認
Kubernetes にアクセスして、デプロイされたアプリケーションが実行されているかを確認します。 以下の URL にアクセスし、アプリケーションの実行確認を行ってください。
https://{新たに作成したAレコード名}.{作成した子DNSゾーンのFQDN}
例: https://api.2nd-tutorial.azure.vsdev.axis-dev.io
以下のように WEB ブラウザ上に API のレスポンスが表示されれば、デプロイに成功しています。
以上で、Qmonus Value Stream が提供する構成を選択して API Backend をデプロイするまでの一連の手順を体験いただきました。
次のチュートリアルでは、ここまで使用してきた構成を編集して、追加で要件を選択することで、既存の構成を拡張することを体験できます。 本チュートリアルの実施後にぜひトライしてみてください。 API Backendの拡張
ここでチュートリアルを終了する場合は、リソースの削除手順がありますのでそちらを参考にリソースを削除してください。 リソースの削除