Использование расширения 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
- Запустите
az version
, чтобы просмотреть установленные версии и зависимые библиотеки. - Выполните
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:
Найдите необходимые элементы, необходимые для вашего варианта использования.
generate-config
Выполните команду, чтобы вывести пример файла конфигурации JSON для последующих команд.Заполните файл конфигурации.
build
Выполните команду, чтобы вывести один или несколько шаблонов bicep для определения сетевой функции или структуры сетевой службы.Просмотрите выходные данные команды сборки, измените выходные данные в соответствии с вашими требованиями.
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, используемый для этого параметра.
- Ссылка на существующий Реестр контейнеров Azure, содержащий изображения для CNF. В настоящее время поддерживается только один ACR и пространство имен для каждого CNF. Изображения, скопированные из этого ACR, заполняются автоматически на основе схемы пакета helm. Для этого ACR необходимо иметь разрешения читателя или AcrPull. Чтобы использовать этот параметр, заполните
Необязательно. Файл сопоставления (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)
Используйте следующие команды перед началом работы:
az login
используется для входа в Azure CLI.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)
versionState
networkfunctiondefinitionversions
Изменение ресурса наPreview
Active
. Активные NFDV неизменяемы, в то время как предварительные версии NFDV являются изменяемыми и в состоянии черновика.- Для CNFs измените
releaseNamespace
helmMappingRuleProfile
пространство имен 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.
versionState
networkservicedesignversions
Изменение ресурса наPreview
Active
. Активные NSD являются неизменяемыми, в то время как виртуальные диски предварительной версии являются изменяемыми и в состоянии черновика.