パート2:CIツールチェーンのセットアップ

このチュートリアルでは、継続的インテグレーション(CI)のためのツールチェーンテンプレートの使い方を説明します。 テンプレートは、インベントリ統合、 Git Repos and Issue Tracking による変更管理、証拠収集、 IBM Cloud Kubernetes Service へのデプロイメントを伴う継続的デプロイメント(CD)用にあらかじめ構成されています。

コンプライアンスや社内基準を満たすために、企業内のアカウントのIAM設定をカスタマイズし、一元管理することができます。

開始前に

  1. 前提条件の設定 チュートリアルを完了します。
  2. 次のビデオをご覧ください:

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

Continuous Deliveryサービスは、ツールチェーンのセットアップをガイドし、論理的な順序でプロセスを作成するテンプレートを提供します。 進行標識に、構成を実行するための各手順が示されます。 CIツールチェーンのテンプレートにアクセスするための手順に従ってください。

  1. IBM Cloudコンソールで、メニューアイコン Menu icon>Platform Automation>Toolchains をクリックします。
  2. ツールチェーン」ページで「 ツールチェーンの作成 」をクリックします。
  3. CI - DevSecOpsプラクティスでセキュアなアプリを開発するタイルをクリックします。

CIツールチェーンの設定

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

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

  2. IBM Cloudに、同じリージョンとリソースグループのツールチェーン内で一意のツールチェーン名を入力します。

  3. リージョンを選択します

  4. 「リソース・グループ」 を選択します。

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

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

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

CIツールの統合を設定する

デフォルトの設定を確認し、CIツールとの統合を設定するために必要なユーザー定義の設定を行う。

アプリケーション

  1. ソースプロバイダGit Repos and Issue Tracking として選択します。
  2. ツールチェーンのデフォルトの動作は、デフォルトのサンプル・アプリケーションを使用するです。 ツールチェーンは現在、既存の Git Repos and Issue Tracking リポジトリへのリンクのみをサポートしている。 独自のアプリケーション/サービス・ソースコード・リポジトリを使用する場合は、以下を参照してください:
  1. 新しいリポジトリ名にユニークな名前を入力します。
  2. 「続行」 をクリックします。

インベントリー

インベントリー・リポジトリーは、CI ツールチェーンでビルドされた成果物の詳細を記録するものです。

  1. テンプレートで提供されるデフォルトの設定を受け入れるか、または要件に応じて設定を編集することができます。
  2. 「続行」 をクリックします。

問題

問題リポジトリーには、CI パイプラインの実行中に検出された問題が記録されます。

  1. テンプレートで提供されるデフォルトの設定を受け入れるか、または要件に応じて設定を編集することができます。
  2. 続けるをクリック

秘密

トグルを使用して、ツールチェーンに追加する秘密の保管庫統合を指定します。 詳細は IBM Cloudの秘密の管理 を参照。

CI ツールチェーンでは、 任意のシークレットIAM 資格情報 のシークレット・タイプのみがサポートされます。

  1. このチュートリアルでは、シークレットのボールトとして IBM Cloud® Secrets Manager を使用します。 「リージョン」「リソース・グループ」、および 「サービス名」 の各フィールドには、選択可能な項目に基づいて自動的にデータが取り込まれます。 ドロップダウンインジケータを選択すると、他の選択肢が表示されます。
  2. Secrets Manager インスタンス名を入力します。
  3. 認証タイプを選択します。
  4. 「続行」 をクリックします。

エビデンス・ストレージ

エビデンスロッカーは、 DevSecOps CIパイプラインによって生成されるすべてのエビデンスと成果物を保管する。

  1. IBM Cloud Object Storageバケットスライダを切り替えて、次のページで設定できるIBM Cloud Object Storageバケットにすべての証拠を保存します。
  2. デフォルト設定を受け入れる。
  3. 「続行」 をクリックします。

クラウド Object Storage バケット

コンプライアンス証拠保管庫として機能させるには、 IBM Cloud® Object Storage インスタンスCloud Object Storage バケット が必要です。

  1. Cloud Object Storageインスタンスバケット名CloudObject Storageエンドポイントフィールドは自動的に入力されます。
  2. サービスID APIキーを入力します。
    • 推奨: 鍵アイコンをクリックすることにより、シークレット・ボールトから既存の鍵をインポートできます。
    • 既存のキーをコピー&ペーストすることもできる。
  3. 「続行」 をクリックします。

エンドポイント・フィールドは任意である。 ツールチェーンのセットアップ中またはパイプラインの実行中に、エンドポイントを選択または指定することをお勧めします。

デプロイ

アプリケーションをデプロイするターゲットの Kubernetes クラスターを構成します。

  1. デフォルトのアプリ名 hello-compliance-app を使用してください。

  2. IBM Cloud API Keyを入力してください。 APIキーは、いくつかのタスクで IBM Cloud CLIツールと対話するために使用されます。

    • 推奨: 鍵アイコンをクリックすることにより、シークレット・ボールトから既存の鍵をインポートできます。
    • 既存のキーをコピー&ペーストすることもできる。
    • 新しいキーは、ここで「 New +」をクリックして作成できます。

    新しく生成された API キーは、すぐにシークレット・ボールトに保存できます。

  3. APIキーが有効で十分なアクセス権がある場合、Container Registry, Container Registry 名前空間, デブ・クラスター地域, リソースグループ, クラスタ名, クラスタ名前空間 が自動的に入力されます。 これらのフィールドは、あなたの設定に合わせて変更することができます。

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

成果物の署名

ツールチェーンによって構築され、インベントリに記録された成果物は、本番環境にデプロイされる前に署名されなければならない。

  1. GnuPG秘密鍵を入力する。 あるいは、NEW をクリックして新しいGPGキーを作成することもできます。 詳しくは、GPGキーを生成する を参照してください。
  2. 「続行」 をクリックします。

DevOps Insights

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

  1. デフォルトの設定を受け入れる。
  2. 「続行」 をクリックします。

SonarQube

ツールチェーンの静的コード解析ツールとして SonarQube を設定します。 SonarQube は、ソース・コードの全体的な正常性と品質の概要を提供し、新しいコード内で見つかった問題を強調表示します。 静的コード・アナライザーは、ヌル・ポインタの非参照、ロジック・エラー、複数のプログラミング言語のリソース・リークなど、厄介なバグを検出する。

  1. デフォルト設定を受け入れる。
  2. 「続行」 をクリックします。

オプションのツール

Slack

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

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

CI ツールチェーンの作成

  1. 「要約」ページで、**「ツールチェーンの作成」**をクリックします。
  2. ツールチェーンの作成を待つ。 これには、数分かかることがあります。

CI ツールチェーンの探索

CIツールチェーンには ci-pr-pipeline (PR)ci-pipeline (CI) が含まれている。 これらのパイプラインは、アプリケーションリポジトリで新しいマージ要求が提出されたり、masterにマージされたりしたときにトリガーされます。

手順に従い、ツールチェーンにアクセスしてください:

  1. IBM Cloudコンソールで、メニューアイコン Menu icon>Platform Automation>Toolchains をクリックします。
  2. ツールチェーン」ページで「 ツールチェーンの作成 」をクリックします。
  3. ツールチェインをクリックすると、以下のアーチファクトのような出力が表示されます。

DevSecOpsCIツールチェーン
DevSecOps CIツールチェーン

CI-PR パイプラインの実行

ci-pr pipeline を開始するには、アプリケーション・リポジトリにマージ・リクエストを作成する必要があります。

  1. CI toolchainのページから、ci-pr pipeline タイルをクリックします。 デフォルトでは、compliance-app-<timestamp> という名前で作成されます。

  2. masterブランチからブランチを作成する。

  3. アプリケーションのコードを更新するか、readmeファイルを追加し、変更を保存する。

  4. マージリクエストを送信をクリックします。

  5. CI toolchainページで、 pr-pipeline タイルをクリックする。 ci-pr pipeline がマージリクエストの作成によってトリガーされることを確認してください。

  6. ci-pr pipeline の実行が完了するまで待つ。 アプリケーションリポジトリにある対応するマージリクエストは、PRパイプラインのすべてのステージが正常に終了するまで、Pending の状態にあります。

  7. PRパイプラインの実行が成功したら、パイプラインをクリックして、完了した多数のステップを確認し、ページを表示します。

    DevSecOpsPRパイプラインの成功
    DevSecOps PRパイプラインの成功

  8. Merge request にアクセスし、変更をアプリケーションリポジトリの master ブランチにコピーするようにリクエストをマージします。

CI パイプラインの実行

以下のいずれかの方法で CI パイプラインを開始します。

  • 自動: PR パイプラインが正常に実行された後に、その PR を承認してマスター・ブランチにマージします。
  • 手動で:CI パイプラインを手動でトリガーするには、 Delivery Pipeline カードを選択し、 パイプラインの実行をクリックし、 手動トリガーを選択します。

このチュートリアルでは、コードの変更をアプリケーションリポジトリのmasterブランチにマージした後にCIパイプラインが起動しました。

  1. CI toolchain ページで、 ci-pipeline タイルをクリックする。

  2. パイプライン名に対して実行をクリックします。 パイプラインの実行を観察する。 パイプラインの実行が完了するのを待つ。

  3. CIパイプラインの実行が成功したら、パイプラインをクリックして完了したステップを探索し、画面キャプチャのようなページを表示する。

    DevSecOpsCIパイプライン成功
    DevSecOps CIパイプライン

  4. 画面キャプチャに示すように、DevOps Insights タイルをクリックして、Quality Dashboard ページで収集されたエビデンスを確認します。

    DevSecOpsCIエビデンス
    DevSecOps CIエビデンス

    また、セットアップ中に IBM Cloud Object Storage バケットが有効化されている場合、証拠を確認することもできます。 パイプラインの実行に失敗があるかどうかを評価するには、パイプラインの最終ステップをチェックする必要があります。

実行中のアプリケーションの表示

CI パイプラインが正常に実行されると、サンプル・アプリケーションが Kubernetes クラスターにデプロイされます。

アプリケーション URL は、CIパイプライン実行の deploy-dev タスクの run stage ステップのログの最後にあります。 この URL、アプリケーションが動作していることを確認する。

パイプラインのカスタマイズ

リファレンス継続的インテグレーションおよび継続的デプロイメントツールチェーンで提供される様々なパイプラインは、Tekton Pipelinesの Continuous Delivery サポートに基づいています。 パイプラインのカスタマイズについての詳細は、ユーザーがパイプラインをカスタマイズするには?

次のステップ

あなたは、DevSecOps CI ツールチェーンを作成し、ci-pr pipelineci-pipeline を実行してビルド、テスト、および開発環境への変更をデプロイすることに成功しました。 これで、CDツールチェインのセットアップ に進む準備ができました。