パート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. 「続行」 をクリックします。

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

    いくつかのステップには、詳細設定に切り替えるトグルボタンがあります。 これらの手順では、デフォルトで最低限の設定が表示されます。 ただし、よりきめ細かな設定が必要な上級ユーザーは、「 詳細設定に切り替える 」トグルをクリックすることで、基盤となる連携機能のオプションを表示することができます。

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

ステップですでに既存の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. 「続行」 をクリックします。

オプションのツール

Slack

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

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

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

CD ツールチェーンの作成

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

  1. [概要] ページで [ツールチェーンの作成 ] をクリックし、ツールチェーンが作成されるまで待ちます。

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

CD ツールチェーンの探索

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

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

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

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

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

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

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

    プロモーションパイプラインは、 master などのインベントリソース環境にあるインベントリの内容を、 staging や production などのインベントリターゲット環境のブランチを宛先として、プルリクエストを作成します。

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

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

    • 優先度: (必須) Critical、High、Moderate、Low、Planning のいずれかに設定。
    • 変更依頼の担当者 :(必須)担当者の Email-ID。
    • 追加説明 :アプリケーションの変更点に関する説明。
    • 目的/目標 :アプリケーションに加えられる変更の目的。
    • 影響の説明 :アプリケーションの動作または環境に対する変更による影響。
    • バックアウトプラン: 配備に失敗した場合のバックアウトの手順。
  7. プルリクエストの各項目を入力し、 保存してください。

  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ツールチェインのセットアップ の続きです。