Краткое руководство. Публикация виртуальной машины Ubuntu в качестве функции виртуальная сеть (VNF)
В этом кратком руководстве описывается, как использовать az aosm
расширение Azure CLI для создания и публикации базового определения сетевой функции. Его целью является демонстрация рабочего процесса ресурсов Publisher Azure Operator Service Manager (AOSM). Основные понятия, представленные здесь, предназначены для подготовки пользователей к созданию более интересных служб.
Необходимые компоненты
Учетная запись Azure с активной подпиской. Если у вас нет подписки Azure, следуйте инструкциям, приведенным здесь , чтобы создать учетную запись перед началом работы.
Выполните краткое руководство. Выполните необходимые условия для развертывания виртуализированной сетевой функции в Диспетчере служб оператора Azure
Существующая группа ресурсов, в которой у вас есть роль участника или роль участника в этой подписке, чтобы расширение ИНТЕРФЕЙСА командной строки AOSM могло создать группу ресурсов.
Создание входного файла
Выполните следующую команду, чтобы создать входной файл конфигурации для определения сетевой функции (NFD).
az aosm nfd generate-config --definition-type vnf
После выполнения этой команды создается файл vnf-input.jsonc.
Примечание.
Измените файл vnf-input.jsonc, заменив его значениями, отображаемыми в примере. Сохраните файл как input-vnf-nfd.jsonc.
Если вы используете существующую группу ресурсов, измените publisher_resource_group_name
поле, чтобы оно соответствовало.
Ниже приведен пример файла input-vnf-nfd.jsonc:
{
// 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.
// Will be created if it does not exist
"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",
// Name of the network function.
"nf_name": "ubuntu-vm",
// Version of the network function definition in 1.1.1 format (three integers separated by dots).
"version": "1.0.0",
// If set to true, all NFD configuration parameters are made available to the designer, including optional parameters and those with defaults.
// If not set or set to false, only required parameters without defaults will be exposed.
"expose_all_parameters": false,
// Optional. Name of the storage account Artifact Store resource.
// Will be created if it does not exist (with a default name if none is supplied).
"blob_artifact_store_name": "ubuntu-blob-store",
// ARM template configuration. The ARM templates given here would deploy a VM if run. They will be used to generate the VNF.
"arm_templates": [
{
// Name of the artifact. Used as internal reference only.
"artifact_name": "ubuntu-template",
// Version of the artifact in 1.1.1 format (three integers separated by dots).
"version": "1.0.0",
// File path (absolute or relative to this configuration file) of the artifact you wish to upload from your local disk.
// Use Linux slash (/) file separator even if running on Windows.
"file_path": "ubuntu-template.json"
}
],
// VHD image configuration.
"vhd": {
// Optional. Name of the artifact. Name will be generated if not supplied.
"artifact_name": "",
// Version of the artifact in A-B-C format. Note the '-' (dash) not '.' (dot).
"version": "1-0-0",
// Supply either file_path or blob_sas_url, not both.
// File path (absolute or relative to this configuration file) of the artifact you wish to upload from your local disk.
// Leave as empty string if not required. Use Linux slash (/) file separator even if running on Windows.
"file_path": "livecd.ubuntu-cpc.azure.vhd",
// Optional. Specifies the size of empty data disks in gigabytes.
// This value cannot be larger than 1023 GB. Delete if not required.
"image_disk_size_GB": "30",
// Optional. Specifies the HyperVGenerationType of the VirtualMachine created from the image.
// Valid values are V1 and V2. V1 is the default if not specified. Delete if not required.
"image_hyper_v_generation": "V1",
// Optional. The ARM API version used to create the Microsoft.Compute/images resource.
// Delete if not required.
"image_api_version": "2023-03-01"
}
}
«Переменная» | Description |
---|---|
publisher_name | Имя ресурса издателя, для которого нужно опубликовать определение. Создано, если оно не существует. |
publisher_resource_group_name | Группа ресурсов для ресурса Publisher. Создано, если оно не существует. |
acr_artifact_store_name | Имя ресурса хранилища артефактов ACR. Создано, если оно не существует. |
расположение | Расположение Azure для использования при создании ресурсов. |
nf_name | Имя определения NF. |
version | Версия определения NF в формате A.B.C. |
blob_artifact_store_name | Имя ресурса Artifact Store учетной записи хранения. Создано, если оно не существует. |
expose_all_parameters | Независимо от того, следует ли сделать все параметры конфигурации NFD доступными для конструктора. |
arm_template | artifact_name: имя артефакта. |
file_path: необязательно. Путь к файлу артефакта, который вы хотите отправить с локального диска. Удалите, если это не требуется. Относительные пути относятся к файлу конфигурации. В Windows избежал любой обратной косой черты с другой обратной косой чертой. | |
версия: версия артефакта. Для версии шаблонов ARM должен быть формат A.B.C. | |
VHD | artifact_name: имя артефакта. |
file_path: необязательно. Путь к файлу артефакта, который вы хотите отправить с локального диска. Удалите, если это не требуется. Относительные пути относятся к файлу конфигурации. В Windows избежал любой обратной косой черты с другой обратной косой чертой. | |
blob_sas_url: необязательно. URL-адрес SAS артефакта большого двоичного объекта, который вы хотите скопировать в хранилище артефактов. Удалите, если это не требуется. | |
версия: версия артефакта. Версия артефакта. Для версии VHD должен быть формат A-B-C. | |
"image_disk_size_GB: необязательно. Задает размер пустых дисков данных в гигабайтах. Это значение не может превышать 1023 ГБ. Удалите, если это не требуется. | |
image_hyper_v_generation: необязательно. Задает тип HyperVGenerationType виртуальнойMachine, созданной на основе образа. Допустимые значения: V1 и V2. Версия 1 — это значение по умолчанию, если оно не указано. Удалите, если это не требуется. | |
image_api_version: необязательно. Версия API ARM, используемая для создания ресурса Microsoft.Compute/images. Удалите, если это не требуется. |
Примечание.
При использовании параметра file_path важно иметь надежное подключение к Интернету с достаточной пропускной способностью передачи, так как образы VHD обычно очень большие.
Внимание
Каждая переменная, описанная в предыдущей таблице, должна быть уникальной. Например, имя группы ресурсов не может существовать, а имена издателя и хранилища артефактов должны быть уникальными в регионе.
Создание определения сетевой функции (NFD)
Чтобы создать определение сетевой функции (NFD), инициируйте процесс сборки.
az aosm nfd build --config-file input-vnf-nfd.jsonc --definition-type vnf
После завершения сборки изучите созданные файлы, чтобы лучше понять структуру определения сетевой функции (NFD).
Эти файлы создаются в подкаталоге с именем vnf-cli-output:
Каталог или файл | Description |
---|---|
vnf-cli-output/artifactManifest | |
deploy.bicep | Шаблон Bicep для создания манифеста артефакта с артефактами, заполненными из входного файла |
vnf-cli-output/artifacts | |
artifacts.json | Список артефактов (изображений и шаблонов ARM), которые нужно отправить при публикации. Коррелирует с манифестом артефакта |
vnf-cli-output/base | |
deploy.bicep | Шаблон Bicep для создания базовых ресурсов AOSM, необходимых для создания NF (издателя, acr, nfdg) |
vnf-cli-output/nfDefinition | |
deploy.bicep | Bicep для создания версии определения сетевой функции (NFDV) с сведениями о приложении сетевой функции из шаблона ARM, предоставленного в входном файле |
deployParameters.json | Схема, определяющая параметры развертывания, необходимые для создания сетевой функции (NF) из этой версии определения сетевой функции (NFDV) |
<arm-template-name>-templateParameters.json | Файл содержит параметры развертывания, предоставленные версии определения сетевой функции (NFDV), сопоставленные с параметрами, необходимыми для шаблона ARM виртуальной машины. Эти параметры шаблона ARM виртуальной машины создаются из шаблонов ARM, предоставленных в входном файле. |
vhdParameters.json | Файл содержит параметры развертывания, предоставленные версии определения сетевой функции (NFDV), сопоставленные с параметрами, необходимыми для образа VHD. Параметры конфигурации VHD создаются из раздела VHD входного файла |
vnf-cli-output | |
all_deploy.parameters.json | Супермножество всех NF-параметров развертывания, предоставляющее один файл для настройки имен ресурсов. Выходные данные этого файла командой сборки взяты из файла vnf-input.jsonc, но их можно изменить перед запуском публикации, например опубликовать в другом расположении или использовать другое имя издателя. |
index.json | Файл, используемый внутренне при публикации ресурсов. Не изменяйте |
Примечание.
Если произошли ошибки, единственным вариантом исправления является повторная выполнение команды с соответствующими выбранными параметрами.
Публикация определения сетевой функции и отправка артефактов
Выполните следующую команду, чтобы опубликовать определение сетевой функции (NFD) и отправить связанные артефакты:
Примечание.
Имена издателей должны быть уникальными в пределах региона. Скорее всего, "ubuntu-publisher", определенный в примере файла конфигурации, уже существует.
Если вы получите сообщение об ошибке "Ресурс частного издателя с именем ubuntu-publisher" уже существует в указанном регионе", измените publisher_name
поле в файле конфигурации таким образом, чтобы оно было уникальным (например, добавление случайной строки суффикса), повторно выполните build
команду (выше), а затем повторно выполните эту publish
команду.
Если вы перейдете к созданию структуры сетевой службы, вам потребуется использовать это новое имя издателя в массиве resource_element_templates
.
az aosm nfd publish --build-output-folder vnf-cli-output --definition-type vnf
По завершении команды проверьте ресурсы в группе ресурсов издателя, чтобы наблюдать за созданными компонентами и артефактами.
Эти ресурсы создаются:
Имя ресурса | Тип ресурса |
---|---|
ubuntu-vm | Определение сетевой функции. |
1.0.0 | Версия определения сетевой функции. |
ubuntu-publisher | Издатель. |
ubuntu-vm-acr-manifest-1-0-0 | Манифест артефакта издателя. |
ubuntu-vm-sa-manifest-1-0-0 | Манифест артефакта издателя. |
ubuntu-acr | Хранилище артефактов издателя. |
ubuntu-blob-store | Хранилище артефактов издателя. |