你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:为 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 容器注册表 (ACR) 项目存储资源的名称。 如果不存在,则创建一个。 |
location | 创建资源时要使用的 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) RET 的 Bicep 模板,用于部署 NF。 运行发布命令时,此模板将转换为 ARM 模板并上传到项目存储 |
nsd-cli-output/base | |
deploy.bicep | 用于创建此 NSD 组的所有 NSDV 共享的发布者、存储帐户和网络服务设计组的 Bicep 模板 |
nsd-cli-output/nsdDefinition | |
deploy.bicep | 用于创建网络服务设计版本 (NSDV) 的 Bicep 模板。 此模板包含子资源元素模板,这些模板取自 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 | 配置组架构。 |