Inicio rápido: Diseñar un diseño del servicio de red (NSD) para la máquina virtual (VM) Ubuntu como una función de red virtualizada (VNF)
En este inicio rápido se describe cómo usar la extensión de la CLI de Azure az aosm
para crear y publicar un diseño del servicio de red básico.
Requisitos previos
Se requiere una cuenta de Azure con una suscripción activa. Si no tiene una suscripción de Azure, siga las instrucciones que se indican aquí : Comenzar gratis para crear una cuenta antes de comenzar.
Debe seguir los requisitos previos de Inicio rápido: publicar máquinas virtuales (VM) de Ubuntu como función de red virtual (VNF).
Crear un archivo de entrada
Crear un archivo de entrada para publicar el diseño del servicio de red. Ejecutar el siguiente comando para generar el archivo de configuración de entrada para el diseño del servicio de red (NSD).
az aosm nsd generate-config
Se genera un archivo nsd-input.jsonc
al ejecutar este comando.
Nota:
Edite el archivo nsd-input.jsonc y reemplace los valores que se muestran en el ejemplo. Quite la sección donde se establece resource_element_type en ArmTemplate. Esto es para agregar infraestructura (como redes virtuales) a NSD más complicados, lo que no es necesario en este inicio rápido. Guarde el archivo como input-vnf-nsd.jsonc.
Si cambió el nombre del publicador al publicar la NFDV, use el nombre del publicador para los campos publisher_name
y publisher
(el último está dentro de la matriz resource_element_templates
).
Si ha usado otro nombre de grupo de recursos, actualice los campos publisher_resource_group_name
y publisher_resource_group
(este último se encuentra dentro de la matriz resource_element_templates
).
{
// 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.
// You should create this before running the publish command.
"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",
// Network Service Design (NSD) name. This is the collection of Network Service Design Versions. Will be created if it does not exist.
"nsd_name": "ubuntu-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": "Plain ubuntu VM",
// 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": "ubuntu-publisher",
// The resource group that the publisher is hosted in.
"publisher_resource_group": "ubuntu-publisher-rg",
// 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": "ubuntu-vm",
// 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": "uksouth",
// Type of Network Function. Valid values are 'cnf' or 'vnf'.
"type": "vnf"
}
}
]
}
Variable | Descripción |
---|---|
publisher_name | Nombre del recurso del publicador en el que desea publicar la definición. Se crea si no existe. |
publisher_resource_group_name | Grupo de recursos para el recurso del publicador. Se crea si no existe. |
acr_artifact_store_name | Nombre del recurso de almacén de artefactos de Azure Container Registry (ACR). Se crea si no existe. |
ubicación | Ubicación de Azure que se usará al crear recursos. |
network-functions | publicador: el nombre del publicador en el que se publica esta versión de definición de función de red (NFDV). |
publisher_resource_group: el grupo de recursos en el que se hospeda el publicador. | |
name: el nombre del grupo de definición de función de red existente que se va a implementar con este NSD. | |
version: la versión de la definición de función de red existente en la que basar este NSD. Este NSD puede implementar cualquier NFDV con parámetros de implementación compatibles con esta versión. | |
publisher_offering_location: región en la que se publica el NFDV. | |
type: tipo de función de red. Los valores válidos son cnf o vnf. | |
nsd_name | Nombre del grupo de diseño del servicio de red. Colección de versiones del diseño del servicio de red. Se crea si no existe. |
nsd_version | Versión del NSD que se va a crear. El formato debe ser A.B.C. |
nsdv_description | Descripción del NSDV. |
Compilar el diseño del servicio de red (NSD)
Iniciar el proceso de compilación del diseño de servicio de red (NSD) mediante el siguiente comando:
az aosm nsd build --config-file input-vnf-nsd.jsonc
Una vez completado el proceso de compilación, revisar los siguientes archivos generados para obtener información sobre la arquitectura y la estructura del NSD.
Estos archivos se crean en un subdirectorio denominado nsd-cli-output:
Directorio / Archivo | Descripción |
---|---|
nsd-cli-output/artifactManifest | |
deploy.bicep | Plantilla de Bicep para crear un manifiesto de artefacto, con artefactos rellenados desde el archivo de entrada |
nsd-cli-output/artifacts | |
artifacts.json | Lista de artefactos (imágenes y plantillas de ARM) que se van a cargar en la publicación. Se correlaciona con el manifiesto del artefacto |
<nf-name>.bicep | Plantilla de Bicep por RET de función de red (NF) proporcionada en el archivo de entrada para implementar el NF. Esta plantilla se convierte en una plantilla de ARM y se carga en el almacén de artefactos al ejecutar el comando publish |
nsd-cli-output/base | |
deploy.bicep | Plantilla de Bicep para crear el grupo de diseño del publicador, las cuentas de almacenamiento y el servicio de red compartidos por todos los NSDV de este grupo de NSD |
nsd-cli-output/nsdDefinition | |
deploy.bicep | Plantilla de Bicep para crear la versión de diseño del servicio de red (NSDV). Esta plantilla contiene plantillas de elementos de recursos secundarios, que se toman de las plantillas de ARM o NF publicadas (para la infraestructura) definidas en el archivo nsd-input.jsonc |
config-group-schema.json | Esquema de grupo de configuración combinado para todas las NF de este NSDV. Este esquema define las entradas que el operador debe proporcionar en los valores del grupo de configuración al implementar NSDV como parte de un servicio de red de sitio (SNS). |
<nf-name>-mappings.json | Archivo que asigna los valores del grupo de configuración proporcionados por el operador a los parámetros de implementación definidos en el NSDV. Hay uno por NF en el NSDV |
nsd-cli-output | |
all_deploy.parameters.json | Superconjunto de todos los parámetros de implementación de NF, lo que proporciona un único archivo para personalizar los nombres de recursos. Los valores de salida de este archivo por el comando build se toman del archivo nsd-input.jsonc. Edite los valores de este archivo antes de ejecutar la publicación, por ejemplo, para publicar en una ubicación diferente o usar un nombre de publicador diferente |
index.json | Archivo usado internamente al publicar recursos. No editar |
Publicar el diseño del servicio de red (NSD)
Para publicar el diseño del servicio de red (NSD) y sus artefactos asociados, emita el siguiente comando:
az aosm nsd publish --build-output-folder nsd-cli-output
Vaya al grupo de recursos del publicador para observar y revisar los recursos y artefactos que se generaron.
Se crean estos recursos:
Nombre de recurso | Tipo de recurso |
---|---|
ubuntu-nsd | Diseño del servicio de red. |
1.0.0 (ubuntu-nsd/1.0.0) | Versión del diseño del servicio de red. |
ubuntu-nsd-nsd-manifest-1-0-0 | Manifiesto de artefacto del publicador. |
ConfigGroupSchema | Esquema del grupo de configuración. |