プロジェクト内でのデプロイ可能なアーキテクチャの積み重ね

デプロイ可能なアーキテクチャをプロジェクト内で積み重ねて、より複雑なエンドツーエンドのソリューション アーキテクチャを作成できます。 デプロイ可能なアーキテクチャを接続するために Terraform をコーディングする必要はありません。 デプロイ可能なアーキテクチャで入力値を構成するときに、別のアーキテクチャからの入力または出力を参照して、それらをリンクすることができます。 スタックされたアーキテクチャをデプロイした後、デプロイ可能なアーキテクチャとしてプライベート カタログに追加して、エンドツーエンドのソリューションを組織内の他のユーザーと簡単に共有できます。

これは評価とテストの目的で利用できる実験的な機能であり、予告なく変更される可能性があります。

プロジェクトでは、カタログですでに使用可能なデプロイ可能なアーキテクチャをスタックできます。 カタログにまだオンボードされていないデプロイ可能なアーキテクチャを作成する場合、 オンボード時に他のアーキテクチャとスタックすることで、デプロイ可能なアーキテクチャを拡張 できます。 このアプローチでは、さまざまなユースケース用のオプションのアーキテクチャを含めるなど、プロジェクトにデプロイ可能なアーキテクチャをスタックする場合には利用できない、より多くのカスタマイズ オプションが提供されます。 このアプローチは、デプロイ可能なアーキテクチャがプライベート カタログでまだ利用できない場合にも機能します。 アーキテクチャを積み重ねるためにどのようなアプローチを採用したとしても、結果として、ユーザーがプロジェクトを使用して構成および展開できる、より堅牢な展開可能なアーキテクチャが実現します。

開始前に

以下のアクセス権があることを確認してください。 アクセスと権限の詳細については、 「プロジェクトへのアクセスの割り当て」を 参照してください。

  • IBM Cloud プロジェクトサービスにおける編集者の役割。
  • IBM Cloud® Schematics サービスにおける編集者および管理者の役割。
  • プロジェクトのリソース グループに対する閲覧者ロール。

一緒にスタックしたいデプロイ可能なアーキテクチャをプロジェクトに追加します。 詳細については、 「プロジェクトへのデプロイ可能なアーキテクチャの追加」を 参照してください。

デプロイ可能なアーキテクチャをプロジェクトに追加するときは、識別しやすいようにわかりやすい名前を付けます。 たとえば、アプリケーションのベースを作成するインフラストラクチャのデプロイ可能なアーキテクチャを追加する場合は、まずそのインフラストラクチャをデプロイする必要があります。 そうしないと、アプリケーションをそのインフラストラクチャにデプロイできません。 インフラストラクチャの展開可能なアーキテクチャに名前を付ける 1 - infrastructure プロジェクトに追加するとき。 アプリケーションに名前を付ける 2 - application 2 番目に展開する必要があることを示します。

CLI を使用してアーキテクチャをスタックする

デプロイ可能なアーキテクチャをプロジェクトに追加したら、次のコマンドを実行してそれらを積み重ねます。 ibmcloud project config-create 指示。 の中で Definition オプションで、 members 一緒にスタックする既存のデプロイ可能なアーキテクチャの名前と構成 ID を指定します。

ibmcloud project config-create --project-id PROJECT-ID [--definition DEFINITION]

たとえば、次のコマンドは、次のような名前のデプロイ可能なアーキテクチャを作成します。 StackDev プロジェクトで。 2つの展開可能なアーキテクチャが含まれています。 custom-apache そして test-slz プロジェクトに構成としてすでに追加されているもの:

ibmcloud project config-create \
  --project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
  --definition '{"name": "StackDev", "members": [{"name": "custom-apache", "config_id": "caff3a49-0bf4-40c4-b348-47e5da6e2274"}, {"name": "test-slz", "config_id": "fc7fa3d1-33db-4c40-9570-7604348ab3c4"}]}' \
  --output json

コマンドパラメータの詳細については、以下を参照してください。 ibmcloud project config-create

CLIを使用したスタック定義の作成

デプロイ可能なアーキテクチャをプライベート カタログにオンボードするには、スタック定義を作成する必要があります。 展開可能な各アーキテクチャが相互にどのように関連しているかを定義します。 この情報を提供すると、ユーザーはプライベート カタログからソリューションをプロジェクトに追加するときに、ソリューション全体を正常に展開できるようになります。

スタック定義には、メンバーのデプロイ可能なアーキテクチャで参照できる入力と出力が含まれます。 デプロイ可能なアーキテクチャ間の参照を含めることもできます。これにより、ユーザーに対してアーキテクチャがリンクされます。 正常にデプロイするために特定の値または参照を必要とする入力は、スタック定義に含める必要があります。

2 つのアーキテクチャを積み重ねて作成された、展開可能なアーキテクチャの図。 スタック定義には、プレフィックス、ssh_key、ssh_private_key の 3 つの入力値が定義されています。 test-slz アーキテクチャは、プレフィックスと ssh_key を 2 つの入力値として参照します。 一方、custom-apache アーキテクチャは、スタック定義の ssh_private_key とともに、test-slz からの出力を入力の 1 つとして参照します。
展開可能なアーキテクチャ間の参照

現在、メンバーはスタック定義からの出力を参照できません。

以下を実行します ibmcloud project stack-definition-create スタック定義を作成し、入力を提供するコマンド:

ibmcloud project stack-definition-create --project-id PROJECT-ID --id

どこ id は、 StackDev プロジェクトで作成したデプロイ可能なアーキテクチャ。

たとえば、次のコマンドは、スタック定義に次の 3 つの入力を追加します。 これらの入力はユーザーから隠されていない必須の文字列であるため、エンドツーエンドの展開可能なアーキテクチャを展開するには、ユーザーがこれらの入力値を構成する必要があります。

  • prefix 入力 stackDemo デフォルト値として。
  • ssh_key デフォルト値のない入力。
  • ssh_private_key ユーザーが入力を構成する際に役立つようにデフォルト値が提供されています。

このコマンドには、一緒に積み重ねられる 2 つのデプロイ可能なアーキテクチャの入力名も含まれます。 これらの入力には参照として値が入力され、プライベート カタログからプロジェクトにソリューションを追加するユーザー用に保存されます。

  • その test-slz 展開可能なアーキテクチャには prefix 入力と ssh_key 入力。
  • その custom-apache 展開可能なアーキテクチャには ssh_private_key 入力と prerequisite_workspace_id 入力。

参照の記述の詳細については、 「値の参照」を 参照してください。

ibmcloud project stack-definition-create \
--project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
--id 4d69cee6-0fb2-4621-96c6-16d987f3d9d7 \
--stack-definition '{"inputs": [{"name": "prefix", "type": "string", "hidden": false, "required": true, "default": "stackDemo"}, {"name": "ssh_key", "type": "string", "hidden": false, "required": true}, {"name": "ssh_private_key", "type": "string", "hidden": false, "required": true, "default": "<<-EOF\nINSERT YOUR KEY HERE\nEOF"}], "members": [{"name": "test-slz", "inputs": [{"name": "prefix"}, {"name": "ssh_key"}]}, {"name": "custom-apache", "inputs": [{"name": "ssh_private_key"}, {"name": "prerequisite_workspace_id"}]} ]}' --output json

コマンドパラメータの詳細については、以下を参照してください。 ibmcloud project stack-definition-create

CLI を使用して、メンバーのデプロイ可能なアーキテクチャ内のスタック定義からの入力を参照する

入力がスタック定義に追加されたので、メンバーのデプロイ可能なアーキテクチャを更新して、それらの入力を参照するようにします。 ibmcloud project config-update 積み重ねた各アーキテクチャに対して次のコマンドを実行します。

ibmcloud project config-update --project-id PROJECT-ID --id

例えば、次のコマンドは、 test-slz スタック定義に追加された入力を参照するためのデプロイ可能なアーキテクチャ:

ibmcloud project config-update \
--project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
--id fc7fa3d1-33db-4c40-9570-7604348ab3c4 \
--definition '{"inputs": {"prefix": "ref:../../inputs/prefix", "ssh_key": "ref:../../inputs/ssh_key"}}' --output json

以来、 custom-apache 建築は ssh_private_key スタック定義から値を取得し、 custom-apache その値を参照するための展開可能なアーキテクチャ。 その custom-apache 建築でも schematics_workspace_id 入力値が入力の 1 つとして含まれるため、その値への参照を含めます。

ibmcloud project config-update \
--project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
--id caff3a49-0bf4-40c4-b348-47e5da6e2274 \
--definition '{"inputs": {"ssh_private_key": "ref:../../inputs/ssh_private_key", "prerequisite_workspace_id": "ref:../test-slz/outputs/schematics_workspace_id"}}' --output json

コマンドパラメータの詳細については、以下を参照してください。 ibmcloud project config-update

CLI を使用してスタック定義の入力値を更新する

メンバーのデプロイ可能なアーキテクチャが必要な値を参照するように構成されたので、次のコマンドを実行してスタック定義の入力値を更新します。 ibmcloud project config-update のために StackDev 展開可能なアーキテクチャ。 例えば、次のコマンドは、 prefix 参照される入力値 test-slz 展開可能なアーキテクチャ。 以下の値も提供されています ssh_key そして ssh_private_key 入力:

ibmcloud project config-update  \
--project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
--id 4d69cee6-0fb2-4621-96c6-16d987f3d9d7 \
--definition '{"inputs": {"prefix": "kb-stack-0327", "ssh_key": "<publicKey>", "ssh_private_key": "<privateKey>"}}' --output json

コマンドパラメータの詳細については、以下を参照してください。 ibmcloud project config-update

入力値が構成されたので、各メンバーのデプロイ可能なアーキテクチャ を検証してデプロイします

たとえば、次のコマンドは、 test-slz 展開可能なアーキテクチャ:

ibmcloud project config-validate \
--project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
--id fc7fa3d1-33db-4c40-9570-7604348ab3c4

次のコマンドは、 test-slz 展開可能なアーキテクチャ:

ibmcloud project config-approve \
--project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
--id fc7fa3d1-33db-4c40-9570-7604348ab3c4 \
--comment 'I approve'

そして次のコマンドは、 test-slz 展開可能なアーキテクチャ:

ibmcloud project config-deploy \
--project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
--id fc7fa3d1-33db-4c40-9570-7604348ab3c4

CLI を使用してプライベートカタログにオンボーディングする

各メンバーのデプロイ可能なアーキテクチャが検証され、デプロイされたら、他のユーザーがアクセスできるように、デプロイ可能なアーキテクチャをプライベート カタログにオンボードできます。 ユーザーがプライベート カタログからデプロイ可能なアーキテクチャをプロジェクトに追加すると、一緒にスタックされた各アーキテクチャがプロジェクトに含められます。 以下を実行します ibmcloud project stack-definition-export 指示:

ibmcloud project stack-definition-export --project-id PROJECT ID

新しい製品を作成したり、既存の製品にバージョンを追加したりできます。 たとえば、次のコマンドは、プライベートカタログに新しい製品を作成します。 My Apache Stack

ibmcloud project stack-definition-export --project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 --id 4d69cee6-0fb2-4621-96c6-16d987f3d9d7 --settings '{"catalog_id": "702ff97a-e35a-45a4-a0c0-a04e2e052bc8", "label": "My Apache Stack"}' --output json

次のコマンドは、既存の製品の新しいバージョンを作成します。

ibmcloud project stack-definition-export \
--project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
--id 4d69cee6-0fb2-4621-96c6-16d987f3d9d7 \
--settings '{"catalog_id": "702ff97a-e35a-45a4-a0c0-a04e2e052bc8", "product_id": "1bf57631-27a2-42cc-ac87-733cca67e8a5", "target_version": "1.0.1"}' --output json

コマンドパラメータの詳細については、以下を参照してください。 ibmcloud project stack-definition-export

アーキテクチャはプライベート カタログ内のドラフトとなり、まだ公開されていませんが、プライベート カタログへの編集者アクセス権を持つすべてのユーザーが利用できます。

プライベートカタログへのオンボーディングを完了するには、 カタログの詳細を編集し、アーキテクチャ図やカテゴリなどの情報を提供します。

コンソールを使用してアーキテクチャを積み重ねる

デプロイ可能なアーキテクチャをプロジェクトに追加したら、 それらを構成します。 積み重ねるアーキテクチャが相互に依存している場合は、構成時に 入力または出力を参照してアーキテクチャをリンクします。 次に、次の手順を実行して、アーキテクチャをスタックします。

  1. 一緒にスタックするデプロイ可能なアーキテクチャのチェックボックスを選択します。

  2. スタックを選択します。

  3. デプロイ可能なアーキテクチャの名前を指定するか、既存のアーキテクチャを選択します。

    展開可能なアーキテクチャは連携してソリューションを提供する必要があります。 エンドツーエンド ソリューションに、積み重ねる各アーキテクチャを正確に表す意味のある名前を付けることを検討してください。 例えば、 Apache アプリケーションをインフラ・ベースと一緒にスタックする場合、 Apache application with infrastructure base のように名前を付けて、アーキテクチャが何をデプロイするのかを明確に識別できるようにする。

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

コンソールを使用して変数を定義する

デプロイ可能なアーキテクチャを積み重ねた後、ユーザーの変数を定義する必要があります。 目標は、デプロイ可能なアーキテクチャをリンクして、ユーザーがアーキテクチャを個別に構成するのではなく、単一のインターフェースで入力を構成できるようにすることです。

定義する入力変数は、デプロイ可能なアーキテクチャがカタログからプロジェクトに追加された後にユーザーによって構成されます。 同様に、選択した出力変数は、アーキテクチャの親レベルのユーザーに表示されます。 ユーザーが設定すべきでない変数は選択しないでください。 たとえば、アーキテクチャでストレージ プランなどの入力変数に特定の値が必要な場合は、ストレージ プランの入力を選択しないでください。 デプロイ可能なアーキテクチャをリンクする参照 を選択しないでください。 そうすると、それらのアーキテクチャ間の接続が切断され、ソリューション全体が正常に展開されない可能性があります。

ユーザーが簡単に設定できるように、必要な入力値の数を最小限に抑えます。 各アーキテクチャに必要な入力を確認し、スタック定義の入力値への参照を追加するか、他のアーキテクチャの出力値を参照することによって、それらの入力が構成されていることを確認します。

以下のステップを実行します。

  1. オンザ 構成 プロジェクトのタブで、 オプション アイコン オプションアイコン スタックされたデプロイ可能なアーキテクチャを選択し、 変数を定義する

  2. [セキュリティ] タブで、ユーザーが構成する必要がある変数を選択します。

  3. [必須入力] タブに移動し、ユーザーが構成する必要がある必須入力を選択します。

  4. [オプション入力] タブに移動し、ユーザーが構成する必要があるオプション入力を選択します。

  5. 「出力」 タブに移動し、親レベルで表示する出力変数を選択します。

    アーキテクチャを展開した後、ユーザーがアプリケーションの URL や資格情報の名前などの重要な出力値を簡単に見つけられるようにします。 メンバーのデプロイ可能なアーキテクチャから重要な出力値を選択し、親レベルのユーザーに表示します。

  6. 「次へ」 をクリックし、残りのアーキテクチャの変数の選択を続行します。

  7. 完了したら、 「完了」 をクリックし、デプロイメントのアーキテクチャを構成します。 変数を定義する際に選択した入力は、設定する必要がある場合があります。

コンソールを使用してプライベートカタログにオンボーディングする

一緒にスタックした各デプロイ可能なアーキテクチャを検証してデプロイした後、それらをデプロイ可能なアーキテクチャとしてプライベート カタログに追加して、組織内の他のユーザーとソリューションを簡単に共有できます。 詳細については、 「プライベート カタログの共有」を 参照してください。

以下のステップを実行します。

  1. オンザ 構成 プロジェクトのタブで、 オプション アイコン オプションアイコン 展開可能なアーキテクチャを選択し、 プライベートカタログに追加
  2. デプロイ可能なアーキテクチャを追加するプライベート カタログを選択または作成します。
  3. 新しい製品か、既存の製品の新しいバージョンかを選択します。
  4. 製品名、該当する場合はカテゴリ、バリエーション、バージョンなどの詳細を入力します。
  5. 次へ をクリックします。
  6. プライベート カタログからプロジェクトにデプロイ可能なアーキテクチャを追加した後にユーザーが構成できる変数を確認します。 変更を加える必要がある場合は、 変数を定義 できます。
  7. 追加 をクリックします。

デプロイ可能なアーキテクチャは、プライベート カタログ内のドラフトになりました。まだ公開されていませんが、プライベート カタログへの編集者アクセス権を持つすべてのユーザーが利用できます。 ユーザーがプライベート カタログからデプロイ可能なアーキテクチャをプロジェクトに追加すると、一緒にスタックされた各アーキテクチャがプロジェクトに含められます。

デプロイ可能なアーキテクチャのプライベート カタログへのオンボーディングを完了するには、 カタログの詳細を編集し、アーキテクチャ図やカテゴリなどの情報を提供します。

他のものとスタックした展開可能なアーキテクチャに利用できる新しいバージョンはありますか? 最新バージョンを使用するようにプロジェクトの構成を更新し、変更を検証してデプロイしてから、更新されたソリューションをプライベート カタログにオンボードする手順を完了します。 すでにオンボードされている既存の製品を選択し、新しいバージョン番号を入力します。 そうすることで、更新されたデプロイ可能なアーキテクチャが、一緒にスタックされた他のアーキテクチャと引き続き適切に動作することを保証できます。