Использование расширения CLI для оператора Azure Service Manager (AOSM)

В этом руководстве издатели сетевых функций и конструкторы служб узнайте, как использовать расширение Azure CLI, чтобы приступить к работе с определениями сетевых функций (NFD) и проектами сетевых служб (NSD).

Расширение az aosm CLI предназначено для поддержки публикации проектов и определений Диспетчера служб Оператора Azure. Расширение CLI помогает в процессе публикации определений сетевых функций (NFD) и проектов сетевых служб (NSD) для использования с диспетчером служб оператора Azure.

Необходимые компоненты

Обратитесь к группе учетной записи Майкрософт, чтобы зарегистрировать подписку Azure для доступа к Azure Operator Service Manager (AOSM) или выразить свой интерес с помощью формы регистрации партнера.

Скачивание и установка Azure CLI

Используйте среду Bash в облачной оболочке Azure. Дополнительные сведения см. в статье "Запуск Cloud Shell для использования среды Bash в Azure Cloud Shell".

Для пользователей, которые предпочитают запускать справочные команды CLI локально, см. инструкции по установке Azure CLI.

Если вы работаете в окне или macOS, попробуйте запустить Azure CLI в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.

Если вы используете локальную установку, войдите в Azure CLI с помощью az login команды и завершите запросы, отображаемые в терминале, чтобы завершить проверку подлинности. Дополнительные параметры входа см. в статье "Вход с помощью Azure CLI".

Установка расширения CLI для оператора Azure Service Manager (AOSM)

Установите расширение ИНТЕРФЕЙСА командной строки оператора Azure Service Manager (AOSM) с помощью следующей команды:

az extension add --name aosm
  1. Запустите az version , чтобы просмотреть установленные версии и зависимые библиотеки.
  2. Выполните az upgrade обновление до текущей версии Azure CLI.

Регистрация и проверка необходимых поставщиков ресурсов

Прежде чем приступить к использованию Диспетчера служб оператора Azure, обязательно зарегистрируйте необходимый поставщик ресурсов. выполните следующие команды. Этот процесс регистрации может занять до 5 минут.

# Register Resource Provider
az provider register --namespace Microsoft.HybridNetwork
az provider register --namespace Microsoft.ContainerRegistry

Проверьте состояние регистрации поставщиков ресурсов. выполните следующие команды.

# Query the Resource Provider
az provider show -n Microsoft.HybridNetwork --query "{RegistrationState: registrationState, ProviderName: namespace}"
az provider show -n Microsoft.ContainerRegistry --query "{RegistrationState: registrationState, ProviderName: namespace}"

Примечание.

Для завершения регистрации поставщика ресурсов может потребоваться несколько минут. После успешной регистрации можно продолжить работу с помощью Диспетчера служб оператора Azure (AOSM).

Требования к контейнерной сетевой функции (CNF)

Для тех, кто использует контейнерные сетевые функции, важно убедиться, что на компьютере, на котором выполняется интерфейс командной строки, устанавливаются следующие пакеты:

  • Установите Helm, см. раздел "Установка Helm CLI".
  • В некоторых случаях установите docker, обратитесь к разделу "Установка подсистемы Docker". Требуется только в том случае, если исходный образ находится в локальном репозитории Docker или у вас нет разрешений на уровне подписки, необходимых для отправки диаграмм и изображений.

Разрешения

Учетная запись Azure с активной подпиской. Если у вас нет подписки Azure, следуйте инструкциям, приведенным здесь , чтобы создать учетную запись перед началом работы.

Для создания группы ресурсов или существующей группы ресурсов, в которой у вас есть роль участника, требуется роль участника для этой подписки.

Разрешения для публикации CNFS

При выборе образов CNF из существующего ACR необходимо иметь Reader/AcrPull разрешения от этого ACR, а в идеале Contributor — роль + AcrPush роль (или пользовательская роль, которая разрешает importImage действие и AcrPush) для всей подписки, чтобы иметь возможность импортировать в новое хранилище артефактов. Если у вас есть эти возможности, вам не нужно устанавливать docker локально, и копия образа быстра.

Если у вас нет разрешений на уровне подписки, можно выполнить az aosm nfd publish команду с помощью флага, чтобы извлечь изображение на локальный компьютер, а затем отправить его в Хранилище артефактов с помощью --no-subscription-permissions учетных данных манифеста, область только в хранилище. Требуется локально установить docker.

Общие сведения о расширении ИНТЕРФЕЙСА командной строки для диспетчера операторов Azure (AOSM)

Издатели сетевых функций и конструкторы служб используют расширение Azure CLI для публикации определений сетевых функций (NFD) и проектов сетевых служб (NSD).

Как описано в ролях и интерфейсах, издатель сетевых функций несет различные обязанности. Расширение CLI помогает с элементами, отображаемыми полужирным шрифтом:

  • Создайте сетевую функцию.
  • Кодирование в конструкторе сетевых функций (NFD).
  • Определите параметры развертывания для предоставления конструктору служб.
  • Подключение конструктора сетевых функций (NFD) к Диспетчеру служб операторов Azure (AOSM).
  • Отправьте связанные артефакты.
  • Проверьте структуру сетевой функции (NFD).

Конструктор служб также имеет различные обязанности, из которых расширение CLI помогает с элементами полужирным шрифтом:

  • Выберите, какие определения сетевых функций включены в конструктор службы.
  • Кодируйте его в структуру сетевой службы.
  • Объедините инфраструктуру Azure в структуру сетевой службы.
  • Определите, как параметризировать службу, определив одну или несколько схем групп конфигурации (CGSS).
  • Определите, как входные данные оператора службы сопоставляют с параметрами, необходимыми для определений сетевых функций и инфраструктуры Azure.
  • Подключение конструктора сетевой службы (NSD) к Диспетчеру служб операторов Azure (AOSM).
  • Отправьте связанные артефакты.
  • Проверьте проект сетевой службы (NSD).

Сводка рабочего процесса

Универсальный рабочий процесс использования расширения CLI:

  1. Найдите необходимые элементы, необходимые для вашего варианта использования.

  2. generate-config Выполните команду, чтобы вывести пример файла конфигурации JSON для последующих команд.

  3. Заполните файл конфигурации.

  4. build Выполните команду, чтобы вывести один или несколько шаблонов bicep для определения сетевой функции или структуры сетевой службы.

  5. Просмотрите выходные данные команды сборки, измените выходные данные в соответствии с вашими требованиями.

  6. publish Выполните команду, чтобы:

    • Создайте все необходимые ресурсы, такие как группа ресурсов, издатель, хранилища артефактов, группы.
    • Разверните эти шаблоны bicep.
    • Отправьте артефакты в хранилища артефактов.

Начальная точка VNF

Для виртуальных сетей требуется один шаблон ARM, который создаст ресурсы Azure для виртуальной виртуальной сети, например виртуальную машину, диски и сетевые адаптеры. Шаблон ARM должен храниться на компьютере, с которого выполняется интерфейс командной строки.

Для версий определения виртуализированной сетевой функции (VNF NFDVs) список networkFunctionApplications должен содержать один VhdImageFile и один шаблон ARM. Это необычно для включения нескольких VhdImageFile и нескольких шаблонов ARM. Если у вас нет сильных причин, шаблон ARM должен развернуть одну виртуальную машину. Конструктор служб должен содержать многочисленные копии определения сетевой функции (NFD) с помощью конструктора сетевых служб (NSD), если требуется развернуть несколько виртуальных машин. Шаблон ARM (для AzureCore и Nexus) может развертывать ресурсы ARM только из следующих поставщиков ресурсов:

  • Microsoft.Compute;

  • Microsoft.Network.

  • Microsoft.NetworkCloud

  • Microsoft.Storage;

  • Microsoft.NetworkFabric

  • Microsoft.Authorization

  • Microsoft.ManagedIdentity

Вам также нужен образ VHD, который будет использоваться для виртуальной машины VNF. Образ VHD можно хранить на компьютере, с которого выполняется интерфейс командной строки или в хранилище BLOB-объектов Azure, доступном через URI SAS.

Начальная точка CNF

Для развертываний контейнерных сетевых функций (CNFS) важно сохранить на компьютере, с которого выполняется интерфейс командной строки:

  • Пакеты Helm с схемой . Эти пакеты должны присутствовать в локальном input.json хранилище и ссылаться на него в файле конфигурации. После этого краткого руководства вы скачайте необходимый пакет helm.

  • Создание примера файла конфигурации— создание примера файла конфигурации для определения развертывания CNF. Выполните эту команду, чтобы создать input.json файл, который необходимо заполнить определенной конфигурацией.

    az aosm nfd generate-config
    
  • Изображения для CNF . Ниже приведены следующие параметры:

    • Ссылка на существующий Реестр контейнеров Azure, содержащий изображения для CNF. В настоящее время поддерживается только один ACR и пространство имен для каждого CNF. Изображения, скопированные из этого ACR, заполняются автоматически на основе схемы пакета helm. Для этого ACR необходимо иметь разрешения читателя или AcrPull. Чтобы использовать этот параметр, заполните source_registry и при необходимости source_registry_namespace в файле input.json.
    • Имя образа исходного образа Docker с локального компьютера. Это имя образа предназначено для ограниченного варианта использования, если для CNF требуется только один образ Docker, который существует в локальном репозитории docker. Чтобы использовать этот параметр, заполните source_local_docker_image файл input.json. Требуется установить docker. В этом кратком руководстве описано, как скачать образ docker nginx, используемый для этого параметра.
  • Необязательно. Файл сопоставления (path_to_mappings): при необходимости можно указать файл (на диске) с именем path_to_mappings. Этот файл должен зеркало values.yamlс выбранными значениями, замененными параметрами развертывания. Это предоставляет их в качестве параметров ДЛЯ CNF. Кроме того, вы можете оставить это пустым, input.json а ИНТЕРФЕЙС командной строки создает файл. По умолчанию в этом случае каждое значение внутри values.yaml предоставляется в качестве параметра развертывания. Кроме того, используйте --interactive аргумент CLI для интерактивного выбора. В этом кратком руководстве описано создание этого файла.

При настройке input.json файла убедитесь, что вы перечисляете пакеты Helm в порядке их развертывания. Например, если перед пакетом "B" необходимо развернуть пакет "A", то ваша input.json структура должна выглядеть следующим образом:

"helm_packages": [
    {
        "name": "A",
        "path_to_chart": "Path to package A",
        "path_to_mappings": "Path to package A mappings",
        "depends_on": [
            "Names of the Helm packages this package depends on"
        ]
    },
    {
        "name": "B",
        "path_to_chart": "Path to package B",
        "path_to_mappings": "Path to package B mappings",
        "depends_on": [
            "Names of the Helm packages this package depends on"
        ]
    }
]

В соответствии с этими рекомендациями обеспечивается хорошо упорядоченный и структурированный подход к развертыванию контейнерных сетевых функций (CNFS) с пакетами Helm и связанными конфигурациями.

Начальная точка NSD

Для NSD необходимо знать подробности определений сетевых функций (NFD), которые необходимо включить в проект:

  • Группа ресурсов издателя NFD
  • Имя издателя NFD и область
  • Имя группы определения сетевой функции
  • расположение, тип и версия версии определения сетевой функции

Команды можно использовать az aosm nfd для создания всех этих ресурсов.

Команды Azure Operator Service Manager (AOSM)

Используйте следующие команды перед началом работы:

  1. az login используется для входа в Azure CLI.

  2. az account set --subscription <subscription> используется для выбора подписки, над которой вы хотите работать.

Команды NFD

Получите справку по аргументам команд:

  • az aosm -h

  • az aosm nfd -h

  • az aosm nfd build -h

Команды типа определения

Все эти команды принимают --definition-type аргумент vnf или cnf.

Создайте пример файла конфигурации для создания определения:

  • az aosm nfd generate-config

Эта команда выводит файл с именем input.json, который должен быть заполнен. После заполнения файла конфигурации можно выполнить следующие команды.

Создайте определение NFD локально:

  • az aosm nfd build --config-file input.json

Дополнительные варианты создания определения NFD локально:

  • Выберите какие из параметров шаблона VNF ARM, которые вы хотите предоставить в качестве развертывания NFDParameters, с возможностью интерактивного выбора каждого из них:

    • az aosm nfd build --config-file input.json --definition_type vnf --order_params
    • az aosm nfd build --config-file input.json --definition_type vnf --order_params --interactive

Выберите, какие из параметров CNF Helm необходимо предоставить в качестве NFD deploymentParameters:

  • az aosm nfd build --config-file input.json --definition_type cnf --interactive

Публикация предварительно созданного определения:

  • az aosm nfd publish --config-file input.json

Удаление опубликованного определения:

  • az aosm nfd delete --config-file input.json

Удалите опубликованное определение и издатель, хранилища артефактов и группу NFD:

  • az aosm nfd delete --config-file input.json --clean

Команды NSD

Получите справку по аргументам команд:

  • az aosm -h

  • az aosm nsd -h

  • az aosm nsd build -h

Создайте пример файла конфигурации для создания определения:

  • az aosm nsd generate-config

Эта команда выводит файл с именем input.json, который должен быть заполнен. После заполнения файла конфигурации можно выполнить следующие команды.

Создайте NSD локально:

  • az aosm nsd build --config-file input.json

Опубликуйте предварительно созданную структуру:

  • az aosm nsd publish --config-file input.json

Удаление опубликованного проекта:

  • az aosm nsd delete --config-file input.json

Удалите опубликованный дизайн и издатель, хранилища артефактов и группу NSD:

  • az aosm nsd delete --config-file input.json --clean

Изменение выходных данных сборки перед публикацией

Расширение az aosm CLI предназначено для поддержки публикации проектов и определений Диспетчера служб Оператора Azure. Он предоставляет стандартные блоки для создания сложных пользовательских конструкций и определений. Перед выполнением publish команды можно изменить выходные данные build файлов, чтобы добавить более сложные или настраиваемые функции.

Полный справочник по API для Диспетчера служб оператора Azure приведен здесь: REST API гибридной сети Azure.

В следующих разделах описываются некоторые распространенные способы редактирования встроенных файлов перед публикацией.

Определения сетевых функций (NFD)

  • versionStatenetworkfunctiondefinitionversions Изменение ресурса на PreviewActive. Активные NFDV неизменяемы, в то время как предварительные версии NFDV являются изменяемыми и в состоянии черновика.
  • Для CNFs измените releaseNamespacehelmMappingRuleProfile пространство имен Kubernetes, в которое развернута диаграмма.

Проекты сетевых служб (NSD)

  • Добавьте инфраструктуру Azure в структуру сетевой службы (NSD). Добавление инфраструктуры Azure в вашу возможность:
    • Написание шаблонов ARM для развертывания инфраструктуры.
    • Добавление схем групп конфигурации (CGSS) для этих шаблонов ARM.
    • Добавление ResourceElementTemplates (RETs) типа ArmResourceDefinition в NSD. ReTs выглядят так же, как NetworkFunctionDefinition и RETs, type помимо поля.
    • Добавление шаблонов ARM инфраструктуры в artifact_manifest.bicep файл.
    • configMappings Изменение файлов для включения любых выходных данных из шаблонов инфраструктуры в качестве входных данных в NetworkFunctionDefinition ResourceElementTemplates. Пример: "customLocationId": "{outputparameters('infraretname').infraretname.customLocationId.value}"
    • Измените dependsOnProfile параметры NetworkFunctionDefinition ресурса ResourceElementTemplates (RETs), чтобы обеспечить развертывание СЕТЕЙ инфраструктуры до NF RETs.
  • versionStatenetworkservicedesignversions Изменение ресурса на PreviewActive. Активные NSD являются неизменяемыми, в то время как виртуальные диски предварительной версии являются изменяемыми и в состоянии черновика.