共用方式為


快速入門:為 Ubuntu 虛擬機器 (VM) 設計網路服務設計 (NSD) 作為虛擬化網路功能 (VNF)

本快速入門說明如何使用 az aosm Azure CLI 延伸模組來建立及發佈基本網路服務設計。

必要條件

需要具作用中訂用帳戶的 Azure 帳戶。 如果您沒有 Azure 訂用帳戶,請在開始之前遵循這裡的指示 (開始免費使用) 建立帳戶。

您必須遵循快速入門:將 Ubuntu 虛擬機器 (VM) 發佈為虛擬網路功能 (VNF) 中的必要條件。

建立輸入檔

建立用於發佈網路服務設計的輸入檔。 執行下列命令來產生網路服務設計 (NSD) 的輸入組態檔。

az aosm nsd generate-config

當您執行此命令時,會產生 nsd-input.jsonc 檔案。

注意

編輯 nsd-input.jsonc 檔案,將其取代為範例中顯示的值。 移除 resource_element_type 設定為 ArmTemplate 的區段。 這是為了將基礎結構 (例如 VNet) 新增至更複雜的 NSD,本快速入門中不需要此範例。 將該檔案儲存為 input-vnf-nsd.jsonc

如果您在發佈 NFDV 時變更了發行者的名稱,請使用 publisher_namepublisher 欄位的發行者名稱 (後者位於 resource_element_templates 陣列中)。

如果您已使用不同的資源群組名稱,請更新 publisher_resource_group_namepublisher_resource_group 欄位 (後者位於 resource_element_templates 陣列中)。

{
  // Azure location to use when creating resources e.g uksouth
  "location": "uksouth",
  // Name of the Publisher resource you want your definition published to.
  // Will be created if it does not exist.
  "publisher_name": "ubuntu-publisher",
  // Resource group for the Publisher resource.
  // You should create this before running the publish command.
  "publisher_resource_group_name": "ubuntu-publisher-rg",
  // Name of the ACR Artifact Store resource.
  // Will be created if it does not exist.
  "acr_artifact_store_name": "ubuntu-acr",
  // Network Service Design (NSD) name. This is the collection of Network Service Design Versions. Will be created if it does not exist.
  "nsd_name": "ubuntu-nsd",
  // Version of the NSD to be created. This should be in the format A.B.C
  "nsd_version": "1.0.0",
  // Optional. Description of the Network Service Design Version (NSDV).
  "nsdv_description": "Plain ubuntu VM",
  // List of Resource Element Templates (RETs).
  // There must be at least one NF RET.
  // ArmTemplate RETs are optional. Delete if not required.
  "resource_element_templates": [
      {
        // Type of Resource Element. Either NF or ArmTemplate
        "resource_element_type": "NF",
        "properties": {
            // The name of the existing publisher for the NSD.
            "publisher": "ubuntu-publisher",
            // The resource group that the publisher is hosted in.
            "publisher_resource_group": "ubuntu-publisher-rg",
            // The name of the existing Network Function Definition Group to deploy using this NSD.
            // This will be the same as the NF name if you published your NFDV using the CLI.
            "name": "ubuntu-vm",
            // The version of the existing Network Function Definition to base this NSD on.
            // This NSD will be able to deploy any NFDV with deployment parameters compatible with this version.
            "version": "1.0.0",
            // The region that the NFDV is published to.
            "publisher_offering_location": "uksouth",
            // Type of Network Function. Valid values are 'cnf' or 'vnf'.
            "type": "vnf"
        }
    }
  ]
}
變數 描述
publisher_name 您想要定義發佈至其中的發佈者資源名稱。 如果不存在,則會建立。
publisher_resource_group_name 發行者資源的資源群組。 如果不存在,則會建立。
acr_artifact_store_name Azure Container Registry (ACR) 成品存放區資源的名稱。 如果不存在,則會建立。
位置 建立資源時要使用的 Azure 位置。
network-functions publisher:發行此網路功能定義版本 (NFDV) 所使用的發行者名稱。
publisher_resource_group:在其中裝載發佈者的資源群組。
name:要使用此 NSD 部署的現有網路功能定義群組的名稱。
version:此 NSD 所基於的現有網路功能定義的版本。 此 NSD 能夠部署任何具有與此版本相容的部署參數的 NFDV。
publisher_offering_location:將 NFDV 發佈到其中的區域。
type:網路功能的類型。 有效值為 cnf 或 vnf。
nsd_name 網路服務設計群組名稱。 網路服務設計版本的集合。 如果不存在,則會建立。
nsd_version 要建立的 NSD 版本。 格式應為 A.B.C.
nsdv_description NSDV 的描述。

建置網路服務設計 (NSD)

使用下列命令來起始網路服務設計 (NSD) 的建置程序:

az aosm nsd build --config-file input-vnf-nsd.jsonc

建置程序完成後,請檢閱以下所產生的檔案以深入了解 NSD 的架構和結構。

這些檔案會在名為 nsd-cli-output 的子目錄中建立:

目錄 / 檔案 描述
nsd-cli-output/artifactManifest
deploy.bicep 這個 Bicep 範本用來建立成品資訊清單,並填入輸入檔中的成品
nsd-cli-output/artifacts
artifacts.json 要於發佈時上傳的成品清單 (影像和 ARM 範本)。 與成品資訊清單相互關聯
<nf-name>.bicep 輸入檔中所提供用於部署 NF 每個網路功能 (NF) RET 的 Bicep 範本。 當您執行發佈命令時,此範本會轉換成 ARM 範本,並上傳至成品存放區
nsd-cli-output/base
deploy.bicep 這個 Bicep 範本用來建立此 NSD 群組中所有 NSDV 所共用的發行者、儲存體帳戶和網路服務設計群組
nsd-cli-output/nsdDefinition
deploy.bicep 這個 Bicep 範本用來建立網路服務設計版本 (NSDV)。 此範本包含子資源元素範本,這些範本取自 nsd-input.jsonc 檔案中所定義的已發佈 NF 或 ARM 範本 (適用於基礎結構)
config-group-schema.json 此 NSDV 中所有 NF 的合併組態群組結構描述。 此結構描述會在將 NSDV 部署為站台網路服務 (SNS) 時,定義操作員在組態群組值中必須提供的輸入。
<nf-name>-mappings.json 將操作員所提供的組態群組值對應至 NSDV 中所定義部署參數的檔案。 NSDV 中每個 NF 都有一個
nsd-cli-output
all_deploy.parameters.json 所有 NF 部署參數的超集,提供單一檔案來自訂資源名稱。 建置命令輸出至此檔案的值取自 nsd-input.jsonc 檔案。 您可以先編輯此檔案中的值,然後再執行發佈,例如發佈至不同的位置或使用不同的發行者名稱
index.json 發佈資源時,內部使用的檔案。 不要編輯

發佈網路服務設計 (NSD)

若要發佈網路服務設計 (NSD) 及其相關聯的成品,請發出下列命令:

az aosm nsd publish --build-output-folder nsd-cli-output

瀏覽至發佈者資源群組以觀察並檢閱所產生的資源和成品。

系統會建立下列資源:

資源名稱 資源類型
ubuntu-nsd 網路服務設計。
1.0.0 (ubuntu-nsd/1.0.0) 網路服務設計版本。
ubuntu-nsd-nsd-manifest-1-0-0 發行者成品資訊清單。
ConfigGroupSchema 組態群組結構描述。

下一步