IBM Cloud Docs
ツールチェーンに関するトラブルシューティング

ツールチェーンに関するトラブルシューティング

ツールチェーンの使用に関する一般的な問題には、ツール統合の設定やツールチェーンテンプレートの問題などが含まれる可能性があります。 多くの場合、いくつかの簡単なステップを実行することで、これらの問題から復旧することが可能です。

別のリージョンでプライベート・リポジトリーを使用するテンプレートからツールチェーンを作成できないのはなぜですか?

使用するツールチェーン・テンプレートは、プライベート Git Repos and Issue Tracking リポジトリーを参照します。

Git Repos and Issue Tracking はリージョン固有のものです。 テンプレートからツールチェーンを作成しようとしているときに、プライベート・リポジトリーの配置先ではないリージョンをターゲットとして指定した場合、Git 統合セットアップが失敗します。

特定のリージョンでツールチェーンに Git Repos and Issue Tracking リポジトリーを追加すると、IBM ID が、そのリージョン内の GitLab へのアクセスを可能にする GitLab ユーザー名にマップされます。 GitLab ユーザー名がどのリージョンでも同じに見えるとしても、リージョンごとに別個の GitLab がインストールされるため、リージョンごとに別個の GitLab ユーザーが関連付けられます。 GitLab ユーザー名が同じに見える場合でも、他のリージョンの GitLab ユーザーへのアクセス権限が、ツールチェーンに自動的に付与されることはありません。

Git Repos and Issue Tracking リポジトリーをパブリックに設定することで、他の IBM Cloud リージョンを含め、どの場所からもこのリポジトリーにアクセスできるようにします。

リポジトリーをプライベートに設定しておく必要がある場合は、そこにアクセスするための権限をリポジトリー所有者が付与することができます。これは、ソース・リポジトリーが配置されている GitLab サーバーで個人用アクセス・トークンを作成することによって行います。 プライベート・リポジトリーへのアクセスが必要になるのは、ツールチェーンの作成中にコンテンツを複製するときに限られます。 有効期限日付を指定して個人用アクセス・トークンを作成することによって、1 日後に期限切れになるように存続期間を制限することができます。

個人用アクセス・トークンを用意したら、他のリージョンからリポジトリーにアクセスするための URL を作成できます。 ツール統合の構成中に、**「ソース・リポジトリーの URL」**フィールドで、当該ユーザー名とアクセス・トークンを使用するようにリポジトリー URL を更新します。

https://user:XXXXXXX@us-south.git.cloud.ibm.com/group/node-hello-world

ユーザー GitLabuser 名は、 XXXXXXX アクセストークンは、 グループはリポジトリが保存されているグループ、 node-hello-world リポジトリ名はそれぞれ対応します。

GitLab リポジトリーが GitLab グループ内に配置されていない場合、group の値はユーザー名と同じになります。

ツールチェーン用にツール統合を構成しようとしましたが、構成されませんでした。

このセットアップ処理中にエラーが発生した場合、または、ツールチェーンとツールとの間の通信が正常に完了しない場合、構成が失敗します。

ツールチェーン用にツール統合を追加して構成した後、セットアップが失敗したことを示すエラー・メッセージが表示されます。

ツール統合を追加すると、ツールチェーンはそのツール統合によって表されるツールと通信して、必要なリソースのプロビジョンを行い、それらをツールチェーンと関連付けます。 このセットアップ処理中にエラーが発生した場合、または、ツールチェーンとツールとの間の通信が正常に完了しない場合、ツール統合はエラー状態になります。

次のようにして、ツール統合の構成を再試行できます。

  1. ツール・カードで Setup failed メッセージの上に移動し、**「再構成 (Reconfigure)」**をクリックします。

    再設定
    *ツール
    *の再設定

  2. 有効な構成パラメーターを使用していることを確認します。 無効な構成が原因でエラーが起こった場合、例えば The integration could not be set up. Check the settings and try again. Reason: Invalid api_key:fakeKey のようなエラー・メッセージが表示されます。 ツール統合の設定を更新し、**「統合の保存」**をクリックします。

  3. 通信の問題が原因でエラーが起こった場合、**「統合の保存」**をクリックして再試行します。

ibmcloud CLI を使用してツールチェーンを削除することができないのはなぜですか?

現時点で、ibmcloud resource CLI を使用してツールチェーンを削除することはできません。

ibmcloud resource service-instance-delete コマンドを使用してコマンド・ラインからツールチェーンを削除しようとすると、コマンドが失敗し、次のエラー・メッセージが表示されます。

Error Code: RC-ServiceBrokerErrorResponse Message: description : Toolchain delete must be performed from the toolchain dashboard

ツールチェーンは、Cloud プラットフォームにおける特別なリソース・タイプであり、現時点では ibmcloud resource CLI を使用して削除することはできません。

ツールチェーンを削除するには、以下のようにします。

  1. コンソール IBM Cloud から、 メニュー アイコン( ハンバーガーアイコン ) > プラットフォーム自動化 > ツールチェーンをクリックします。 「ツールチェーン」ページで、削除するツールチェーンをクリックします。
  2. 「アクション」 メニューをクリックし、**「削除」**を選択します。 ツールチェーンを削除すると、そのツールチェーンのツール統合がすべて削除されます。結果として、その統合で管理されていたリソースが削除される可能性があります。
  3. ツールチェーンの名前を入力し、**「削除」**をクリックして、削除を確認します。

IBM Cloud CLI Developer Tools (ibmcloud dev) コマンドを使用して、ツールチェーンを削除できます。 IBM Cloud CLI をインストール後、ibmcloud dev toolchain-delete コマンドを使用して、コマンド・ラインからツールチェーンを削除できます。

DevOps ダッシュボードに自分のツールチェーンが表示されないのはなぜですか?

DevOps ダッシュボードを開いても、ツールチェーンが表示されません。

適切なロケーションを選択しない限り、ご使用のツールチェーンはツールチェーンに表示されません。 DevOps Insights は、ダラス、フランクフルト、およびロンドンの 3 つのロケーションでのみ使用できます。

ツールチェーンのページで、場所をダラス、フランクフルト、またはロンドンに変更して、すべての DevOps Insights 統合ツールチェーンを表示します。

ルート鍵が無効になっているときにツールチェーンを作成できないのはなぜですか?

ツールチェーンを作成しようとすると、 The root key of the Key Management Service instance that was configured for the Continuous Delivery service in the selected resource group and region is disabled という通知が表示されます。

ツールチェーンを作成するときは、有効になっている暗号化のルート鍵を使用して保護する必要があります。

以下のいずれかの方法を使用して、暗号化のためにルート鍵を有効にします。

ルート・キーが無効になっているときに「ツールチェーン」ページで作成したサービス・インスタンスを表示できないのはなぜですか?

ツールチェーンを開くと、以下の通知が表示されます。 The root key of the key management service instance that was used to encrypt this toolchain is disabled.

ツールチェーンのサービス・インスタンスを表示するために必要な情報は、ツールチェーンを開くときに暗号化解除されるため、暗号化のルート鍵が有効になっていることを確認する必要があります。

以下のいずれかの方法を使用して、暗号化のためにルート鍵を有効にします。

Terraform または API を使用してツール統合を構成すると、 Could not find value for secret reference... エラーで構成が失敗するのはなぜですか?

ツール統合はシークレットへの参照を使用して構成されていますが、ツールチェーンは参照されているシークレットまたはシークレット・ストアを見つけることができません。

Terraform または API を使用してツール統合を作成または更新すると、構成が失敗し、 Could not find value for secret reference... エラー・メッセージが表示されます。

多くのツール統合には、シークレットとして分類される構成プロパティーが含まれています。 これらのプロパティーを Terraform リソースまたは API 呼び出しで設定すると、それらを シークレット参照 として設定できます。 シークレット参照は、ツールチェーンに統合されているシークレット・ストア内のシークレットの名前と場所を識別する、特殊な形式のストリングです。 このエラーは、ツールチェーンが識別されたシークレットを検出できないか、シークレット・ストアがツールチェーンに統合されていないことを示します。 シークレット参照 {vault:...} ストリング内の 1 つ以上のセグメントが正しくない場合、または指定されたグループ、名前、またはフィールドのキーがシークレット・ストアに存在しない場合に、名前によるシークレット参照でエラーが発生することがあります。 このエラーは、削除されたシークレットをシークレット CRN が参照している場合に、CRN によるシークレット参照に対して発生する可能性があります。

エラー・メッセージには、解決できない秘密参照ストリングが含まれています。

名前によるシークレット参照については、以下のタスクを実行します。

  • シークレット・ストアがツールとしてツールチェーンに統合されていること、およびサービス・インスタンス名で識別するようにツール統合が正しく構成されていることを確認してください。 ツール統合の構成が誤っている場合は、ツール統合を編集してエラー状態を修正してから、構成を保存してください。
  • {vault::...} シークレット参照の最初のセグメントが、シークレット・ストア・ツール統合の名前と一致していることを確認します。 例えば、秘密参照 {vault::my-secret-store.my-secret} は、ツールチェーンに my-secret-store という名前の秘密ストア・ツール統合があることを想定しています。 この値は、シークレット・ストア・サービス・インスタンスの名前では なく 、ツール統合の名前です。
  • 秘密が Key Protectに保管されている場合、 {vault::...} 秘密参照の 2 番目のセグメントが、 Key Protect サービス・インスタンスで使用する鍵の名前と一致していることを確認します。 例えば、秘密参照 {vault::my-kms.my-key} は、 Key Protect サービス・インスタンス内で my-key という名前の鍵を見つけることを想定しています。 このサービス・インスタンスは、 my-kms という名前の Key Protect ツール統合を使用してツールチェーンに統合されます。
  • シークレットが Secrets Managerに保管されている場合は、 {vault::...} シークレット参照の 2 番目と 3 番目のセグメントが、 Secrets Manager サービスで使用するシークレット・グループとシークレットの名前と一致していることを確認します。 例えば、シークレット参照 {vault::my-sm.my-group.my-key} は、 my-group という名前のシークレット・グループ内で my-key という名前のシークレットを検出することを想定しています。 このシークレットとシークレット・グループは、 my-sm という名前の Secrets Manager ツール統合を使用してツールチェーンに統合された Secrets Manager サービス・インスタンス内に保管されます。
  • シークレットが HashiCorp Vault に保管されている場合は、 {vault::...} シークレット参照の 2 番目と 3 番目のセグメントが、 HashiCorp Vault サーバーのシークレットとシークレット・フィールドの名前と一致することを確認します。 例えば、シークレット参照 {vault::my-hcv.my-secret.my-field} では、 HashiCorp Vault サーバーで my-secret という名前のシークレットが検出され、そのシークレット内で my-field という名前のフィールドが検出されます。 このサーバーは、 my-hcv という名前の HashiCorp Vault ツール統合を使用してツールチェーンに統合されます。

CRN による秘密参照については、以下のタスクを実行します。

  • シークレット・ストアがツールとしてツールチェーンに統合されていること、およびツール統合がサービス・インスタンス CRN によって識別されるように正しく構成されていることを確認してください。 ツール統合の構成が誤っている場合は、ツール統合を編集してエラー状態を修正してから、構成を保存してください。
  • ツール統合で構成されている Secrets Manager サービス・インスタンスの CRN が、失敗したシークレットの CRN と同じインスタンスを参照していることを確認します。

Terraform または API を使用してツール統合を構成すると、 A problem was encountered while attempting to resolve secret reference... エラーで構成が失敗するのはなぜですか?

ツール統合はシークレットへの参照を使用して構成されていますが、シークレットが存在するシークレット・ストアからシークレットを取得する権限がツールチェーンにありません。

Terraform または API を使用してツール統合を作成または更新すると、構成が失敗し、 A problem was encountered while attempting to resolve secret reference... エラー・メッセージが表示されます。

多くのツール統合には、シークレットとして分類される構成プロパティーが含まれています。 これらのプロパティーを Terraform リソースまたは API 呼び出しで設定すると、それらを シークレット参照 として設定できます。 シークレット参照は、ツールチェーンに統合されているシークレット・ストア内のシークレットの名前と場所を識別する、特殊な形式のストリングです。 シークレットストアサービス IBM Cloud ( Key Protect 例:)において Secrets Manager、このエラーはツールチェーンがシークレットストアサービスに接続できるものの、サービスからシークレットを取得する権限がないことを示しています。 通常、この問題は、IAM(Identity and Access Management)に、ツールチェーンがサービスからシークレットを読み取る IBM CloudIdentity and Access Management ことを許可するサービス間認証ポリシーが存在しないために発生します。

エラー・メッセージには、解決できない秘密参照ストリングが含まれています。

名前によるシークレット参照については、以下のタスクを実行します。

  • {vault::...} 秘密参照の最初のセグメントを調べます。 このセグメントは、ツールチェーン内のシークレット・ストア・ツール統合の名前です。 例えば、 {vault::my-kms.my-key} シークレット参照は、 my-kms という名前のシークレット・ストア・ツール統合を識別します。
  • 秘密ストア・ツール統合構成を調べて、 name パラメーターが秘密ストア・ツール統合の名前と一致していることを確認します。 また、ツール統合がサービス・インスタンス名で識別するように正しく構成されていること、および正しい Key Protect または Secrets Manager サービス・インスタンスが選択されていることを確認してください。
  • IAM を使用して、ツールチェーンから Key Protect サービス・インスタンスまたは Secrets Manager サービス・インスタンスにサービス間許可ポリシーを追加します。 許可ポリシーでは、ツールチェーンは ソース ・サービスであり、秘密ストアは ターゲット ・サービスです。 Key Protectをターゲットにする場合、ポリシーによって Viewer 役割と ReaderPlus 役割が付与されていることを確認します。 Secrets Managerをターゲットにする場合は、ポリシーによって Viewer 役割と SecretsReader 役割が付与されていることを確認してください。

CRN による秘密参照については、以下のタスクを実行します。

  • シークレット・ストア・ツール統合構成を調べて、サービス・インスタンス CRN によって識別されるように正しく構成されていることを確認してください。 また、 Secrets Manager サービス・インスタンスの CRN が正しいことを確認してください。
  • IAM を使用して、ツールチェーンから Secrets Manager サービス・インスタンスにサービス間許可ポリシーを追加します。 許可ポリシーでは、ツールチェーンは ソース ・サービスであり、 Secrets Manager インスタンスは ターゲット ・サービスです。 ポリシーによって Viewer 役割と SecretsReader 役割が付与されていることを確認します。

サービス間許可ポリシーについて詳しくは、 許可を使用したサービス間のアクセス権限の付与 を参照してください。

Terraform を使用して、ツールチェーンからシークレット・ストア・サービス・インスタンスにサービス間許可ポリシーを構成する方法の例については、 Terraform でのシークレット参照の指定 を参照してください。

Terraform または API を使用して Key Protect、 Secrets Manager、または App Configuration ツール統合を構成すると、その理由は以下のとおりです。

ツール統合は、存在しない Key Protect、 Secrets Manager、または App Configuration サービス・インスタンスを参照します。

Terraform または API を使用して、 Key Protect ツール統合を作成または更新すると App Configuration、設定が失敗し、 There was a problem with the provided service parameters, please check that they are valid 次のエラー Secrets Manager メッセージが表示されます。

ツール統合は、見つからない、またはアクセスできない、 App Configuration サービス Secrets Manager インスタンスの名前またはIDで Key Protect 構成されています。 Terraform を使用してサービス・インスタンスとツール統合の両方を管理する場合、Terraform は、サービス・インスタンスを作成する前にツール統合の作成または更新を試行することがあります。

Terraformを使用している場合は、Terraformの設定を確認し、 ibm_cd_toolchain_tool_appconfigibm_cd_toolchain_tool_keyprotect ツール統合リソース(tool-integration ibm_cd_toolchain_tool_secretsmanager)が、 Key Protect そのツール統合が表すリソース( Secrets Manager tool App Configuration[ibm_resource_instance](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/resources/resource_instance){: external} )に依存していることを確認してください。 ツール統合リソース内でこの依存関係を指定するには、サービス・インスタンス・リソースの属性を参照するか、サービス・インスタンス・リソースを参照する depends_on メタ引数を指定します。 サービス・インスタンス・リソースを直接参照することも、他の中間リソースを介して間接的に参照することもできます。 リソース間の依存関係を正しく宣言することにより、正しい順序でリソースを作成、更新、および削除するように Terraform を強制することができます。

Terraform リソース間の依存関係の仕組みの例については、 Terraform を使用した秘密参照の指定 を参照してください。

API を使用している場合は、 Key Protect、 Secrets Manager、または App Configuration ツール統合の構成パラメーターを確認して、作成してください。 統合しようとしているサービス・インスタンスの名前または ID が、ツール統合の構成内で正しく指定されていることを確認してください。