快速入門:為 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_name
和 publisher
欄位的發行者名稱 (後者位於 resource_element_templates
陣列中)。
如果您已使用不同的資源群組名稱,請更新 publisher_resource_group_name
和 publisher_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 | 組態群組結構描述。 |