クラウド管理者またはプロジェクト管理者は、環境内のリソースの命名規則を設定し、展開されるリソースがユーザーの関与なしでその規則に従うようにすることができます。Cloud Assembly 内の一部またはすべての展開で使用される命名テンプレートを作成できます。

最初に、プロジェクト レベルのカスタム名、または組織レベルの名前を作成します。プロジェクト レベルのカスタム名は、組織レベルの名前よりも優先されます。この例では、組織の簡単なカスタム名から始めて、次にプロジェクト レベルの命名を追加します。

注意: 1 つのプロジェクトにつき 2,000 以上のリソースを同時に展開し、カスタム名を適用している環境で、クラウド テンプレートが作成されているか、API を使用している場合に、これらのリソースの一部を展開すると、 Retries exhausted エラーが発生することがあります。このシナリオが一般に生じる場合は、このエラーが発生するプロジェクトまたは組織に新しいカスタム名を適用しないでください。代わりに、カスタム命名オプションではなく、デフォルトのシステム命名を使用する必要があります。

最初に行う作業

  • カスタム命名機能を説明するために、これらのユースケースでは 2 つのプロジェクトが必要です。1 つは Sales という名前で、もう 1 つは Marketing という名前です。プロジェクトの作成の詳細については、Cloud Assembly 開発チームのプロジェクトを追加する方法を参照してください。
  • 組織テンプレートとプロジェクト テンプレートに関する選択を行う際は、どの命名規則が優先されるかを必ず把握してください。展開時のリソース命名の優先順位を参照してください。
  • テンプレート形式を使用してテンプレートを作成すると、使用可能なプロパティが示されます。詳細については、テンプレート形式の操作を参照してください。

組織レベルのカスタム テンプレートの作成

プロジェクト レベルのテンプレートがない展開用にデフォルトのカスタム名テンプレートが必要な場合は、スコープ内で組織化されたテンプレートを作成します。

  1. [インフラストラクチャ] > [管理] > [カスタム名] の順に選択して、[新しいカスタム名] をクリックします。
  2. [名前] を入力します。

    この例では、組織のプリフィックスおよびタイムスタンプ を使用します。

  3. スコープとして [組織] を選択します。
  4. [新規命名テンプレート] をクリックして、次のオプションを構成します。
    オプション サンプルの値
    リソース タイプ マシン
    テンプレート形式 mcm-${timestamp}-${######}
    開始カウンタ値 1
    増分ステップ 1

    この構成では、すべてのプロジェクトにおけるすべての展開が、この開始点から増分されます。

    この例では、開始カウンタが 1 で増分が 1 のため、最初の展開に付けられる番号は 2 です。展開を 1 から開始する必要がある場合は、開始カウンタをゼロに、増分を 1 に設定します。

  5. [追加] をクリックします。
  6. 次の例を使用して、他のリソース タイプのテンプレートの追加を続行します。
    リソース タイプ名 命名テンプレートの形式
    マシン mcm-${timestamp}-${##}
    ネットワーク ntw-${timestamp}-${##}
    ストレージ stg-${timestamp}-${##}
    ロード バランサ ldb-${timestamp}-${##}
    リソース グループ rsg-${timestamp}-${##}
    ゲートウェイ gtw-${timestamp}-${##}
    NAT nat-${timestamp}-${##}
    セキュリティ グループ scg-${timestamp}-${##}
  7. [作成] をクリックします。
  8. リソース タイプが定義されているテンプレートを展開して、名前テンプレートをテストします。
    組織レベルのカスタム名を示す展開済みリソース。

高度なパターン一致を使用したプロジェクト レベルのカスタム テンプレートの作成

さまざまなプロジェクトに割り当てることができる単一のカスタム名テンプレートを作成できます。プロジェクトごとに異なる番号付けの開始点を設定するには、詳細オプションを使用します。

この例では、マシン リソースを使用しています。

  1. [インフラストラクチャ] > [管理] > [カスタム名] の順に選択して、[新しいカスタム名] をクリックします。
  2. [名前] を入力します。

    この例では、高度な番号付けを使用したプロジェクト名 を使用しています。

  3. スコープとして [プロジェクト] を選択します。
  4. [新規命名テンプレート] をクリックして、次のオプションを構成します。
    オプション サンプルの値
    リソース タイプ マシン
    テンプレート形式 ${project.name}-${######}
    開始カウンタ値 1
    増分ステップ 1

    この構成では、割り当てられたプロジェクトにおける展開が、この開始点から増分されます。

    この例では、開始カウンタが 1 で増分が 1 のため、最初の展開に付けられる番号は 2 です。展開を 1 から開始する必要がある場合は、開始カウンタをゼロに、増分を 1 に設定します。開始値を 1 にすると、高度な一致パターン値で上書きされない限り、ProjectA は 2 で開始し、ProjectB は 2 で開始します。

  5. デフォルトの組織命名テンプレートにさらに改良を加えるには、[詳細] をクリックして、[一致パターンの追加] をクリックします。

    別の命名パターンを設定してカウンタを別の番号から開始することも、パターンごとに番号を 1 にリセットすることもできます。たとえば、Sales プロジェクトの番号は 100 から開始し、Marketing プロジェクトの番号は 200 から開始することができます。

    1. Sales プロジェクトのパターンを入力します。
      オプション サンプルの値
      パターン テキスト Sales -
      開始カウンタ値 100
    2. Marketing プロジェクトのパターンを入力します。
      オプション サンプルの値
      パターン テキスト Marketing-
      開始カウンタ値 200
  6. [追加] をクリックします。
  7. 必要に応じて、他のリソース タイプのテンプレートの追加を続行します。
  8. [プロジェクトの割り当て] をクリックして、Sales プロジェクトと Marketing プロジェクトを追加します。
  9. [作成] をクリックします。
  10. 最初に Sales プロジェクトにあるクラウド テンプレートを展開し、次に Marketing プロジェクトにあるクラウド テンプレートを展開して、名前テンプレートをテストします。
    Sales プロジェクトのプロジェクト レベルのカスタム名を示す展開済みリソース。

カスタム プロパティとプロジェクト固有の値を持つカスタム名の例

テンプレート形式の自動入力オプションで指定されるプロパティに加えて、カスタム プロパティを使用できます。カスタム名でカスタム プロパティを使用するには、プロパティ グループにカスタム プロパティを定義する必要があります。

クラウド テンプレートのカスタム プロパティ値は、カスタム名の同じプロパティ値よりも優先されます。

この例では、プロパティとして costCenter、Sales プロジェクトの値として SalesCost、Marketing プロジェクトの値として MktCost を使用しています。

  1. costingPG という名前のプロパティ グループを作成します。
    1. [インフラストラクチャ] > [デザイン] > [プロパティ グループ] の順に選択して、[新規プロパティ グループ] をクリックします。
    2. [入力値] をクリックします。
    3. [名前]costingPG を入力します。
    4. [スコープ] では、[任意のプロジェクトで使用可能] を選択します。
    5. [新規プロパティ] をクリックし、次の値を構成してから、名前として costCenter を入力します。
      オプション サンプル値
      名前 costCenter
      タイプ 文字列
      デフォルト値 research
    6. [作成] をクリックします。
    7. [作成] をクリックすると、新しいプロパティ グループが保存されます。
  2. Sales プロジェクトと Marketing プロジェクトのカスタム プロパティを構成します。

    これらの手順によって、Sales プロジェクトのプロセスが示されます。この手順を繰り返して、Marketing プロジェクトの値を使用できます。

    • Sales プロパティ名:costingPG.costCenter。値:SalesCost。
    • Marketing プロパティ名:costingPG.costCenter。値:MktCost。
    1. [インフラストラクチャ] > [管理] > [プロジェクト] の順に選択して、Sales プロジェクトを開きます。
    2. [プロビジョニング] タブをクリックして、[カスタム プロパティ] セクションを探します。
    3. プロパティ名として costingPG.costCenter、その値として SalesCost を入力します。
      プロジェクトの [プロビジョニング] タブの [カスタム プロパティ] セクションに表示されたカスタム プロパティ costingPG.costCenter および SalesCost 値。
    4. [保存] をクリックします。
    5. Marketing プロジェクトで MktCost とプロパティ値を使用してこのプロセスを繰り返します。
  3. プロジェクト レベルのカスタム名を作成します。

    この例では、高度な例で使用されるのと同じプロジェクトを使用します。カスタム名は、一度に 1 つのプロジェクトにのみ割り当てることができます。この例の結果をテストするには、新しいプロジェクトにカスタム名を適用するか、[高度な番号付けを使用したプロジェクト名] の例から Sales プロジェクトと Marketing プロジェクトを削除します。

    この例では、セールス プロジェクトとマーケティング プロジェクトをまだ割り当てていないことを前提としています。

    1. [インフラストラクチャ] > [管理] > [カスタム名] の順に選択して、[新しいカスタム名] をクリックします。
    2. [名前] として プロジェクト名および costingPG を入力します。
    3. スコープとして [プロジェクト] を選択します。
    4. [新規命名テンプレート] をクリックして、次のオプションを構成します。
      表 1.
      オプション
      リソース タイプ マシン
      テンプレート形式 ${project.name}-{costingPG.costCenter}-${######}
      開始カウンタ値 1
      増分ステップ 1
    5. [追加] をクリックします。
    6. [プロジェクトの割り当て] をクリックして、Sales プロジェクトと Marketing プロジェクトを追加します。
    7. [作成] をクリックします。
  4. 最初に Sales プロジェクトにあるクラウド テンプレートを展開し、次に Marketing プロジェクトにあるクラウド テンプレートを展開して、名前テンプレートをテストします。
    図 1. Sales プロジェクトのリソース名

    リソース名 Sales-SalesCost-000002 を表示する展開の詳細。
    図 2. Marketing プロジェクトのリソース名

    リソース名 Marketing-MktCost-000002 を表示する展開の詳細。

プロパティ グループとクラウド テンプレートへのユーザー入力を使用したカスタム名の例

この例では、テンプレートへのユーザー入力に基づいてカスタム名を作成する方法を示します。このクラウド テンプレートでは、オペレーティング システムとサイズの 2 つのユーザー入力を定義します。ユーザー入力の 1 つである mktSite では、site.siteCode カスタム プロパティを使用してユーザー入力を受け入れ、それをクラウド テンプレートに追加します。

  1. マーケティング プロジェクトのカスタム プロパティを定義します。
    1. [インフラストラクチャ] > [デザイン] > [プロパティ グループ] の順に選択して、[新規プロパティ グループ] をクリックします。
    2. [入力値] をクリックします。
    3. プロパティ グループに名前を付けて、説明を入力します。
      オプション
      名前 site
      範囲

      任意のプロジェクトで使用可能。

      プロパティがカスタム名テンプレート形式で使用できるように、プロパティ グループは一般公開されている必要があります。

    4. [新しいプロパティ] をクリックして、次の値を構成します。
      オプション
      名前 siteCode
      タイプ 文字列
      デフォルト値 West
      [その他のオプション] > [列挙値]

      East、West、North、South に個別の値を入力します。

      これらの値は、ユーザーが選択できるサイト コードを表します。

  2. カスタム命名テンプレートを作成します。
    1. [インフラストラクチャ] > [カスタム名] > [新しいカスタム名] の順に選択します。
    2. [名前]Site-OS-Size for Marketing Project と入力します。
    3. [プロジェクト] を選択します。

      組織スコープのカスタム名がすでにある場合は、[プロジェクト] が選択され、変更できません。

    4. [新規命名テンプレート] をクリックして、次のオプションを構成します。
      オプション
      リソース タイプ マシン
      テンプレート形式

      ${site.siteCode}-${resource.name}-${######}

      site.siteCode プロパティは、前の手順で定義したプロパティです。resource.name は、次の手順でクラウド テンプレート内で定義されます。

      開始カウンタ値 1
      増分ステップ 1
  3. テンプレートでユーザー入力を定義します。

    この例で示しているユーザー入力には、オペレーティング システムとサイズ、および site.siteCode カスタム プロパティに基づくユーザー入力が含まれます。

    この手順のクラウド テンプレートは、デモ用の簡単なものです。この例は、既存のテンプレートの 1 つに適用できます。

    1. [デザイン] > [新規作成元] > [空白のキャンバス] の順に選択します。
    2. [名前]Marketing Template と入力します。
    3. [プロジェクト] リストで、Marketing を選択します。
    4. [作成] をクリックします。
    5. クラウド テンプレートのコードを入力するか、次のサンプル コードを使用します。

      ユーザー入力はサイズと OS であることに注意してください。フレーバー (${input.size}) およびイメージ (${input.OS}) マシン プロパティの各入力に応じて変数を構成します。最後に、name プロパティを使用して、カスタム命名テンプレートで使用できるリソース名 (${input.OS}-${input.size}) を作成します。

      formatVersion: 1
      inputs:
        size:
          type: string
          enum:
            - small
            - medium
        OS:
          type: string
          enum:
            - centos
            - ubuntu
      resources:
        Cloud_vSphere_Network_1:
          type: Cloud.vSphere.Network
          properties:
            networkType: existing
        Cloud_Machine_1:
          type: Cloud.Machine
          properties:
            image: ${input.OS}
            flavor: ${input.size}
            name: ${input.OS}-${input.size}
            networks:
              - network: ${resource.Cloud_vSphere_Network_1.id}
      
    6. site.siteCode カスタム プロパティをユーザー入力として追加するには、右側のペインで [入力] タブをクリックし、次のオプションを構成します。
      オプション
      名前 mktSite
      表示名 サイトの選択
      タイプ オブジェクト
      オブジェクト タイプの選択 プロパティ グループ
      既存のプロパティ グループから選択 site
    7. [コード] タブで、mktSite ユーザー入力が追加されていることを確認してから、カスタム プロパティを含めるように YAML を更新します。

      たとえば、site.siteCode: ${input.mktSite.siteCode} を YAML に追加します。

      formatVersion: 1
      inputs:
        size:
          type: string
          title: Select the machine size
          enum:
            - small
            - medium
        OS:
          type: string
          title: Select an operating system
          enum:
            - centos
            - ubuntu
        mktSite:
          type: object
          $ref: /ref/property-groups/site
          title: Select a site
      resources:
        Cloud_vSphere_Network_1:
          type: Cloud.vSphere.Network
          properties:
            networkType: existing
        Cloud_Machine_1:
          type: Cloud.Machine
          properties:
            image: ${input.OS}
            flavor: ${input.size}
            name: ${input.OS}-${input.size}
            networks:
              - network: ${resource.Cloud_vSphere_Network_1.id}
            site.siteCode: ${input.mktSite.siteCode}
  4. テンプレートを展開し、カスタム マシン名を確認します。

    West がデフォルト値であるため、West 以外のサイトを選択します。


    リソース名 East-centos-small-000011 を表示する展開の詳細。

展開時のリソース命名の優先順位

次のルールに従って展開されたリソースに名前が適用されるときは、カスタム命名の構成方法に基づきます。

通常は、一般的な組織レベルの命名テンプレートを定義してから、プロジェクト管理のニーズに応じて、1 つ以上のプロジェクト レベルのテンプレートを作成します。

カスタム命名シナリオ 優先順位
カスタム名なし
  • すべての展開コンポーネントで、システムによって展開リソース名が作成されます。
組織レベルの名前
  • カスタム命名プロパティの値と文字列をすべての展開に適用します。
  • 展開するプロジェクトにプロジェクト レベルのカスタム名があると、組織レベルの名前はオーバーライドされます。
  • 組織レベルのカスタム名が定義されていない場合は、割り当てられたプロジェクトにプロジェクト レベルの名前が使用されます。
  • 組織レベルの名前もプロジェクト レベルのカスタム名も定義されていない場合は、システムによってリソース名が作成されます。
プロジェクト レベルの名前
  • プロジェクト レベルのカスタム命名プロパティの値と文字列を、割り当てられたすべてのプロジェクトに適用します。
  • 組織レベルの名前がある場合は、プロジェクト レベルの名前が組織名よりも優先されます。
  • 組織レベルのカスタム名が定義されていない場合は、割り当てられたプロジェクトにプロジェクト レベルの名前が使用されます。
  • 組織レベルの名前もプロジェクト レベルのカスタム名も定義されていない場合は、システムによってリソース名が作成されます。

テンプレート形式の操作

テンプレート形式を定義するときは、文字列とプロパティを使用できます。プロパティを使用する主なメリットは、複数のプロジェクトの形式と同じプロパティを使用できることです。ただし、その名前は値プロパティから取得されるため、プロジェクト、クラウド テンプレート、プラットフォームなど、プロパティによって異なる可能性があります。

テンプレート形式のプロパティには、ここで説明する事前提供済みのプロパティと、[デザイン] > [プロパティ グループ] で定義したカスタム プロパティが含まれます。

  • 有効な文字
    • スペースは使用できません。
    • 可読性のために、特殊文字を使用してプロパティを区切ることができます。使用できる文字は、_ (アンダースコア)と - (ダッシュ)です。
  • 指定されたプロパティ
    表 2. 指定されたプロパティ
    プロパティ 説明
    endpoint

    説明、入力 (AWS)、名前などのクラウド アカウント情報。エンドポイントはマシンにのみ適用されます。

    • ${endpoint.desc}
    • ${endpoint.endpointType}
    • ${endpoint.name}
    project

    プロジェクト情報。

    • ${project.desc}
    • ${project.name}
    リソース

    クラウド テンプレート、クラウド テンプレート内のカスタム プロパティ、またはプロジェクトからのリソース名が含まれます。

    • ${resource.name}
    timestamp

    展開の日時。数値は、yyyy mm dd hh mm ss からスペースを削除した値です。たとえば、20210825120345 となります。

    • ${timestamp}
    user

    • ${user}
    username

    • ${userName}
    ######

    番号プロパティ。

    長さは最大 19 桁です。

    2 桁の ## を使用する場合、番号付けが最初からやり直しになる前の最大数は 99 です。### を使用した場合、999 まで達すると最初からやり直しになります。

    • ${####}
    カスタム プロパティ

    カスタム プロパティは、プロパティ グループの一部である必要があります。カスタム名のプロパティには、プロパティ グループ名とプロパティが含まれます。

    • ${propertygroup.property}

カウンタの操作

vRealize Automation の単一ノード インスタンスのカウンタは、カスタム命名テンプレートで定義した値に基づいて、ターゲット組織とプロジェクトにテンプレートが適用されるたびに増加します。

マルチ ノード環境では、テンプレートの値に基づいてカウンタが増加します。競合が発生した場合、値の適用は 3 回試行されます。競合を解決するための試行回数が 3 回に達すると、申請は失敗する可能性があります。この場合、番号付けにギャップが生じることがあります。

他の理由で番号付けにギャップが生じることもあります。たとえば、3 台の仮想マシンを展開している場合を考えます。2 台目のマシンがプロビジョニング中に失敗した場合を仮定します。この場合、展開された仮想マシンのカウンタは vm-01 と vm-03 になり、vm-02 は含まれません。

カスタム命名を使用せずにデフォルトの命名方法を利用する場合、カウンタ値のプールは次のようにノードに予約されます。

  • ノード 1:1 ~ 300
  • ノード 2:301 ~ 600
  • ノード 3:601 ~ 900

これは、マルチノード環境の場合、予期しない値になる可能性があることを意味します。この値は、申請を処理するノードによって異なります。

カスタム名を適用できるリソース タイプのリスト

カスタム名は、1 つのリソース タイプに対して作成することも、すべてのリソース タイプに対して作成することもできます。このテンプレートを使用するのは、カスタム名を持つリソース タイプのみです。その他のすべてのリソースは、デフォルト テンプレートを使用します。

たとえば、マシン専用のプロジェクト レベルのカスタム名を作成し、他のすべてのリソース タイプに組織レベルの名前がある場合、マシン リソースにはプロジェクト名が適用され、他のすべてのリソースでは組織名が使用されます。

表 3. リソースのサンプル リスト
カスタム命名リソース タイプ 展開リソース タイプ
マシン
  • Cloud.Machine
  • Cloud.vSphere.Machine
  • Cloud.AWS.EC2.Instance
  • Cloud.GCP.Machine
  • Cloud.Azure.Machine
ネットワーク
  • Cloud.Network
  • Cloud.vSphere.Network
  • Cloud.NSX.Network
ストレージ
  • Cloud.Volume
  • Cloud.vSphere.Disk
  • Cloud.AWS.Volume
  • Cloud.GCP.Disk
  • Cloud.Azure.Disk
ロード バランサ
  • Cloud.LoadBalancer
  • Cloud.NSX.LoadBalancer
リソース グループ
  • Cloud.Azure.ResourceGroup
ゲートウェイ
  • Cloud.NSX.Gateway
NAT
  • Cloud.NSX.NAT
セキュリティ グループ
  • Cloud.SecurityGroup

カスタム名テンプレートの削除

テンプレートを削除しても、現在展開されているリソースの命名には影響しません。ただし、割り当て済みのすべてのプロジェクトへの影響を確認するまでは、カスタム名テンプレートを削除しないでください。

命名テンプレートからプロジェクトを削除できます。このテンプレートは、他のプロジェクトでも引き続き機能します。

カスタム名によるプロジェクトの削除

プロジェクトにカスタム命名テンプレートが適用されている場合は、プロジェクトを削除する前に、まずテンプレートからプロジェクトを削除する必要があります。