タグは強力なメタデータであり、リソースに関連付け、テンプレートに含めることができます。タグは、ワークロード配置やリソースへのラベル付けなど、管理の多様なシナリオで使用できます。

タグの簡単な概要

このセクションでは、タグが各種の手順に適用される状況に沿って、タグの簡単な概要を示します。タグの詳細については、Cloud Assembly のリソースと展開を管理するためにタグを使用する方法を参照してください。

  • 機能タグと制約タグ

    タグを使用すると、リソースの機能に基づいて展開を制御できます。たとえば、クラウド管理者は、繰り返し開発されるクラウド テンプレートを開発固有のリソース プールに展開し、本番向けテンプレートを別のリソース プールに展開することが必要になります。

    • 機能タグはリソースに追加されて、その機能を定義します。
    • 制約タグはクラウド テンプレートで使用されて、展開されたリソースが使用するリソースを定義します。
  • ラベル タグ

    リソースを管理するためには、タグをオブジェクト ラベルまたは説明として追加します。管理のための用途としては、リソースの検索結果の向上、類似オブジェクトどうしの区別、カスタム情報によるオブジェクトへのコメントの追加、サードパーティ システムへの情報の提供、セキュリティ グループ メンバーシップ基準の作成、リンクされた Software-Defined Data Center (SDDC) ドメイン間での一貫性の確保などがあります。

開始する前に

タグを使用したワークロード配置の管理

この単純な例では、開発環境と本番環境のタグを使用して、機能タグと制約タグの使用方法を示します。まず、vCenter Server リソース プールのコンピューティング リソースに機能タグを追加し、その後、クラウド テンプレートにそのタグを含めます。クラウド テンプレートの例では、入力を使用して、テンプレートを開発リソース プールと本番リソース プールのどちらに展開するかを、展開を実行するユーザーが選択できるようにする方法を示します。

同じタグを使用してマルチクラウド環境での配置を定義する方法の例については、チュートリアル:Cloud Assembly でのマルチクラウド インフラストラクチャおよび展開のセットアップとテストを参照してください。

  1. 機能タグをリソース プールに追加します。
    1. [インフラストラクチャ] > [リソース] > [コンピューティング] の順に選択します。
    2. クラウド ゾーンを開き、[コンピューティング] をクリックします。クラウド ゾーンの [コンピューティング] タブにタグを持たないリソース プールが表示されているスクリーン ショット。
    3. 開発ワークロードの展開先とするリソース プールをクリックします。

      このチュートリアルでは、次のサンプル値を使用します。これらの値は単なる例であることに注意してください。値は環境によって異なります。

      サンプルのリソース プール サンプル タグ
      wid01-clu01 / Development env:dev
      wid01-clu01 / Production env:prod
    4. タグ env.dev を追加し、[保存] をクリックします。
      タグを追加するために使用するダイアログ ボックスのスクリーン ショット。サンプル値 env:dev が含まれています。
    5. 本番ワークロードを展開するリソース プールに対してプロセスを繰り返して、env:prod タグを追加します。
  2. 機能タグがクラウド ゾーンのリソース プールに追加されたことを確認します。
    1. [インフラストラクチャ] > [構成] > [クラウド ゾーン] を選択します。
    2. プロジェクトに関連付けられているクラウド ゾーンを開き、[コンピューティング] をクリックします。

      この例では、クラウド ゾーンは vCenter Server アカウントのクラウド ゾーンであり、タグは wid01-clu01/ Development と wid01-clu01 / Production の 2 つのリソース プールに追加されています。

      1 つのクラウド ゾーンが env:dev というタグ、もう 1 つが env:prod というタグを持つ vCenter Server クラウド ゾーンのスクリーンショット。
  3. クラウド テンプレートに制約タグを追加します。

    制約タグは、テンプレートが展開される場所を制限するために使用されます。

    1. [デザイン] > [クラウド テンプレート] の順に選択し、テンプレートを開きます。

      このチュートリアルでは、テンプレート名は Development Template です。

    2. [コード] ペインで、テンプレートの YAML を確認します。

      この YAML が、このチュートリアルの開始点です。

      formatVersion: 1
      inputs: {}
      resources:
        Cloud_vSphere_Machine_1:
          type: Cloud.vSphere.Machine
          properties:
            image: centos
            flavor: medium
            networks:
              - network: '${resource.Cloud_NSX_Network_1.id}'
            attachedDisks:
              - source: '${resource.Cloud_vSphere_Disk_1.id}'
        Cloud_vSphere_Disk_1:
          type: Cloud.vSphere.Disk
          properties:
            capacityGb: 5
        Cloud_NSX_Network_1:
          type: Cloud.NSX.Network
          properties:
            networkType: existing
      
    3. ${input.placement} を変数として使用して、制約タグを Cloud_vSphere_Machine_1 リソースに追加します。
      resources:
        Cloud_vSphere_Machine_1:
          type: Cloud.vSphere.Machine
          properties:
            image: centos
            flavor: medium
            constraints: 
              - tag: '${input.placement}'
            networks:
              - network: '${resource.Cloud_NSX_Network_1.id}'
            attachedDisks:
              - source: '${resource.Cloud_vSphere_Disk_1.id}'
    4. [入力] セクションで配置変数を定義します。
      inputs:
        placement:
          type: string
          enum:
            - env:dev
            - env:prod
          default: env:dev
          title: Select Placement for Deployment
          description: Target Environment
    5. 最終的に、YAML が次の例のようになっていることを確認します。
      formatVersion: 1
      inputs:
        placement:
          type: string
          enum:
            - 'env:dev'
            - 'env:prod'
          default: 'env:dev'
          title: Select Placement for Deployment
          description: Target Environment
      resources:
        Cloud_vSphere_Machine_1:
          type: Cloud.vSphere.Machine
          properties:
            image: centos
            flavor: small
            constraints:
              - tag: '${input.placement}'
            networks:
              - network: '${resource.Cloud_NSX_Network_1.id}'
            attachedDisks:
              - source: '${resource.Cloud_vSphere_Disk_1.id}'
        Cloud_vSphere_Disk_1:
          type: Cloud.vSphere.Disk
          properties:
            capacityGb: 5
        Cloud_NSX_Network_1:
          type: Cloud.NSX.Network
          properties:
            networkType: existing
    6. 使用可能なリソースに対してタグ変数を試す場合は、[テスト] をクリックしてから env:dev を選択します。
      展開の配置の選択が入力され、値 env:dev が示されているテスト ダイアログ ボックスのスクリーン ショット

      env:prod を使用してテストを繰り返します。テストが両方とも成功したら、テンプレートを展開して機能することを確認します。

  4. テンプレートを展開して、ワークロード配置をテストします。
    1. クラウド テンプレート デザイナで、[展開] をクリックします。
    2. [展開名] として Deployment Tag Dev と入力し、[次へ] をクリックします。
    3. [展開の配置の選択] ドロップダウン メニューで env:dev を選択し、[展開] をクリックします。
  5. 選択されたリソース プールに、テンプレートによってリソースが展開されたことを確認します。
    1. [リソース] > [展開] の順に選択し、Deployment Tag Dev 展開を見つけます。
    2. 展開の詳細を開き、[トポロジ] をクリックします。
    3. vSphere マシンをクリックし、右側のペインでマシン情報を展開します。
    4. [一般] セクションの [コンピューティング ホスト] の値が、env:dev タグと一致するリソース プールを示していることを確認します。

      この例の値 wid01-clu01 / Development は、選択された制約タグに基づいてワークロードが正しいリソース プールに展開されたことを示しています。


      展開トポロジ画面で vSphere マシンが選択され、右側のペインにコンピューティング ホストを囲むボックスが描かれているスクリーン ショット。
    5. 展開プロセスを繰り返します。今回は env:prod を選択します。

vCenter Server および NSX-T で使用できるラベルとしてのタグの追加

タグを展開に追加して、リソースの管理に使用できます。

この例では、MySQL マシンとネットワークを識別するためのタグを追加します。また、Web ネットワークを識別するタグも追加します。既存のネットワークでのタグの動作はオンデマンド ネットワークでの動作と異なるため、2 つの選択肢があります。

  • 前のセクションで使用した既存のネットワーク プロファイルを使用する場合、NGINX:web タグは NSX-T 内の既存のオブジェクトに追加されません。したがって、NSX-T ではこのタグに関する検証手順は無視できます。
  • オンデマンド ネットワーク プロファイルを作成する場合は、ルーティング/オンデマンド ネットワークを使用するように YAML でネットワークを更新できます。この例では、NSX-T 内の新しいオブジェクトに対する NGINX:web タグを示すために、オンデマンド ネットワークが使用されます。

次の YAML は、ルーティング/オンデマンドの networkType を使用する点を除いて、前の例の YAML と同じです。ここには制約タグが含まれます。

このチュートリアルでは、次のサンプル値を使用します。これらの値は単なる例であることに注意してください。値は環境によって異なります。

formatVersion: 1
inputs:
  placement:
    type: string
    enum:
      - 'env:dev'
      - 'env:prod'
    default: 'env:dev'
    title: Select Placement for Deployment
    description: Target Environment
resources:
  Cloud_vSphere_Machine_1:
    type: Cloud.vSphere.Machine
    properties:
      image: centos
      flavor: small
      constraints:
        - tag: '${input.placement}'
      networks:
        - network: '${resource.Cloud_NSX_Network_1.id}'
      attachedDisks:
        - source: '${resource.Cloud_vSphere_Disk_1.id}'
  Cloud_vSphere_Disk_1:
    type: Cloud.vSphere.Disk
    properties:
      capacityGb: 5
  Cloud_NSX_Network_1:
    type: Cloud.NSX.Network
    properties:
      networkType: routed
      constraints:
        - tag: 'net:od'
      
  1. [デザイン] > [クラウド テンプレート] の順に選択し、テンプレートを開きます。
  2. Cloud_vSphere_Machine_ プロパティで、次のタグを追加します。
            tags: 
            - key: db
              value: mysql
        
  3. 仮想マシン NIC タグを追加します。
            tags: 
            - key: db
              value: mysql
  4. NSX 論理スイッチ/セグメント タグを追加します。
            tags: 
            - key: NGINX
              value: web
  5. YAML が次の例のようになっていることを確認します。
    formatVersion: 1
    inputs:
      placement:
        type: string
        enum:
          - 'env:dev'
          - 'env:prod'
        default: 'env:dev'
        title: Select Placement for Deployment
        description: Target Environment
    resources:
      Cloud_vSphere_Machine_1:
        type: Cloud.vSphere.Machine
        properties:
          image: centos
          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_vSphere_Disk_1:
        type: Cloud.vSphere.Disk
        properties:
          capacityGb: 5
      Cloud_NSX_Network_1:
        type: Cloud.NSX.Network
        properties:
          networkType: routed
          constraints:
            - tag: 'net:od'
          tags: 
            - key: NGINX
              value: web
  6. テンプレートを展開します。

    この例では、Development template w tags という名前を使用します。

  7. 展開内のタグを確認するには、展開を開き、[トポロジ] タブをクリックします。
    1. トポロジ内のマシンをクリックします。
    2. マシンの [一般] セクションを展開し、[タグ] ラベルを確認します。

      タグ値は db:mysql です。

    3. [ネットワーク] セクションを展開し、ネットワークの [タグ] 列を確認します。

      タグ値は db:mysql です。


      展開トポロジ タブでマシンが選択され、右側のペインでタグが強調表示されているスクリーン ショット。
    4. トポロジ内のネットワークをクリックし、[一般] セクションを展開して [タグ] ラベルを確認します。

      タグ値は NGINX:web です。


      展開トポロジ タブでネットワークが選択され、右側のペインでタグが強調表示されているスクリーン ショット。
  8. vCenter Server 内のタグを確認するには、このワークロードが展開された vCenter Server インスタンスにログインします。
    1. 仮想マシンを見つけ、[タグ] ペインを確認します。
      vCenter Server 内の仮想マシンで [タグ] ペインが強調表示されているスクリーン ショット。
  9. NSX-T 内のタグを確認するには、このネットワークが構成されている NSX-T インスタンスにログインします。

    ネットワーク タグとマシン タグが NSX-T に追加されます。

    1. 右上隅の [ポリシー] をクリックします。
    2. NIC に関連付けられている db:mysql タグを確認するには、mysql を検索します。
    3. [論理ポート] をクリックし、展開された vSphere マシンを確認します。
    4. [タグ] 列で番号をクリックします。

      [スコープ] は db、[タグ] は mysql です。


      タグが強調表示された、仮想マシンの論理ポートのスクリーン ショット。
    5. セグメントに関連付けられている NGINX:web タグを確認するには、ネットワークを検索します。

      この例では、ネットワーク名は Cloud_NSX_Network_1-mcm1292-163799928607 です。

    6. [セグメント] 行で、[タグ] 列の番号をクリックします。

      [スコープ] は NGINX、[タグ] は web です。


      タグが強調表示された、ネットワーク セグメントのスクリーン ショット。