做為雲端或專案管理員,您對環境中的資源有一個指定的命名慣例,並且您希望已部署的資源遵循這些慣例,而無需使用者互動。可以在 Cloud Assembly 中為部分或所有部署建立全域命名範本。

首先,您可以建立專案層級的自訂名稱或組織層級名稱。專案層級的自訂名稱優先於組織層級名稱。此範例從簡單的組織自訂名稱開始,然後新增專案層級的命名。

注意: 如果您具有雲端範本或使用 API,若為每個專案同時部署 2000 個或更多資源並且套用自訂名稱,則在部署其中某些資源時可能會出現 Retries exhausted 錯誤。如果這種情況很常見,則不應將新的自訂名稱套用至發生此情況的專案或組織。應使用預設系統命名,而不是自訂命名選項。

首要事項

建立組織層級的自訂範本

如果希望為沒有專案層級範本的部署使用預設自訂名稱範本,請建立組織範圍的範本。

  1. 選取基礎結構 > 管理 > 自訂名稱,然後按一下新增自訂名稱
  2. 輸入名稱

    此範例使用 Prefix and Timestamp for Org

  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. 輸入名稱

    此範例使用 Project Name with Advanced Numbering

  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 作為內容,SalesCost 作為 Sales 專案的值,MktCost 作為 Marketing 專案的值。

  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. 建立專案層級的自訂名稱。

    此範例使用與進階範例相同的專案。一次只能將自訂名稱指派給一個專案。若要測試此範例的結果,可以將自訂名稱套用至新專案,也可以從 Project Name with Advanced Numbering 範例中移除 Sales 和 Marketing 專案。

    此範例假設您尚未指派 Sales 和 Marketing 專案。

    1. 選取基礎結構 > 管理 > 自訂名稱,然後按一下新增自訂名稱
    2. 輸入 Project Name and 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。

具有內容群組和雲端範本使用者輸入的自訂名稱範例

此範例顯示了如何根據範本中的使用者輸入建立自訂名稱。可以在雲端範本中定義兩個使用者輸入 (作業系統和大小)。其中一個使用者輸入 mktSite 使用 site.siteCode 自訂內容,該內容接受使用者輸入,您將其新增到雲端範本。

  1. 定義 Marketing 專案的自訂內容。
    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. 選取設計 > 新增自 > 空白畫布
    2. 輸入名稱 Marketing Template
    3. 專案清單中,選取 Marketing
    4. 按一下建立
    5. 輸入雲端範本的代碼或使用以下範例代碼。

      請注意,使用者輸入適用於大小和作業系統。為類型模板 (${input.size}) 和映像 (${input.OS}) 機器內容中的每個輸入設定變數。最後,使用名稱內容建構可在自訂命名範本中使用的資源名稱 (${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
      顯示名稱 選取站台
      類型 Object
      選取物件類型 內容群組
      從現有的內容群組中選取 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 以外的站台。


    cloud_machine 部署詳細資料,其中顯示資源名稱為 East-centos-small-000011。

部署時的資源命名優先順序

根據設定自訂命名的方式,這些名稱將根據以下規則套用至已部署的資源。

一般做法是定義一個一般的組織層級命名範本,然後根據專案管理需求建立一或多個專案層級範本。

自訂命名案例 優先順序
無自訂名稱
  • 系統會為所有部署元件建立部署資源名稱。
組織層級名稱
  • 將自訂命名內容值和字串套用至所有部署。
  • 如果部署專案具有專案層級的自訂名稱,則會覆寫組織層級的名稱。
  • 如果未定義組織層級的自訂名稱,則將專案層級名稱用於指派的專案。
  • 如果既未定義組織層級的自訂名稱,也未定義專案層級的自訂名稱,則系統將建立資源名稱。
專案層級名稱
  • 將專案層級的自訂命名內容值和字串套用至所有指派的專案。
  • 如果存在組織層級名稱,則專案層級名稱優先於組織名稱。
  • 如果未定義組織層級的自訂名稱,則將專案層級名稱用於指派的專案。
  • 如果既未定義組織層級的自訂名稱,也未定義專案層級的自訂名稱,則系統將建立資源名稱。

使用範本格式

定義範本格式時,可以使用字串和內容。使用內容的主要優點是,可以將相同的內容作為多個專案的格式使用,但名稱衍生自值內容,值內容可能會因專案、雲端範本、平台和其他內容而異。

範本格式內容包括提供的內容 (在此處進行了討論),以及您在設計 > 內容群組中定義的任何自訂內容。

  • 有效字元
    • 不允許使用空格。
    • 為了便於閱讀,可以使用特殊字元分隔內容。允許的字元包括 _ (底線) 和 - (破折號)。
  • 提供的內容
    表 2. 提供的內容
    內容 說明
    端點

    雲端帳戶資訊,例如說明 (輸入 (AWS)) 或名稱。端點僅適用於機器。

    範例

    • ${endpoint.desc}
    • ${endpoint.endpointType}
    • ${endpoint.name}
    專案

    專案資訊。

    範例

    • ${project.desc}
    • ${project.name}
    對於每個範圍層級的資源類型,

    包括雲端範本中的資源名稱、雲端範本或專案中的自訂內容。

    範例

    • ${resource.name}
    時間戳記

    部署的日期和時間。數值為 yyyy mm dd hh mm ss,但不含空格。例如,20210825120345。

    範例

    • ${timestamp}
    使用者

    範例

    • ${user}
    username

    範例

    • ${userName}
    ######

    數字內容。

    長度上限為 19 位數。

    如果使用兩位數 ##,則編號開始之前的最大數字為 99。如果使用 ###,編號將在 999 之後重新開始。

    範例

    • ${####}
    自訂內容

    自訂內容必須是內容群組的一部分。自訂名稱中的內容包括內容群組名稱和內容。

    範例

    • ${propertygroup.property}

使用計數器

vRealize Automation 的單節點執行個體中,計數器將根據您在自訂命名範本中定義的值以及隨著這些值在目標組織和專案中的套用而遞增。

在多節點環境中,計數器會根據範本中的值嘗試遞增。如果遇到爭用情況,則會嘗試套用編號三次。請求有可能在第三次嘗試後失敗以解決爭用情況。在這種情況下,編號可能會不連續。

您可能也會遇到因其他原因而導致編號不連續的情況。例如,部署三個虛擬機器。第二個機器在佈建期間失敗。已部署虛擬機器的計數編號為 vm-01 和 vm-03,缺少 vm-02。

如果您不使用自訂命名,而更願意依賴預設命名原則,則計數器值集區將預留給節點,如下所示:

  • 節點 1:1-300
  • 節點 2:301-600
  • 節點 3:601-900

這意味著,在多節點環境中,編號可能看起來不可預測。編號取決於處理請求的節點。

可套用自訂名稱的資源類型清單

您只能為一種資源類型或所有資源類型建立自訂名稱。只有具有自訂名稱的資源類型才使用範本。所有其他資源均使用預設範本。

例如,如果僅為機器建立專案層級的自訂名稱,並且所有其他資源類型具有組織層級名稱,則機器資源將採用專案名稱,所有其他資源使用組織名稱。

表 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

刪除自訂名稱範本

刪除範本不會影響目前部署的資源命名。但是,在驗證對所有已指派專案的影響之前,不得刪除自訂名稱範本。

您可以從命名範本中移除專案。該範本將繼續用於其他專案。

刪除具有自訂名稱的專案

如果專案套用了自訂命名範本,則必須先從範本中移除專案,然後才能刪除該專案。