IBM Cloud Docs
CIツールチェーンのセットアップ

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

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

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

開始前に

  1. 前提条件の設定 チュートリアルを完了します。
  2. IBM CloudでDevSecOpsを始める のビデオを見る。

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

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

  1. IBM Cloudコンソールで、メニュー メニュー・アイコン をクリックし、DevOps を選択します。
  2. ツールチェイン・ページから、ツールチェインを作成をクリックします。
  3. CI - DevSecOpsプラクティスでセキュアなアプリを開発するタイルをクリックします。

CIツールチェーンの設定

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

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

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

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

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

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

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

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

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

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

アプリケーション

  1. ソースプロバイダGit Repos and Issue Tracking として選択します。
  2. ツールチェーンのデフォルトの動作は、デフォルトのサンプル・アプリケーションを使用するです。 ツールチェーンは現在、既存のGit Repos and Issue Trackingリポジトリへのリンクのみをサポートしています。 Bring your own application の詳細については、Bring your own app to DevSecOps を参照してください。
  3. 新しいリポジトリ名にユニークな名前を入力します。
  4. 「続行」 をクリックします。

インベントリー

インベントリー・リポジトリーは、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コンソールで、メニュー メニュー・アイコン をクリックし、DevOps を選択します。
  2. ツールチェイン・ページから、ツールチェインを作成をクリックします。
  3. ツールチェインをクリックすると、以下のアーチファクトのような出力が表示されます。

DevSecOps CIツールチェーン
図1. DevSecOpsCIツールチェーン

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

    DevSecOps PRパイプラインの成功
    図2. DevSecOps PRパイプライン成功

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

CI パイプラインの実行

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

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

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

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

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

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

    DevSecOps CIパイプラインの成功
    図3. DevSecOpsのCIパイプライン

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

    DevSecOps CI Evidence
    図4. DevSecOpsのCIエビデンス

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

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

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

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

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

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

次のステップ

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