Поделиться через


Краткое руководство. Публикация виртуальной машины Ubuntu в качестве функции виртуальная сеть (VNF)

В этом кратком руководстве описывается, как использовать az aosm расширение Azure CLI для создания и публикации базового определения сетевой функции. Его целью является демонстрация рабочего процесса ресурсов Publisher Azure Operator Service Manager (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 Хранилище артефактов издателя.

Следующие шаги