クラウド テンプレートの反復開発時や、最終的なテンプレートを使用している場合、Service Broker セルフサービス カタログ内にあるこのテンプレートを利用者に対して使用可能にすることができます。ユーザー エクスペリエンスをさらに向上させるために、カスタム申請フォームを作成できます。カスタマイズされたフォームは、単純なテンプレート入力方法よりも強力です。

最初に行う作業

  • テンプレートをサポートするインフラストラクチャがあることを確認します。このようなインフラストラクチャがない場合は、チュートリアル:Cloud Assembly での vSphere インフラストラクチャおよび展開のセットアップとテストを参照して、他のチュートリアルに進みます。
  • 一部のリソース プールに env:dev および env:prod がタグ付けされていることを確認します。詳細については、チュートリアル:Cloud Assembly でのタグを使用した vSphere リソースの管理を参照してください。
  • 以下のような展開可能なクラウド テンプレートがあることを確認します。このチュートリアルでは、まず次のテンプレートを使用します。
    formatVersion: 1
    inputs:
      installedOS:
        type: string
        title: Operating System
        description: Select the operating system.
        enum:
          - centos
          - ubuntu
      placement:
        type: string
        enum:
          - 'env:dev'
          - 'env:prod'
        default: 'env:dev'
        title: Select Placement for Deployment
        description: Target Environment
    resources:
      Cloud_vSphere_Disk_1:
        type: Cloud.vSphere.Disk
        properties:
          capacityGb: 1
      Cloud_vSphere_Machine_1:
        type: Cloud.vSphere.Machine
        properties:
          image: '${input.installedOS}'
          installedOS: '${input.installedOS}'
          flavor: small
          constraints:
            - tag: '${input.placement}'
          tags:
            - key: db
              value: mysql
          networks:
            - network: '${resource.Cloud_NSX_Network_1.id}'
              tags:
                - key: db
                  value: mysql
          attachedDisks:
            - source: '${resource.Cloud_vSphere_Disk_1.id}'
      Cloud_NSX_Network_1:
        type: Cloud.NSX.Network
        properties:
          networkType: existing
          tags:
            - key: NGINX
              value: web

手順 1:クラウド テンプレートに入力を追加する

この手順では、既存の OS タイプの入力に加えて、配置入力を更新し、サイズ入力を追加します。Service Broker で申請フォームをカスタマイズした場合は、申請フォーム上にカスタマイズされたフィールドが 3 つあります。

  1. Cloud Assembly[デザイン] > [クラウド テンプレート] の順に選択して、上記のテンプレートを作成するか、開きます。

    サンプル テンプレートはさまざまなオプションを説明する際に使用され、サンプル値が含まれています。実際の環境に合わせてください。

  2. サイズ変数を追加し、[入力] セクションでサイズを定義します。
    1. Cloud_vSphere_Machine_1 セクションで、flavor プロパティに変数を追加します。
       flavor: '${input.size}'
    2. [入力] セクションに [サイズ] という名前のユーザー入力を追加して、ユーザーが展開のサイズを選択できるようにします。これは、クラウド ゾーンに対して定義され、T シャツ サイズとも呼ばれます。
       size:
          type: string
          title: Deployment size
          description: Select the the deployment t-shirt size.
          enum:
            - small
            - medium
            - large
  3. 配置入力をタグ文字列ではなく、わかりやすい用語で更新します。

    これらの制約タグは、チュートリアル:Cloud Assembly でのタグを使用した vSphere リソースの管理で追加した機能タグと照合されます。

    1. [入力] セクションに 配置 という名前のユーザー入力を追加し、展開の配置として [開発] または [本番] を選択できるようにします。

      この例では、oneOf 属性を使用します。この属性を使用すると、自然言語ラベルを表示しながら、展開プロセスで必要になる文字列を送信できます。例として、env:dev および env:prod タグが挙げられます。

       
      placement:
          type: string
          oneOf:
            - title: Development
              const: 'env:dev'
            - title: Production
              const: 'env:prod'
          default: 'env:dev'
          title: Select Deployment Placement
          description: Target Environment
  4. YAML 全体を調べて、次の例のようになっていることを確認します。
    formatVersion: 1
    inputs:
      installedOS:
        type: string
        title: Operating system
        description: Select the operating system.
        enum:
          - centos
          - ubuntu
      placement:
        type: string
        oneOf:
          - title: Development
            const: 'env:dev'
          - title: Production
            const: 'env:prod'
        default: 'env:dev'
        title: Select Deployment Placement
        description: Target Environment
      size:
        type: string
        title: Deployment size
        description: Select the the deployment t-shirt size.
        enum:
          - small
          - medium
          - large
    resources:
      Cloud_vSphere_Disk_1:
        type: Cloud.vSphere.Disk
        properties:
          capacityGb: 1
      Cloud_vSphere_Machine_1:
        type: Cloud.vSphere.Machine
        properties:
          image: '${input.installedOS}'
          installedOS: '${input.installedOS}'
          flavor: '${input.size}'
          constraints:
            - tag: '${input.placement}'
          tags:
            - key: db
              value: mysql
          networks:
            - network: '${resource.Cloud_NSX_Network_1.id}'
              tags:
                - key: db
                  value: mysql
          attachedDisks:
            - source: '${resource.Cloud_vSphere_Disk_1.id}'
      Cloud_NSX_Network_1:
        type: Cloud.NSX.Network
        properties:
          networkType: existing
          tags:
            - key: NGINX
              value: web
  5. [展開] をクリックし、申請の 2 ページ目が次の例のようになっていることを確認します。確認したら、この展開が、展開後の本番リソース プールの特定の開発に含まれていることを確認します。

    OS タイプ、展開の配置、および展開サイズの入力が表示されている展開申請フォームの 2 ページ目

手順 2:クラウド テンプレートのバージョンを管理してリリースする

展開可能なテンプレートがある場合は、他のユーザーが展開できるように Service Broker カタログ内で使用可能にします。クラウド テンプレートを検出可能にして、カタログに追加可能にするには、クラウド テンプレートをリリースする必要があります。この手順では、クラウド テンプレートのバージョン管理を行い、テンプレートのスナップショットを取得して、テンプレートをリリースします。

  1. [デザイン] > [クラウド テンプレート] の順に選択して、デザイン キャンバス内でテンプレートを開きます。
  2. [バージョン] をクリックして、説明を入力します。

    バージョン番号、説明、選択された [リリース] チェック ボックスが含まれている [バージョン] ダイアログ ボックスの作成。
  3. [リリース] チェック ボックスを選択して、[作成] をクリックします。

    クラウド テンプレートをリリースしても、Service Broker には自動的に追加されません。クラウド テンプレートをリリースすると、検出可能になり、カタログに追加できるようになります。

手順 3:クラウド テンプレートを Service Broker カタログに追加する

Service Broker カタログを使用すると、組織内の他の利用者がテンプレートの作成方法を理解していない場合でも、これらの利用者にクラウド テンプレートを提供することができます。カタログにより、利用者はテンプレートを展開できるようになります。

カタログ アイテムとしてテンプレートを追加するには、Service Broker にテンプレートをインポートしておく必要があります。インポートできるのは、リリースされたクラウド テンプレートのみです。

  1. Cloud Assembly から Service Broker を開くには、右上隅のアプリケーション メニューをクリックします。
    画面の右上にあるアプリケーション メニューが開き、Service Broker が強調表示されます。
  2. [Service Broker] をクリックします。
  3. クラウド テンプレートをインポートします。
    1. Service Broker[コンテンツとポリシー] > [コンテンツ ソース] の順に選択します。
    2. [新規] をクリックし、[VMware Cloud Templates] を選択します。
    3. [名前] を入力します。

      このチュートリアルでは、Cloud Assembly DevProject と入力します。

    4. [プロジェクト] で、Cloud Assembly で作成した Development Project を選択します。
    5. [検証] をクリックします。

      1 つ以上のアイテムが見つかったことが示される必要があります。

    6. 検証後、[作成してインポート] をクリックします。

      Cloud Assembly DevProject がコンテンツ ソースとしてリストに追加されます。

  4. クラウド テンプレートをカタログ内で使用可能にします。
    1. [コンテンツとポリシー] > [コンテンツの共有] の順に選択します。
    2. [プロジェクト] ドロップダウン リストで Development Project を選択します。
    3. [アイテムの追加] をクリックし、選択します。
    4. [アイテムを共有] ダイアログ ボックスで、[Cloud Assembly DevProject] を選択し、[保存] をクリックします。
  5. 開発テンプレートがカタログに追加されたことを確認するには、[カタログ] をクリックします。
  6. 開発テンプレート カードの [申請] をクリックします。

    クラウド テンプレートで確認した入力がここに表示されます。次の手順では、申請フォームをカスタマイズします。


    展開テンプレート カタログ アイテムのカタログ申請フォーム。展開名、オペレーティング システム、配置、および展開サイズのオプションが含まれています。

手順 4:テンプレートのカスタム フォームを作成する

このカスタム フォームの目的は、ユーザーが env:dev または env:prod タグに基づいてオペレーティング システムおよび配置を選択するフォームを提供することです。env:dev オプションでは、ユーザーは小または中を選択することはできますが、大を選択することはできません。一方、ユーザーが env:prod を選択した場合、大を選択するオプションはありません。サイズはユーザーに表示されませんが、申請には含まれます。

  1. Service Broker でカスタム フォームを作成するには、[コンテンツとポリシー] > [コンテンツ] の順に選択します。
  2. 開発テンプレートのエントリの左側にある縦の省略記号をクリックし、[フォームのカスタマイズ] をクリックします。
  3. 入力オプションをカスタマイズします。
    1. キャンバス内のフィールドをクリックし、次の表で指定された内容に沿って [プロパティ] を構成します。
      キャンバスのフィールド名 表示 制約
      オペレーティング システム

      ラベルとタイプ

      • ラベル = オペレーティング システム

      値のオプション

      • 値のオプション = 定数
      • 値のソース = centos|CentOS,ubuntu|Ubuntu

      この例では、値オプションを使用して、すべて小文字のオペレーティング システム名を希望する OS 名にカスタマイズします。

      展開の配置の選択

      値のオプション

      • 値のオプション = 定数
      • 値のソース = env:dev|Development,env:prod|Production
      展開サイズ

      可視性

      • 値のソース = 条件値
      • 展開配置が env:dev と等しくなるように選択した場合は、値の設定 = はい

      デフォルト値

      • 値のソース = 条件値
      • 展開が env:prod と等しくなるように選択した場合は、値の設定 = 大

      値のオプション

      • 値のオプション = 定数
      • 値のソース = small|Small,medium|Medium

      値のソースに大が含まれていないことに注目してください。大は本番でのみ使用できる必須の値であるため、除外されています。ユーザー開始アクションが含まれていない展開申請には、大の値が含まれています。

    2. カタログでフォームを有効にするには、[有効化] をクリックします。
    3. [保存] をクリックします。
  4. 少なくとも小規模展開の本番申請を送信した際に適切な結果を得るには、カタログ内のフォームをテストします。

    次の例を使用して結果を確認します。

    1. この例では「小規模テスト」という名前を指定し、オプションとして [CentOS]、[開発]、[小] を選択することで、小規模展開申請フォームをテストします。
      展開名として [小規模テスト] が指定され、[展開] と [小] が選択されているカタログ申請フォーム。
    2. 小規模展開の展開を確認するには、[リソース] > [展開] の順に選択し、[小規模展開のテスト] をクリックします。
    3. トポロジ タブで Cloud_vSphere_Machine をクリックし、右側のペインで [カスタム プロパティ] セクションを特定します。

      確認する値は、cpuCount = 2 や flavor = small などです。


      キャンバスで Cloud_vSphere_Machine が強調表示され、右側のペインで cpuCount = 2 と flavor = small が強調表示されている展開トポロジ画面。
    4. この例では「大規模テスト」という名前を入力し、オプションとして [CentOS] と [本番] を選択することで、本番申請フォームをテストします。

      フォームは、サイズを表示したり、ユーザーにサイズ選択を要求したりするように構成されていません。


      展開名として [大規模テスト] が指定され、[本番]が選択されているカタログ申請フォーム。
    5. 本番展開を確認するには、[リソース] > [展開] の順に選択し、[大規模展開のテスト] をクリックします。
    6. トポロジ タブで Cloud_vSphere_Machine をクリックし、右側のペインで [カスタム プロパティ] セクションを特定します。

      確認する値は、cpuCount = 8 や flavor = large などです。


      キャンバスで Cloud_vSphere_Machine が強調表示され、右側のペインで cpuCount = 8 と flavor = large が強調表示されている展開トポロジ画面。

手順 5:カタログ内のクラウド テンプレートのバージョンを制御する

ほとんどの場合、Service Broker カタログでは最新のクラウド テンプレートのみを使用可能にします。次の手順では反復型開発を扱います。あるバージョンのテンプレートをリリースしてカタログに追加しますが、テンプレートを改良したため、現在のバージョンを新しいバージョンに置き換えます。

手順 2 でテンプレートにバージョンを設定してリリースしたため、このプロセスは既知のものです。手順 3 では、それをカタログに追加しました。この手順では、反復型開発を実行してカタログを最新バージョンで更新するため、この 2 つの手順を 1 つにまとめます。

カタログで複数のバージョンを使用できるようにするオプションもあります。

  1. Cloud Assembly で、カタログから使用可能にするテンプレートにバージョンを設定します。
    1. [デザイン] > [クラウド テンプレート] の順に選択して、デザイン キャンバス内でテンプレートを開きます。
    2. [バージョン履歴] をクリックします。
    3. カタログに追加するバージョンを特定し、[バージョン] をクリックします。
    4. [説明] に入力し、[リリース] チェック ボックスを選択して、[作成] をクリックします。

      この時点で、以前のバージョンをカタログ内に残すオプションを選択できます。複数のバージョンを使用可能にする場合は、バージョンのリリースを解除する次の手順を無視します。

    5. カタログから使用可能なテンプレートのバージョンを 1 つに制限する場合は、バージョン履歴のリストを確認し、カタログに含めないすべてのバージョンで [リリース解除] をクリックします。
  2. Service Broker カタログを最新バージョンに基づいて更新し、古いバージョンを置き換えるには、新しいバージョンを収集する必要があります。
    1. Service Broker[コンテンツとポリシー] > [コンテンツ ソース] の順に選択します。
    2. このチュートリアルで使用されている Cloud Assembly DevProject コンテンツ ソースをクリックします。
    3. [検証] をクリックします。

      アイテムが見つかったことを示すメッセージが表示されます。

    4. [保存してインポート] をクリックします。
  3. 必要なバージョンがカタログに表示されていること、またはバージョンが表示されていないことを確認します。
    1. Service Broker で、[カタログ] をクリックします。
    2. カタログ アイテムを見つけて、[申請] をクリックします。
    3. 申請フォームの上部にある [バージョン] をクリックし、1 つまたは複数のバージョンを確認します。

    次のスクリーンショットには、8 と示されています。


    1 つのバージョンが使用可能になっている新しい申請フォームのスクリーンショット。