パート3:CDツールチェインのセットアップ

このチュートリアルでは、継続的デプロイメント(CD)にツールチェーンテンプレートを使用することができます。 テンプレートはあらかじめ設定されています。 チュートリアルを完了するために、あなたの設定を検証し、提供することができます。

開始前に

  1. 前提条件の設定 を完了します。
  2. 完了 CIツールチェーンのセットアップ.
  3. 次のビデオをご覧ください:

  1. DevSecOps のプラクティスを参照して、安全な CD アプリケーションをデプロイしてください

CD ツールチェーンのセットアップの開始

Continuous Deliveryサービスは、CDツールチェインのセットアップをガイドするテンプレートを提供します。 CDツールチェインのテンプレートにアクセスするには、以下の手順に従ってください。

  1. IBM Cloudコンソール から、メニューアイコン Menu icon>Platform Automation>Toolchains をクリックします。
  2. 「ツールチェーン」ページで、**「ツールチェーンの作成」**をクリックします。
  3. CD - Deploy secure app with DevSecOps practices タイルをクリックしてテンプレートを表示します。

ツールチェーンの設定

ようこそのページには、ドキュメントや関連資料へのポインタとともに、ツールチェーンの目的が要約されています。

  1. **「Start」**をクリックします。

  2. 一意のツールチェーン名を入力します。 ツールチェーン領域は、クラスタ領域や Container Registry 領域とは異なる場合があることに注意

  3. 地域を選択リソースグループを選択が表示されます。 注意地域を編集することができます。

  4. オプションで、ドロップダウンから関連する継続的インテグレーション(CI)ツールチェーンを選択できます。 これは、CDツールチェインのセットアップを助けるために、CI設定の一部をコピーするものである。 注意これは、すでに入力した値のいくつかを上書きするかもしれません。

  5. 「続行」 をクリックします。

    現在の手順の構成が完了し、有効である場合にのみ、次の手順に進むことができます。 ガイド付きインストーラの前のステップを表示するには、いつでも「 戻る 」をクリックできます。 一連の手順で入力した構成値はすべてツールチェーン・インストーラーに保存されています。

    いくつかのステップには、詳細設定に切り替えるトグルボタンがあります。 これらの手順は、デフォルトでは最小限のコンフィギュレーションを提示する。 しかし、より細かなコントロールが必要な上級ユーザーは、 Switch to advanced configuration toggleをクリックすることで、基礎となる統合のオプションを表示することができます。

ツール統合のセットアップ

ステップですでに既存のCIツールチェーンにリンクしている場合、ツールチェーン名、リージョン、リポジトリ、その他のフィールドがあらかじめ入力されています。 リポジトリー URL を確認して、次のステップに進みます。

インベントリー

  1. CIツールチェーンで設定したインベントリリポジトリの URL を選択します。
  2. 「続行」 をクリックします。

問題

  1. CDパイプラインが実行されている間に問題を記録するには、 リポジトリ URL を選択します。 CIツールチェーン中に作成された既存のissueリポジトリを使用することに注意してください
  2. 「続行」 をクリックします。

パイプライン構成

パイプライン設定リポジトリには、デプロイ、テスト、その他のカスタムタスクに必要な YAML ファイルとスクリプトが含まれています。

  1. ソース・プロバイダのデフォルト設定を受け入れる。

    構成リポジトリーがない場合は、 「拡張構成」 トグルを有効にして、 「リポジトリーの複製」 タイプを選択します。 ツールチェーンは、 Git 組織内の サンプル構成 をクローンします。 Git リポジトリの詳細については、 Git Repos and Issue Tracking の設定を 参照してください。 カスタマイズ可能なスクリプトの詳細については、カスタムスクリプト を参照してください。

  2. ユニークな新しいリポジトリ名を入力します。

  3. 「続行」 をクリックします。

秘密

  1. このチュートリアルでは、秘密の保管庫として IBM Cloud® Secrets Manager を使用します。 地域リソースグループ、およびサービス名フィールドは、利用可能な選択肢に基づいて自動的に入力されます。 ドロップダウンインジケータをクリックすると、他の選択肢が表示されます。
  2. Secrets Manager インスタンス名を入力します。
  3. ドロップダウンリストから認証タイプを選択します。
  4. 「続行」 をクリックします。

エビデンス・ストレージ

  1. 既存の証拠品ロッカーリポジトリを使用するを選択します。
  2. 継続的インテグレーション(CI)ツールチェーンを設定した際に作成されたリポジトリ URL を選択します。 証拠保管の詳細については、証拠 を参照してください。
  3. IBM Cloud Object Storageバケットスライダを切り替えて、IBM Cloud Object Storageバケットに全ての証拠を格納する。
  4. 「続行」 をクリックします。

クラウド Object Storage バケット

  1. 自動的に入力された IBM Cloud Object Storage の詳細を確認し、受け入れます。 コンプライアンス・エビデンス・ロッカーとして機能するバケツの設定については、証拠を保存するためのObject Storageの設定 を参照してください。
  2. IBM Cloud Object Storageインスタンスに書き込むサービスAPIキーを指定してください。
  3. 「続行」 をクリックします。

アーティファクト・サイン

  1. 必要に応じて、コード署名証明書を入力し、アーティファクトの署名の有効性を検証します。 たとえば、Docker アーティファクトは、本番環境にデプロイされる前に CI パイプラインによってビルドされ、署名されます。
  2. 「続行」 をクリックします。

デプロイメント・ターゲット

  1. Single cluster (push based deployment) を使用して仮想サーバー インスタンスなどのターゲットにアプリケーションをデプロイしたり、デプロイ プロセスをカスタマイズしたりするには、Custom オプションを使用します。
  2. 続行をクリックしてクラスタページを表示します。
  3. IBM CloudAPIキー・フィールドを入力して、いくつかのタスクでCLIツールと対話します。 注意既存の鍵は、鍵アイコンをクリックすることで、秘密金庫からインポートすることができます。
  4. Verify your クラスター地域, リソースグループ, クラスタ名, and クラスタ名前空間 fields where your target cluster is created.
  5. 「続行」 をクリックします。

変更要求管理

  1. 変更要求管理の入力値を受け入れる。 詳しくは、 変更管理の自動化 を参照してください。
  2. ユニークな新しいリポジトリ名を入力します。
  3. 対象環境の目的Production とする。
  4. ターゲット環境の詳細を設定します。
  5. 「続行」 をクリックします。

DevOps Insightsツールチェーン

既存の DevOps Insights インスタンスを別のツールチェーンからこのパイプラインにリンクして、CI および CD ツールチェーンパイプラインからのすべてのビルド、デプロイ、およびテストレコードを同じ場所に集めることができるようにします。

CD ツールチェーンは、既存の DevOps Insights インスタンスにデプロイメントレコードをパブリッシュできます。 この機能を有効にするには、既存のDevOps Insightsインスタンスを含むツールチェーンのIDを、DevOps InsightsツールチェーンIDリストで選択して指定します。

IBM Cloud DevOps Insights はツールチェーンに含まれている。 すべてのデプロイメントと環境から、すべてのビルドのパイプラインテスト結果を表示します。

  1. DevOps Insights IBM Cloud API Key を入力します。
  2. デフォルトの設定を受け入れる。
  3. 「続行」 をクリックします。

オプションのツール

Slack

Slack に、プルリクエストやCIパイプラインのイベントに関する通知を受け取るように設定します。 ツールチェーン作成後にSlackツールを追加することもできる。

  1. Slackのウェブフックを入力してください。 詳しくは Slackウェブフック をご覧ください。
  2. メッセージを投稿するには、スラックチャンネルを入力してください。
  3. スラックチーム名を入力します。 例えば、チーム名 URL が https://team.slack.com の場合、チーム名は team となります。
  4. 通知を受け取りたいイベントの自動Slack通知を選択します。
  5. 「続行」 をクリックします。

オプションで、slack-notifications 環境プロパティを使って、CDパイプラインで 0 = off, and 1 = on 通知を送るかどうかを切り替えることができます。

CD ツールチェーンの作成

個々のツールチェーン統合は、パイプライン作成後に設定できる。

  1. Summaryページで Create toolchainをクリックし、ツールチェーンが作成されるのを待つ。

DevSecOpsCDツールチェーンが作成された
DevSecOps CDツールチェーンが作成された

CD ツールチェーンの探索

  1. CDツールチェインが作成されたので、cd-pipeline タイルをクリックして、プロモーションパイプラインを開き、実行します。

プロモーション・パイプラインの実行

プロモーションパイプラインを実行する前に、 CIパイプラインが 正常に実行されたことを確認してください。

  1. cd-pipeline をクリックします。

  2. 手動プロモーション・トリガーパイプラインの実行をクリックします。

  3. 実行をクリックしてパイプラインを起動します。

  4. Manual Promotion Trigger > #1promotion-pipelinerun パイプラインをクリックします。 プロモーションパイプラインの実行が完了するのを待ち、実行ログを確認します。

    プロモーションパイプラインは、 stagingproduction などのインベントリターゲット環境ブランチをターゲットとした、 master ブランチなどのインベントリソース環境上のインベントリの内容でプルリクエストを作成します。

  5. プロモーションパイプラインが正常に終了すると、 promote のタスクログに、インベントリリポジトリのプルリクエストへのリンクが表示されます。 プルリクエスト名は、例えば promote master to prod のように、promote <inventory source environment> to <inventory target environment> という形式です

  6. ログに記載されているリンクから、ブラウザでプルリクエストを開いてください。 以下のセクションに詳細を記入してください:

    • 優先度: (必須) CriticalHighModerateLowPlanning のいずれかに設定。
    • 変更リクエストの譲受人: (必須) Email-ID 譲受人の名前。
    • 追加説明 :アプリケーションの変更に関する説明。
    • 目的/目標 :アプリケーションに加えられる変更の目的。
    • 影響の説明 :アプリケーションの動作や環境への変更の影響。
    • バックアウトプラン: 配備に失敗した場合のバックアウトの手順。
  7. Pull Requestのフィールドに記入し、 保存します。

  8. CIでのコンプライアンス・チェックが失敗し、配備を続ける したい場合は、プル・リクエストに EMERGENCY ラベルを追加する

  9. Git Repos and Issue Trackingからのプル要求をマージします。

プルリクエストの詳細は、変更リクエストリポジトリの作成と更新のために実行されるCDパイプラインで使用されます。

CD パイプラインの実行

CDパイプラインは手動または自動でトリガーできる。 CDパイプラインはいつでも手動で起動できますが、前回成功したデプロイメントから変更がない場合、CDパイプラインはデプロイするものがないとして早期に停止します。 force-redeploy 変数 を追加して使用し、コードを変更せずに CD を再実行することができます。 DevSecOps CD パイプラインの成功した画面キャプチャを表示します。

DevSecOpsCDパイプライン成功
DevSecOps CDパイプライン成功

本番用ネームスペースで実行されているサンプル・アプリをご覧ください。 アプリ URL は、CDパイプライン実行の prod deployment ステップの run stage サブステップのログの下にあります。 その URL、アプリが起動していることを確認する。

次のステップ

DevSecOps CD ツールチェインの作成に成功し、cd-pipeline を実行して本番環境で手動でトリガーしました。

さて、CCツールチェインのセットアップ の続きです。