Skip to content

5. CI/CDパイプラインの実行

Qmonus Value Stream に登録した CI/CD パイプラインを実行し、API Backend をデプロイします。

5-1. AssemblyLineの確認(azure-shared-infra)

azure-shared-infra の AssemblyLine を確認して、登録された CI/CD パイプラインの内容を確認してみましょう。

AssemblyLineの詳細画面

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 を実行するためのパラメータを設定するために利用できます。

  1. AssemblyLine の Pipeline Stages で deploy を選択します。

  2. 画面下部のパラメータ一覧で、赤色となっている箇所が空欄かを確認します。空欄の場合は続けて Deployment Config を編集し、パラメータを設定する必要があります。

    Deployment Configの登録(azure-shared-infra)手順

  3. EDIT DEPLOYMENT CONFIG ボタンを押下し、表示される Edit Deployment Config ダイアログで、設定が必要なパラメータを入力します。

    今回設定する必要のあるパラメータは、以下の通りです。

    パラメータ説明
    azureDnsZoneResourceGroupName事前準備で作成したDNSゾーンが所属するリソースグループ名(例: azure-dns-rg)
    dnsZoneName事前準備で作成したDNSゾーン名(例: 2nd-tutorial.azure.vsdev.axis-dev.io)
    keyVaultAccessAllowedObjectIdsAzure Key Vault のシークレットへのアクセスを許可したいオブジェクト ID のリスト
    本チュートリアルでは、ユーザー (オブジェクト ID) を検索するや下記のオブジェクトIDの取得方法を参考に、自分の Azure アカウントのオブジェクト ID を指定してください(例: xxxxx-xxxx-xxxxx-xxxx-xxxxxx)

オブジェクトIDの取得方法

自分の Azure アカウントのオブジェクト ID は、以下の手順で取得してください。

  1. Azure portalにログインし、検索欄に Microsoft Entra ID を検索して選択します。
  2. 左のメニュー一覧よりユーザを選択します。
  3. 検索欄に自分の ID を入力して検索をし、表示されたらユーザをクリックします。

Deployment Configの登録(azure-shared-infra)手順

  1. ユーザの詳細画面をクリックすると オブジェクトID が表示されるのでコピーしてパラメータに入力します。

Deployment Configの登録(azure-shared-infra)手順

以下のようにパラメータを入力します。入力内容は適宜読み替えてください。

yaml
azureDnsZoneResourceGroupName: azure-dns-rg
dnsZoneName: 2nd-tutorial.azure.vsdev.axis-dev.io
keyVaultAccessAllowedObjectIds: xxxxx-xxxx-xxxxx-xxxx-xxxxxx

Deployment Configの登録(azure-shared-infra)手順

  1. SAVE ボタンを押下し、ダイアログを閉じます。

  2. Pipeline Stages deploy の画面下部のパラメータ一覧が、すべて青色になっていることを確認します。

    Deployment Configの登録(azure-shared-infra)手順

5-3. AssemblyLineの実行(azure-shared-infra)

azure-shared-infra の AssemblyLine を実行し、リソースを Azure にデプロイします。

  1. 手順2-2でコピーした Git コミットのハッシュ値を確認します。

  2. 画面上部の Input Parameters に以下を入力し、RUN ボタンを押下して AssemblyLine を実行します。

    • gitRevision: Gitコミットのハッシュ値

5-4. AssemblyLineの実行結果の確認(azure-shared-infra)

AssemblyLine を実行すると、自動的に AssemblyLine の進捗画面に遷移します。この画面で、AssemblyLine のステータス、ログ、イベントといった AssemblyLine の進捗を確認できます。

1. ステータスの確認

  • Pipelines (Stages) に、各 Pipeline のステータスが表示されます。
  • 表示されている deploy カードを選択することで、deploy Pipeline の中で実行される Task のステータスを確認できます。

AssemblyLineの実行結果の確認(azure-shared-infra)手順

  • すべての Task および Pipeline のステータスが完了になると、AssemblyLine の実行が完了します。

AssemblyLineの実行結果の確認(azure-shared-infra)手順

TIP

AssemblyLine の実行には10分程度かかりますが、リアルタイムで状況が反映されます。実行が完了するまでお待ちください。

2. ログの確認

  • ページ下部の Timeline に、各 Pipeline および Task の詳細が表示されます。
  • Task 名を選択すると、Task の中で実行済みおよび実行中の Step が表示されます。
  • Step 名を選択すると、Step の中で実行された処理のログを確認できます。

AssemblyLineの実行結果の確認(azure-shared-infra)手順

3. イベントの確認

  • 画面右上の EVENTS ボタン、もしくは Pipeline および Task カード上の虫眼鏡マーク🔎 から、Pipeline および Task のイベントのログを確認できます。AssemblyLine の実行に失敗した場合などは、原因を分析するためにこちらのログを参照してください。

5-5. 作成されたAzureリソースの確認

Task および Pipeline のステータスがすべて完了となり、AssemblyLine の実行が完了したら、Azure にリソースが作成されたかを確認します。

Azure portalにログイン後に、Provisioning Target 設定時に入力したリソースグループに移動し、リソースを表示します。 リソース一覧を確認し、以下の種類のリソースが生成されていればデプロイは完了です。

作成されたAzureリソースの確認
手順

リソース一覧
* 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 を作成します。

  1. Azure portalにログイン後に、Provisioning Target 設定時に入力したサブスクリプションに移動し、リソースを表示します。

  2. リソース一覧から Kubernetesサービス をクリックします。

  3. Kubernetesサービス の画面に移動したら、本チュートリアルで作成した Kubernetesサービス を選択し、左のメニュー一覧より 名前空間 を選択します。

  4. 画面上部の + 作成 ボタンをクリックし、名前空間 を選択します。

    AKSへのKubernetes Namespaceの作成手順

  5. 入力画面が表示されたら名前の入力欄に 2nd-tutorial と入力し、OK ボタンをクリックして Namespace を作成します。

    AKSへのKubernetes Namespaceの作成手順

  6. 一覧に 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 を取得するのに必要な操作をします。

  1. Azure portal にログイン後に、Provisioning Target 設定時に入力したリソースグループに移動し、リソースを表示します。

    kubeconfigの再設定手順

  2. リソース一覧からキーコンテナーを選択します。

  3. 左メニュー一覧からシークレットを選択します。

    kubeconfigの再設定手順

  4. シークレットをクリックするとシークレット情報一覧が表示されるので、一覧の中から kubeconfig を選択します。

  5. バージョン一覧が表示されるので、現在のバージョンを選択します。

  6. シークレット情報の画面に移動したら、画面下部の シークレット値を表示する ボタンをクリックします。

    kubeconfigの再設定手順

  7. kubeconfigが表示されるので、内容をコピーしておきます。

    kubeconfigの再設定手順

kubeconfig を取得できたので、この kubeconfig を Qmonus Value Stream に再設定します。 再設定は以下の手順で行います。

  1. 左のメニューから Application を選択します。

    kubeconfigの再設定手順

  2. Application の一覧画面で azure-api-backend を選択します。

  3. 選択すると Deployments の一覧に application-3-tier-env が表示されるのでクリックします。

  4. Deployment 詳細画面に移動したら、画面右上の EDIT ボタンをクリックします。

  5. Deployment 編集画面に移動したら、画面下の kubeconfig の入力欄に、コピーした kubeconfig を入力します。

  6. 最後に画面右下の SAVE をクリックして設定を保存します。

以上で kubeconfig の再設定は完了です。

5-8. AssemblyLineの確認(azure-api-backend)

Qmonus Value Stream からリソースをデプロイできる準備が整ったので、azure-api-backend の AssemblyLine を確認して、登録された CI/CD パイプラインの内容を確認してみましょう。

  1. 左メニューから AssemblyLine を選択します。

    AssemblyLineの確認(azure-api-backend)手順

  2. AssemblyLine 一覧画面に移動したら、一覧より api-backend の AssemblyLine を選択します。

  3. AssemblyLine が表示されたら、DETAIL ボタンをクリックして AssemblyLine 詳細画面へ移動します。

AssemblyLineの確認(azure-api-backend)手順

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 の実行が完了することになります。

AssemblyLineの確認(azure-api-backend)手順

5-9. Deployment Configの登録(azure-api-backend)

azure-api-backend の AssemblyLine を実行するために Deployment Config を登録します。 手順は、先に行った azure-shared-infra の Deployment Config の登録と同様です。

  1. AssemblyLine の Pipeline Stages で refer カードを選択します。

  2. 画面下部のパラメータ一覧で、赤色となっている箇所が空欄かを確認します。これらの赤くなっている空欄の箇所のパラメータを Deployment Config で設定します。

    Deployment Configの登録(azure-api-backend)手順

  3. 同様に、Pipeline Stages で build カードを選択し、画面下部のパラメータ一覧で、赤色となっている箇所が空欄かを確認します。

  4. 同様に、Pipeline Stages で deploy カードを選択し、画面下部のパラメータ一覧で、赤色となっている箇所が空欄かを確認します。

  5. 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 を指定してください
    referAppNameazure-shared-infra の AssemblyLine で指定していた Application 名
    referDeploymentNameazure-shared-infra の AssemblyLine で指定していた Deployment 名
    referDeploymentStateNameQmonus Value Streamが管理しているリソース状態を表すファイル名
    本チュートリアルでは app を指定してください
    portAPI 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"

Deployment Configの登録(azure-api-backend)手順

  1. SAVE ボタンを押下し、ダイアログを閉じます。

  2. Pipeline Stages で refer カードを選択し、画面下部のパラメータ一覧が、すべて青色になっていることを確認します。

  3. Pipeline Stages で build カードを選択し、画面下部のパラメータ一覧が、すべて青色になっていることを確認します。

  4. Pipeline Stages で deploy カードを選択し、画面下部のパラメータ一覧が、すべて青色になっていることを確認します。

5-10. AssemblyLineの実行(azure-api-backend)

azure-api-backend の AssemblyLine を実行し、リソースを Azure にデプロイします。

  1. 手順2-2でコピーした Git コミットのハッシュ値を確認します。

  2. 画面上部の 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 の実行が完了します。

AssemblyLineの実行結果の確認(azure-api-backend)手順

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の拡張

ここでチュートリアルを終了する場合は、リソースの削除手順がありますのでそちらを参考にリソースを削除してください。 リソースの削除