Adición de recursos de Azure Resource Manager (ARM) a una versión de diseño del servicio de red (AOSM) de Azure Operator Service Manager (NSDV)
Azure Operator Service Manager (AOSM) permite combinar versiones de definición de funciones de red (NFDV) y plantillas de Azure Resource Manager (ARM) en una versión de diseño de servicio de red (NSDV). El NSDV se convierte en una sola plantilla para un servicio de red que contiene una función de red y la infraestructura de Azure que necesita para ejecutarse. A continuación, un operador puede implementar la función de red (NF) y su infraestructura en una sola operación.
En esta guía paso a paso, aprenderá a usar la extensión AOSM de la CLI de Azure para compilar y publicar un NSDV que contenga una función de red en contenedor (CNF) un recurso de Azure Resource Manager (ARM).
La incorporación es un proceso de varios pasos. Una vez que cumpla los requisitos previos, usará la extensión AOSM de la CLI de Azure para:
- Modificar un archivo de entrada NSDV existente para un CNF incorporado anteriormente.
- Rellenar el archivo de entrada con la información necesaria para compilar las definiciones de recursos de AOSM.
- Generar archivos BICEP que definan un grupo de diseño de servicio de red y una versión (NSDV) en función del archivo de entrada y la plantilla de ARM.
- Publicar el NSDV y cargar la plantilla de ARM en un almacén de artefactos (Azure Container Registry (ACR)administrado por AOSM).
En esta guía paso a paso se usa Azure Key Vault (AKV) como ejemplo de un recurso de Azure; sin embargo, cualquier recurso de Azure se puede incorporar siguiendo los mismos pasos. En este artículo se usa una CNF como NF de ejemplo; el proceso es idéntico para una función de red virtualizada (VNF) aparte de las diferencias menores en el archivo de entrada de NSDV.
Requisitos previos
- Ha habilitado AOSM en la suscripción de Azure.
- Si la CNF está pensado para ejecutarse en Azure Operator Nexus, tiene acceso a una instancia de Azure Operator Nexus y ha completado los requisitos previos para la implementación de cargas de trabajo.
- Ha incorporado una CNF y tiene el archivo de entrada que generó con el archivo
az aosm nsd generate-config
disponible en el almacenamiento local de la máquina desde la que está ejecutando la CLI.
Configuración de permisos
- Necesita el rol Colaborador en la suscripción para crear un grupo de recursos o un grupo de recursos existente en el que tenga el rol Colaborador.
- Necesita las asignaciones de roles
Contributor
yAcrPush
en la suscripción que contendrá el Almacén de artefactos administrados de AOSM.- La directiva de la empresa puede impedir que tenga permisos con ámbito de suscripción. El parámetro
--no-subscription-permissions
, disponible en el comandoaz aosm nsd publish
, usa permisos con ámbito muy limitado derivados del servicio AOSM para orquestar una copia en dos pasos hacia y desde el equipo local. Esta copia en dos pasos es más lenta, pero no requiere permisos con ámbito de suscripción.
- La directiva de la empresa puede impedir que tenga permisos con ámbito de suscripción. El parámetro
Plantillas de ARM
- Debe tener una plantilla de ARM que defina los recursos de Azure que desea implementar presentes en el almacenamiento local de la máquina desde la que está ejecutando la CLI.
- Todos los parámetros que quiera exponer al operador que implementará el NSDV deben definirse como parámetros en la plantilla de ARM.
Nota:
La extensión AOSM de la CLI de Az no admite la incorporación de recursos de Azure definidos en una plantilla de BICEP. Sin embargo, puede usar el comando bicep build
para convertir los archivos BICEP en plantillas de ARM. Consulte la documentación de la CLI de Bicep para obtener información detallada e instrucciones.
Motor de Helm y Docker
- Instale la CLI de Helm en el equipo host. Debe usar Helm v3.8.0 o posterior.
- Instale Docker en el equipo host.
Descarga e instalación de la CLI de Azure
Para instalar la CLI de Azure localmente, consulte Instalación de la CLI de Azure.
Para iniciar sesión en la CLI de Azure, use el comando az login
y complete las indicaciones que se muestran en el terminal para finalizar la autenticación. Para ver más opciones de inicio de sesión, consulte Inicio de sesión con la CLI de Azure.
Nota:
Si utiliza Windows o macOS, considere la posibilidad de ejecutar la CLI de Azure en un contenedor Docker. Para más información, vea Ejecución de la CLI de Azure en un contenedor de Docker. También puede usar el entorno de Bash en Azure Cloud Shell. Para obtener más información, consulte Inicio de Cloud Shell para usar el entorno de Bash en Azure Cloud Shell.
Instalación de la extensión AOSM de la CLI
La extensión AOSM de la CLI de Az requiere la versión 2.54.0 o posterior de la CLI de Azure.
- Ejecute
az version
para ver la versión y las bibliotecas dependientes que están instaladas. - Ejecute
az upgrade
para actualizar a la versión actual de la CLI de Azure.
Instale la extensión AOSM de la CLI mediante este comando:
az extension add --name aosm
Compilación del grupo de diseño y la versión del servicio de red
Abra el archivo de entrada NSDV que generó al incorporar su CNF.
Nota:
Puede generar un nuevo archivo de entrada mediante el comando
az aosm nsd generate-config --output-file <nsd-output-filename.jsonc>
si no tiene el archivo de entrada NSDV desde la incorporación de CNF.Escriba los valores necesarios mediante los comentarios insertados en el archivo de entrada. En este ejemplo se muestra el archivo de entrada de extensión AOSM de la CLI de Az para una instancia ficticia de Contoso NSDV que se puede usar para implementar un CNF ficticio de Contoso en un clúster de Nexus Kubernetes conectado a Arc y una instancia de AKV en una ubicación de Azure.
{ // Azure location to use when creating resources e.g uksouth "location": "eastus", // Name of the Publisher resource you want your definition published to. // Will be created if it does not exist. "publisher_name": "contoso", // Resource group for the Publisher resource. // Will be created if it does not exist. "publisher_resource_group_name": "contoso", // Name of the ACR Artifact Store resource. // Will be created if it does not exist. "acr_artifact_store_name": "contoso-artifact-store", // Network Service Design (NSD) name. This is the collection of Network Service Design Versions. Will be created if it does not exist. "nsd_name": "contoso-nsd", // Version of the NSD to be created. This should be in the format A.B.C "nsd_version": "1.0.0", // Optional. Description of the Network Service Design Version (NSDV). "nsdv_description": "An NSD that deploys the onboarded contoso-cnf NFD and an Azure Key Vault", // List of Resource Element Templates (RETs). // There must be at least one NF RET. // ArmTemplate RETs are optional. Delete if not required. "resource_element_templates": [ { // Type of Resource Element. Either NF or ArmTemplate "resource_element_type": "NF", "properties": { // The name of the existing publisher for the NSD. "publisher": "contoso", // The resource group that the publisher is hosted in. "publisher_resource_group": "contoso", // The name of the existing Network Function Definition Group to deploy using this NSD. // This will be the same as the NF name if you published your NFDV using the CLI. "name": "contoso-cnf-nfd", // The version of the existing Network Function Definition to base this NSD on. // This NSD will be able to deploy any NFDV with deployment parameters compatible with this version. "version": "1.0.0", // The region that the NFDV is published to. "publisher_offering_location": "eastus", // Type of Network Function. Valid values are 'cnf' or 'vnf'. "type": "cnf" } }, { // Type of Resource Element. Either NF or ArmTemplate "resource_element_type": "ArmTemplate", // Properties of the Resource Element. "properties": { // Name of the artifact. Used as internal reference only. "artifact_name": "contoso-keyvault", // 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": "./contoso-keyvault.json" } } ] }
Nota:
La sección de plantilla de elemento de recurso define qué NFD se incluye en el NSD. Las propiedades deben coincidir con las usadas en el archivo de entrada que se pasa al comando
az aosm nfd build
. Esto se debe a que la extensión AOSM de la CLI de Azure valida que NFD se ha incorporado correctamente al compilar el NSD.Ejecute el siguiente comando para compilar las plantillas grupo de diseño del servicio de red y BICEP de versión.
az aosm nsd build --config-file <nsd-output-filename.jsonc>
Puede revisar la estructura de carpetas y archivos y realizar modificaciones si es necesario.
Publicar el grupo de diseño y la versión del servicio de red
Este paso crea los recursos de AOSM que definen el grupo de diseño y la versión del servicio de red. También carga artefactos requeridos por el NSDV en el Almacén de artefactos (plantilla de ARM de NF y plantilla de ARM de AKV).
- Ejecute el siguiente comando para publicar el grupo de diseño y la versión del servicio de red. Si no tiene el ámbito de suscripción
Contributor
y los rolesAcrPush
, incluya--no-subscription-permissions
en el comando.
az aosm nsd publish --build-output-folder nsd-cli-output
Ahora tiene un conjunto completo de recursos del publicador de AOSM y está listo para realizar el flujo del operador.