你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:将 Ubuntu 虚拟机 (VM) 发布为虚拟化网络功能 (VNF)
本快速入门介绍了如何使用 az aosm
Azure CLI 扩展创建和发布基本网络功能定义。 其目的是演示发布服务器 Azure 运营商服务管理器 (AOSM) 资源的工作流。 此处介绍的基本概念旨在帮助用户构建更令人兴奋的服务。
先决条件
需要一个具有活动订阅的 Azure 帐户。 如果没有 Azure 订阅,请在开始之前按照此处的说明开始免费创建帐户。
对此订阅拥有参与者角色(用于创建资源组),或对现有资源组拥有参与者角色。
此外,还假定你符合快速入门:完成在 Azure 运营商服务管理器中部署虚拟化网络功能的先决条件一文中所述的先决条件
创建输入文件
执行以下命令,以生成网络功能定义 (NFD) 的输入配置文件。
az aosm nfd generate-config --definition-type vnf
执行此命令后,会生成一个 input.json 文件。
注意
编辑 input.json 文件,将其中的内容替换为示例中显示的值。 将文件另存为“input-vnf-nfd.json”。
下面是一个示例 input-vnf-nfd.json 文件:
{
"publisher_name": "ubuntu-publisher",
"publisher_resource_group_name": "ubuntu-publisher-rg",
"nf_name": "ubuntu-vm",
"version": "1.0.0",
"acr_artifact_store_name": "ubuntu-acr",
"location": "uksouth",
"blob_artifact_store_name": "ubuntu-blob-store",
"image_name_parameter": "imageName",
"arm_template": {
"file_path": "ubuntu-template.json",
"version": "1.0.0"
},
"vhd": {
"file_path": "livecd.ubuntu-cpc.azure.vhd",
"version": "1-0-0",
"image_disk_size_GB": 30,
"image_hyper_v_generation": "V1",
"image_api_version": "2023-03-01"
}
}
变量 | 说明 |
---|---|
publisher_name | 要将定义发布到的发布服务器资源的名称。 如果不存在,则创建一个。 |
publisher_resource_group_name | 发布服务器资源的资源组。 如果不存在,则创建一个。 |
acr_artifact_store_name | ACR 项目存储资源的名称。 如果不存在,则创建一个。 |
location | 创建资源时要使用的 Azure 位置。 |
nf_name | NF 定义的名称。 |
version | A.B.C 格式的 NF 定义版本。 |
blob_artifact_store_name | 存储帐户项目存储资源的名称。 如果不存在,则创建一个。 |
image_name_parameter | VM ARM 模板中的参数名称,指定要用于 VM 的映像的名称。 |
arm_template | artifact_name:项目的名称。 |
file_path:可选。 要从本地磁盘上传的项目的文件路径。 如果不需要,请删除。 相对路径是相对于配置文件的。 在 Windows 上,请另外使用一个反斜杠来转义所有反斜杠。 | |
version:项目的版本。 对于 ARM 模板,版本必须采用 A.B.C 格式。 | |
vhd | artifact_name:项目的名称。 |
file_path:可选。 要从本地磁盘上传的项目的文件路径。 如果不需要,请删除。 相对路径是相对于配置文件的。 在 Windows 上,请另外使用一个反斜杠来转义所有反斜杠。 | |
blob_sas_url:可选。 要复制到项目存储的 Blob 项目的 SAS URL。 如果不需要,请删除。 | |
version:项目的版本。 项目的版本。 对于 VHD,版本必须采用 A-B-C 格式。 | |
“image_disk_size_GB:可选。 指定空数据磁盘的大小(以 GB 为单位)。 此值不能大于 1023 GB。 如果不需要,请删除。 | |
image_hyper_v_generation:可选。 指定从映像创建的 VirtualMachine 的 HyperVGenerationType。 有效值为 V1 和 V2。 如果未指定 V1,则为默认值。 如果不需要,请删除。 | |
image_api_version:可选。 用于创建 Microsoft.Compute/images 资源的 ARM API 版本。 如果不需要,请删除。 |
注意
使用 file_path 选项时,必须具有具有足够带宽的可靠 Internet 连接,因为上传持续时间可能因文件大小而异。
重要
上表中所述的每个变量都必须是唯一的。 例如,资源组名称不能已经存在,发布服务器和项目存储名称在区域中必须是唯一的。
构建网络功能定义 (NFD)
若要构造网络功能定义 (NFD),请启动构建过程。
az aosm nfd build -f input-vnf-nfd.json --definition-type vnf
构建完成后,检查生成的文件,以便更好地了解网络功能定义 (NFD) 的结构。
以下文件将在名为“nfd-bicep-ubuntu-template”的子目录中创建:
文件 | 说明 |
---|---|
configMappings | 该目录中包含的文件可将网络功能定义版本 (NFDV) 的部署参数映射到虚拟机 (VM) ARM 模板所需的参数。 |
schemas | 该目录中包含的文件可定义从该网络功能定义版本 (NFDV) 创建网络功能 (NF) 所需的部署参数。 |
vnfartifactmanifests.bicep | 用于创建项目清单的 bicep 模板。 |
Vnfdefinition.bicep | 用于创建网络功能定义版本 (NFDV) 本身的 bicep 模板。 |
注意
如果出错,唯一可选的更正方法是重新运行采用了正确选择的命令。
发布网络功能定义并上传项目
执行以下命令以发布网络功能定义 (NFD) 并上传关联的项目:
az aosm nfd publish -f input-vnf-nfd.json --definition-type vnf
命令完成后,检查发布服务器资源组中的资源,以观察创建的组件和项目。
将创建以下资源:
资源名称 | 资源类型 |
---|---|
ubuntu-vm-nfdg | 网络功能定义。 |
1.0.0 | 网络功能定义版本。 |
ubuntu-publisher | Publisher。 |
ubuntu-vm-acr-manifest-1-0-0 | 发布服务器项目清单。 |
ubuntu-vm-sa-manifest-1-0-0 | 发布服务器项目清单。 |
ubuntu-acr | 发布服务器项目存储。 |
ubuntu-blob-store | 发布服务器项目存储。 |
注意
创建项目存储大约需要 10 分钟。 如果相应资源已存在,则该过程要快得多。