Quickstart: Een netwerkserviceontwerp (NSD) ontwerpen voor Ubuntu Virtual Machine (VM) als een gevirtualiseerde netwerkfunctie (VNF)
In deze quickstart wordt beschreven hoe u de az aosm
Azure CLI-extensie gebruikt om een eenvoudig netwerkserviceontwerp te maken en publiceren.
Vereisten
Er is een Azure-account met een actief abonnement vereist. Als u geen Azure-abonnement hebt, volgt u de instructies hier Gratis om een account te maken voordat u begint.
U moet voldoen aan de vereisten in de quickstart: Ubuntu Virtual Machine (VM) publiceren als V.V. (Virtual Network Function).
Invoerbestand maken
Maak een invoerbestand voor het publiceren van het Network Service Design. Voer de volgende opdracht uit om het invoerconfiguratiebestand voor netwerkserviceontwerp (NSD) te genereren.
az aosm nsd generate-config
Er wordt een nsd-input.jsonc
bestand gegenereerd wanneer u deze opdracht uitvoert.
Notitie
Bewerk het bestand nsd-input.jsonc en vervang het door de waarden in het voorbeeld. Verwijder de sectie waarin resource_element_type is ingesteld op ArmTemplate. Dit is bedoeld voor het toevoegen van infrastructuur (zoals VNets) aan complexere NSD's, die niet nodig zijn in deze quickstart. Sla het bestand op als input-vnf-nsd.jsonc.
Als u de naam van de uitgever hebt gewijzigd bij het publiceren van de NFDV, gebruikt u de naam van de uitgever voor zowel de als publisher
de publisher_name
velden (de laatste bevindt zich in de resource_element_templates
matrix).
Als u een andere resourcegroepnaam hebt gebruikt, werkt u zowel de velden als de publisher_resource_group_name
publisher_resource_group
velden bij (de laatste bevindt zich binnen de resource_element_templates
matrix).
{
// 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"
}
}
]
}
Variabele | Beschrijving |
---|---|
publisher_name | De naam van de Publisher-resource waarnaar u de definitie wilt publiceren. Gemaakt als deze niet bestaat. |
publisher_resource_group_name | Resourcegroep voor de Publisher-resource. Gemaakt als deze niet bestaat. |
acr_artifact_store_name | Naam van de ACR-resource (Azure Container Registry) Artifact Store. Gemaakt als deze niet bestaat. |
location | Azure-locatie die moet worden gebruikt bij het maken van resources. |
netwerkfuncties | uitgever: de naam van de uitgever waaronder deze NFDV (Network Function Definition Version) wordt gepubliceerd. |
publisher_resource_group: de resourcegroep waarin de uitgever wordt gehost. | |
name: De naam van de bestaande netwerkfunctiedefinitiegroep die moet worden geïmplementeerd met behulp van deze NSD. | |
versie: De versie van de bestaande netwerkfunctiedefinitie waarop deze NSD moet worden gebaseerd. Deze NSD kan elke NFDV implementeren met implementatieparameters die compatibel zijn met deze versie. | |
publisher_offering_location: de regio waarnaar de NFDV is gepubliceerd. | |
type: Type netwerkfunctie. Geldige waarden zijn cnf of vnf. | |
nsd_name | Naam van netwerkserviceontwerpgroep. De verzameling netwerkserviceontwerpversies. Gemaakt als deze niet bestaat. |
nsd_version | Versie van de NSD die moet worden gemaakt. De indeling moet A.B.C zijn. |
nsdv_description | Beschrijving van de NSDV. |
Het netwerkserviceontwerp (NSD) bouwen
Start het buildproces voor het netwerkserviceontwerp (NSD) met behulp van de volgende opdracht:
az aosm nsd build --config-file input-vnf-nsd.jsonc
Nadat het buildproces is voltooid, bekijkt u de volgende gegenereerde bestanden om inzicht te krijgen in de architectuur en structuur van de NSD.
Deze bestanden worden gemaakt in een submap met de naam nsd-cli-output:
Map/bestand | Beschrijving |
---|---|
nsd-cli-output/artifactManifest | |
deploy.bicep | Bicep-sjabloon voor het maken van artefactmanifest, met artefacten gevuld vanuit het invoerbestand |
nsd-cli-output/artifacts | |
artifacts.json | Lijst met artefacten (afbeeldingen en ARM-sjablonen) die moeten worden geüpload bij publiceren. Correleert met het artefactmanifest |
<nf-name.bicep> | Bicep-sjabloon per netwerkfunctie (NF) die is opgegeven in het invoerbestand, voor het implementeren van de NF. Deze sjabloon wordt geconverteerd naar een ARM-sjabloon en geüpload naar het artefactarchief wanneer u de publicatieopdracht uitvoert |
nsd-cli-output/base | |
deploy.bicep | Bicep-sjabloon voor het maken van de uitgever, opslagaccounts en netwerkserviceontwerpgroep die wordt gedeeld door alle NSDV's van deze NSD-groep |
nsd-cli-output/nsdDefinition | |
deploy.bicep | Bicep-sjabloon voor het maken van de Network Service Design Version (NSDV). Deze sjabloon bevat onderliggende resource-elementsjablonen, die afkomstig zijn van de gepubliceerde NFs of ARM-sjablonen (voor infrastructuur) die zijn gedefinieerd in het bestand nsd-input.jsonc |
config-group-schema.json | Gecombineerd schema voor configuratiegroepen voor alle NF's in deze NSDV. Dit schema definieert de invoer die de operator moet opgeven in de waarden van de configuratiegroep bij het implementeren van de NSDV als onderdeel van een sitenetwerkservice (SNS). |
<nf-naam>-mappings.json | Bestand dat de door de operator geleverde configuratiegroepwaarden toe wijst aan de implementatieparameters die zijn gedefinieerd in de NSDV. Er is één per NF in uw NSDV |
nsd-cli-output | |
all_deploy.parameters.json | Superset van alle implementatieparameters van NF, waarbij één bestand wordt geboden om resourcenamen aan te passen. De waarden die door de buildopdracht naar dit bestand worden uitgevoerd, worden opgehaald uit het bestand nsd-input.jsonc. U kunt de waarden in dit bestand bewerken voordat u publiceren uitvoert, bijvoorbeeld om naar een andere locatie te publiceren of een andere naam van de uitgever te gebruiken |
index.json | Bestand dat intern wordt gebruikt bij het publiceren van resources. Niet bewerken |
Het netwerkserviceontwerp (NSD) publiceren
Als u het netwerkserviceontwerp (NSD) en de bijbehorende artefacten wilt publiceren, voert u de volgende opdracht uit:
az aosm nsd publish --build-output-folder nsd-cli-output
Navigeer naar uw Publisher-resourcegroep om de resources en artefacten te bekijken die zijn geproduceerd.
Deze resources worden gemaakt:
Resourcenaam | Resourcetype |
---|---|
ubuntu-nsd | Het ontwerp van de netwerkservice. |
1.0.0 (ubuntu-nsd/1.0.0) | De ontwerpversie van de netwerkservice. |
ubuntu-nsd-nsd-manifest-1-0-0 | Manifest van Publisher-artefact. |
ConfigGroupSchema | Het schema van de configuratiegroep. |