Guida introduttiva: Progettare una progettazione del servizio di rete (NSD) per una macchina virtuale Ubuntu come funzione di rete virtualizzata (VNF)
Questa guida introduttiva descrive come usare l'estensione dell'interfaccia della riga di comando di Azure az aosm
per creare e pubblicare una progettazione di base del servizio di rete.
Prerequisiti
È richiesto un account Azure con una sottoscrizione attiva. Se non si dispone di una sottoscrizione di Azure, seguire le istruzioni riportate qui Iniziare gratuitamente per creare un account prima di iniziare.
È necessario seguire i prerequisiti in Avvio rapido: Pubblicare una macchina virtuale Ubuntu (VM) come funzione di rete virtuale (VNF).
Creare un file di input
Creare un file di input per la pubblicazione della progettazione del servizio di rete. Eseguire il comando seguente per generare il file di configurazione di input per NSD (Network Service Design).
az aosm nsd generate-config
Un file nsd-input.jsonc
viene generato quando si esegue questo comando.
Nota
Modificare il file nsd-input.jsonc, sostituendolo con i valori mostrati nell'esempio. Rimuovere la sezione in cui resource_element_type è impostata su ArmTemplate. Si tratta dell'aggiunta di un'infrastruttura, ad esempio reti virtuali, a NSD più complicate, che non sono necessarie in questo argomento di avvio rapido. Salvare il file come input-vnf-nsd.jsonc.
Se il nome dell'autore è stato modificato durante la pubblicazione del valore NFDV, usare il nome dell'editore per i campi publisher_name
e publisher
(quest'ultimo si trova all'interno della matrice di resource_element_templates
).
Se è stato usato un nome di gruppo di risorse diverso, aggiornare i campi publisher_resource_group_name
e publisher_resource_group
(quest'ultimo si trova all'interno della matrice 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"
}
}
]
}
Variabile | Descrizione |
---|---|
publisher_name | Nome della risorsa del server di pubblicazione in cui si vuole pubblicare la definizione. Se non esiste viene creato. |
publisher_resource_group_name | Gruppo di risorse per la risorsa del server di pubblicazione. Se non esiste viene creato. |
acr_artifact_store_name | Nome della risorsa archivio artefatti del Registro Azure Container. Se non esiste viene creato. |
location | Posizione di Azure da usare durante la creazione delle risorse. |
funzioni di rete | publisher: il nome dell'editore in cui è pubblicata la versione NFDV (Network Function Definition Version). |
publisher_resource_group: gruppo di risorse in cui è ospitato il server di pubblicazione. | |
name: nome del gruppo di definizioni di funzione di rete esistente da distribuire usando questo NSD. | |
version: versione della definizione di funzione di rete esistente per basare questo NSD. Questo NSD è in grado di distribuire qualsiasi NFDV con parametri di distribuzione compatibili con questa versione. | |
publisher_offering_location: area in cui è pubblicato il valore NFDV. | |
type: tipo di funzione di rete. I valori validi sono cnf o vnf. | |
nsd_name | Nome gruppo di progettazione del servizio di rete. Raccolta di versioni di progettazione dei servizi di rete. Se non esiste viene creato. |
nsd_version | Versione del gruppo di sicurezza di rete da creare. Il formato deve essere A.B.C. |
nsdv_description | Descrizione del NSDV. |
Creare la progettazione del servizio di rete (NSD)
Avviare il processo di compilazione per la progettazione del servizio di rete usando il comando seguente:
az aosm nsd build --config-file input-vnf-nsd.jsonc
Al termine del processo di compilazione, esaminare i file generati seguenti per ottenere informazioni dettagliate sull'architettura e la struttura del gruppo di sicurezza di rete.
Questi file vengono creati in una sottodirectory denominata nsd-cli-output:
Directory/File | Descrizione |
---|---|
nsd-cli-output/artifactManifest | |
deploy.bicep | Modello Bicep per creare il manifesto dell'artefatto, con artefatti popolati a partire dal file di input |
nsd-cli-output/artifacts | |
artifacts.json | Elenco di artefatti (immagini e modelli ARM) da caricare durante la pubblicazione. È relazionato al manifesto dell'artefatto |
<nf-name>.bicep | Modello Bicep per funzione di rete (NF) fornito nel file di input, per la distribuzione del valore NF. Questo modello viene convertito in un modello di Resource Manager e caricato nell'archivio artefatti quando si esegue il comando publish |
nsd-cli-output/base | |
deploy.bicep | Modello Bicep per creare il gruppo di progettazione del server di pubblicazione, degli account di archiviazione e del servizio di rete condiviso da tutti i gruppi NSD di questo gruppo NSD |
nsd-cli-output/nsdDefinition | |
deploy.bicep | Modello Bicep per creare la versione NSDV (Network Service Design Version). Questo modello contiene modelli di elemento risorsa figlio, tratti dai modelli NFS o ARM pubblicati (per l'infrastruttura) definiti nel file nsd-input.jsonc |
config-group-schema.json | Schema del gruppo di configurazione combinato per tutte le NFS in questo NSDV. Questo schema definisce gli input che l'operatore deve fornire nei valori del gruppo di configurazione durante la distribuzione di NSDV come parte di un servizio di rete del sito (SNS). |
<nf-name>-mappings.json | File che esegue il mapping dei valori del gruppo di configurazione forniti dall'operatore ai parametri di distribuzione definiti nella NSDV. Ce n'è uno per NF nella NSDV |
nsd-cli-output | |
all_deploy.parameters.json | Superset di tutti i parametri di distribuzione della funzione di rete, che fornisce un singolo file per personalizzare i nomi delle risorse. I valori restituiti in questo file dal comando di compilazione vengono ricavati dal file nsd-input.jsonc. È possibile modificare i valori in questo file prima di eseguire la pubblicazione, ad esempio per pubblicare in un percorso diverso o usare un nome di autore diverso |
index.json | File usato internamente durante la pubblicazione delle risorse. Non modificare |
Pubblicare la progettazione del servizio di rete (NSD)
Per pubblicare la progettazione del servizio di rete (NSD) e gli artefatti associati, eseguire il comando seguente:
az aosm nsd publish --build-output-folder nsd-cli-output
Passare al gruppo di risorse del server di pubblicazione per osservare ed esaminare le risorse e gli artefatti prodotti.
Vengono create queste risorse:
Nome della risorsa | Tipo di risorsa |
---|---|
ubuntu-nsd | Progettazione del servizio di rete. |
1.0.0 (ubuntu-nsd/1.0.0) | Versione di progettazione del servizio di rete. |
ubuntu-nsd-nsd-manifest-1-0-0 | Manifesto dell'artefatto del server di pubblicazione. |
ConfigGroupSchema | Schema del gruppo di configurazione. |