Incorporación de una función de red virtualizada (VNF) para la implementación en Azure Operator Nexus en Azure Operator Service Manager (AOSM)

En esta guía paso a paso, los editores de funciones de red y los diseñadores de servicios aprenden a usar la extensión AOSM de la CLI de Azure para incorporar una función de red virtualizada a AOSM. Este VNF se puede implementar posteriormente en Operador de Azure Nexus. 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:

  1. Genere archivos BICEP que definan un grupo de definiciones de función de red y una versión (NFD).
  2. Publique el NFD y cargue la imagen de la VNF en un almacén de artefactos (Azure Container Registry (ACR) administrado por AOSM).
  3. Agregue el NFD publicado a los archivos BICEP que definen un grupo de diseño de servicios de red y una versión (NSD).
  4. Publique el NSD.

Requisitos previos

Nota:

Se recomienda encarecidamente que haya probado que la implementación de la máquina virtual se realiza correctamente en la instancia de Nexus del operador de Azure antes de incorporar VNF a AOSM.

Imágenes de máquina virtual (VM) Azure Operator Nexus y plantillas Azure Resource Manager (ARM)

  • Ha creado una Imagen de para la máquina virtual Azure Operator Nexus. Esta imagen debe estar disponible en un ACR.

  • Ha creado una plantilla de ARM que implementa una máquina virtual de Azure Operator Nexus.

  • La plantilla de ARM de máquina virtual (para AzureCore y Azure Operator Nexus) solo puede implementar recursos de ARM desde los siguientes proveedores de recursos

    • Microsoft.Compute
    • Microsoft.Network
    • Microsoft.NetworkCloud
    • Microsoft.Storage
    • Microsoft.NetworkFabric
    • Microsoft.Authorization
    • Microsoft.ManagedIdentity
  • La plantilla de ARM de VNF debe implementar una máquina virtual. Se pueden implementar varias máquinas virtuales mediante la inclusión de varias instancias de NFDV en el NSDV.

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 Reader/AcrPull asignaciones de roles en el ACR de origen que contiene las imágenes.
  • Necesita las asignaciones de roles Contributor y AcrPush en la suscripción que contendrá el Almacén de artefactos administrados de AOSM. Estos permisos permiten que la extensión AOSM de la CLI de Azure realice una copia directa de ACR a ACR. La copia directa es el método más rápido de transferir imágenes de un ACR a otro.
    • La directiva de la empresa puede impedir que tenga permisos con ámbito de suscripción. El --no-subscription-permissions parámetro, disponible en los comandos az aosm nfd publish y az aosm nsd publish, usa permisos estrechamente con ámbito derivados del servicio AOSM para organizar 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.

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.

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.

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.

  1. Ejecute az version para ver la versión y las bibliotecas dependientes que están instaladas.
  2. 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 y la versión de definición de función de red

En esta sección se crea una carpeta en el directorio de trabajo denominada vnf-cli-output con las plantillas de BICEP de los recursos de AOSM que definen el grupo y la versión de la función de red y el almacén de artefactos. Estos recursos se incluirán en última instancia en el diseño del servicio de red

  1. Genere el archivo de entrada de extensión AOSM de la CLI de Azure para un VNF.

    az aosm nfd generate-config --definition-type vnf-nexus --output-file <filename.jsonc>
    
  2. Abra el archivo de entrada que generó en el paso anterior y use los comentarios insertados para especificar los valores necesarios. En este ejemplo se muestra el archivo de entrada de extensión Az CLI AOSM para una instancia ficticia de Contoso VNF, que se ejecuta en Azure Operator Nexus.

    Nota:

    La extensión AOSM de la CLI de Azure solo expone los parámetros necesarios sin valores predeterminados en la plantilla de ARM de entrada de forma predeterminada. Puede establecer expose_all_parameters en true para exponer todos los parámetros de plantilla de ARM en la versión de definición de función de red (NFDV) y el esquema de grupo de configuración (CGS). Consulte La exposición de parámetros mediante la extensión de la CLI de AOSM para obtener información más detallada.

    {
        // 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-vnf",
        // Name of the ACR Artifact Store resource.
        // Will be created if it does not exist.
        "acr_artifact_store_name": "contoso-vnf-artifact-store",
        // Name of the network function.
        "nf_name": "contoso-vnf",
        // 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,
        // 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": "contoso-vnf",
                // 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": "/home/contoso-vnf/contoso-vnf-arm-template.json"
            }
        ],
        // List of images to be pulled from the acr registry.
        // You must provide the source acr registry, the image name and the version.
        // For example: 'sourceacr.azurecr.io/imagename:imageversion'.
        "images": ["contoso-vnf.azurecr.io/contosovnf:1.0.0"]
    }```
    
    
  3. Ejecute el siguiente comando para compilar el grupo de definiciones de función de red y la versión.

az aosm nfd build --definition-type vnf-nexus --config-file <filename.jsonc>

Publicar el grupo y la versión de definición de función de red

En este paso se crean los recursos de AOSM que definen la definición de función de red y el almacén de artefactos que se usarán para almacenar las imágenes de máquina virtual de la función de red. También carga las imágenes en el Almacén de artefactos copiándola directamente desde el ACR de origen o, si no tiene el ámbito Contributor y AcrPush los roles de la suscripción, al volver a etiquetar las imágenes de Docker localmente y cargarlas en el Almacén de artefactos mediante credenciales de ámbito estrictamente generadas desde el servicio AOSM.

  1. Ejecute el siguiente comando para publicar el grupo y la versión de definición de función de red. Si no tiene el ámbito de suscripción Contributor y AcrPush los roles, incluya --no-subscription-permissions en el comando.
az aosm nfd publish --build-output-folder vnf-cli-output --definition-type vnf

Puede revisar la estructura de carpetas y archivos y realizar modificaciones si es necesario.

Compilación del grupo de diseño y la versión del servicio de red

En esta sección se crea una carpeta en el directorio de trabajo denominado nsd-cli-output. Esta carpeta contiene las plantillas de BICEP de los recursos de AOSM que definen un grupo de diseño y una versión del servicio de red. Este diseño de servicio de red es una plantilla que se usa en el recurso servicio de red de sitio que implementará la función de red que ha incorporado en las secciones anteriores.

  1. Genere el archivo de entrada NSD de extensión AOSM de la CLI de Azure.

    az aosm nsd generate-config --output-file <nsd-output-filename.jsonc>
    
  2. Abra el archivo de entrada que generó en el paso anterior y use los comentarios insertados para especificar los valores necesarios. El archivo de entrada generado contiene un elemento adicional resource_element_type de tipo ArmTemplate. Esto no es necesario al incorporar un VNF; puede eliminarlo. En este ejemplo se muestra el archivo de entrada de extensión Az CLI AOSM para un NSD ficticio de Contoso que se puede usar para implementar una instancia ficticia de Contoso VNF en una instancia de Azure Operator Nexus.

    {
        // 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-vnf",
        // Name of the ACR Artifact Store resource.
        // Will be created if it does not exist.
        "acr_artifact_store_name": "contoso-vnf-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-vnf-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-vnf NFD",
        // 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-vnf",
                    // 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-vnf",
                    // 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": "vnf"
                }
            }
        ]
    }
    

    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.

  3. 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 diseño del servicio de red (NSD)

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 NSD en el almacén de artefactos (plantilla ARM de función de red).

  1. 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 AcrPush los roles, 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.

Pasos siguientes