Durchführen des Onboardings für eine virtualisierte Netzwerkfunktion (Virtualized Network Function, VNF) in Azure Operator Service Manager (AOSM) für die Bereitstellung in Azure Operator Nexus
In dieser Schrittanleitung erfahren Herausgeber von Netzwerkfunktionen und Dienstentwickler, wie sie die Azure CLI-Erweiterung für AOSM verwenden, um das Onboarding für eine virtualisierte Netzwerkfunktion in AOSM durchzuführen. Diese VNF kann anschließend in Azure Operator Nexus bereitgestellt werden. Das Onboarding ist ein mehrstufiger Prozess. Nach Erfüllung der Voraussetzungen können Sie die Azure CLI-Erweiterung für AOSM für Folgendes verwenden:
- Generieren von BICEP-Dateien, die Gruppe und Version der Netzwerkfunktionsdefinition (NFD) definieren
- Veröffentlichen der NFD und Hochladen des VNF-Images in einen Artefaktspeicher (von AOSM verwaltete ACR-Instanz (Azure Container Registry))
- Hinzufügen der veröffentlichten NFD zu den BICEP-Dateien, die Gruppe und Version eines Netzwerkdienstentwurfs (Network Service Design, NSD) definieren
- Veröffentlichen des NSD
Voraussetzungen
- Sie haben Zugriff auf eine Azure Operator Nexus-Instanz und erfüllen die Voraussetzungen für die Workloadbereitstellung.
- Sie haben AOSM in Ihrem Azure-Abonnement aktiviert.
Hinweis
Es wird dringend empfohlen, zu testen, ob die VM-Bereitstellung in Ihrer Azure Operator Nexus-Instanz erfolgreich ist, bevor Sie die VNF in AOSM integrieren.
Azure Operator Nexus-VM-Images und ARM-Vorlagen (Azure Resource Manager)
Sie haben ein Image für die Azure Operator Nexus-VM erstellt. Dieses Image muss in einer ACR-Instanz verfügbar sein.
Sie haben eine ARM-Vorlage erstellt, die eine Azure Operator Nexus-VM bereitstellt.
Die VM-ARM-Vorlage (sowohl für AzureCore als auch für Azure Operator Nexus) kann nur ARM-Ressourcen von den folgenden Ressourcenanbietern bereitstellen:
- Microsoft.Compute
- Microsoft.Network
- Microsoft.NetworkCloud
- Microsoft.Storage
- Microsoft.NetworkFabric
- Microsoft.Authorization
- Microsoft.ManagedIdentity
Die VNF-ARM-Vorlage sollte eine VM bereitstellen. Mehrere VMs können bereitgestellt werden, indem mehrere Instanzen der NFDV in die NSDV eingeschlossen werden.
Konfigurieren von Berechtigungen
- Sie benötigen die Rolle „Mitwirkender“ für Ihr Abonnement, um eine Ressourcengruppe erstellen zu können. Alternativ benötigen Sie eine bereits vorhandene Ressourcengruppe, in der Sie über die Rolle „Mitwirkender“ verfügen.
- Sie benötigen die Rollenzuweisungen
Reader
/AcrPull
für die ACR-Quellinstanz, die Ihre Images enthält. - Sie benötigen die Rollenzuweisungen
Contributor
undAcrPush
für das Abonnement, das den von AOSM verwalteten Artefaktspeicher enthalten soll. Mit diesen Berechtigungen kann die Azure CLI-Erweiterung für AOSM einen direkten Kopiervorgang von ACR zu ACR ausführen. Das direkte Kopieren ist die schnellste Methode zum Übertragen von Images von einer ACR-Instanz zu einer anderen.- Ihre Unternehmensrichtlinien verhindern möglicherweise, dass Sie über abonnementbezogene Berechtigungen verfügen. Der für die Befehle
az aosm nfd publish
undaz aosm nsd publish
verfügbare Parameter--no-subscription-permissions
verwendet stark bereichsbezogene Berechtigungen, die vom AOSM-Dienst abgeleitet werden, um einen zweistufigen Kopiervorgang auf Ihren lokalen Computer und von Ihrem lokalen Computer zu orchestrieren. Dieser zweistufige Kopiervorgang ist zwar langsamer, erfordert aber keine Abonnementberechtigungen.
- Ihre Unternehmensrichtlinien verhindern möglicherweise, dass Sie über abonnementbezogene Berechtigungen verfügen. Der für die Befehle
Herunterladen und Installieren der Azure CLI
Informationen zum lokalen Installieren der Azure CLI finden Sie unter Installieren der Azure CLI.
Um sich bei der Azure CLI anzumelden, verwenden Sie den Befehl az login
, und befolgen Sie die in Ihrem Terminal angezeigten Eingabeaufforderungen, um die Authentifizierung abzuschließen. Weitere Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.
Hinweis
Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container. Sie können auch die Bash-Umgebung in Azure Cloud Shell verwenden. Weitere Informationen zur Verwendung der Bash-Umgebung in Azure Cloud Shell finden Sie unter Starten der Cloud Shell.
Helm und Docker-Engine
- Installieren Sie die Helm-Befehlszeilenschnittstelle auf dem Hostcomputer. Verwenden Sie mindestens Helm v3.8.0.
- Installieren Sie Docker auf dem Hostcomputer.
Installieren der AOSM-CLI-Erweiterung
Für die AOSM-Erweiterung der Azure CLI ist mindestens die Version 2.54.0 der Azure CLI erforderlich.
- Führen Sie
az version
aus, um die installierte Version und die abhängigen Bibliotheken anzuzeigen. - Führen Sie
az upgrade
aus, um ein Upgrade auf die aktuelle Version der Azure CLI durchzuführen.
Installieren Sie die AOSM-CLI-Erweiterung mithilfe des folgenden Befehls:
az extension add --name aosm
Erstellen der Netzwerkfunktionsdefinitionsgruppe und -version
In diesem Abschnitt wird ein Ordner im Arbeitsverzeichnis namens vnf-cli-output
mit den BICEP-Vorlagen der AOSM-Ressourcen erstellt, die Ihre Netzwerkfunktionsdefinitionsgruppe und -version definieren. Außerdem wird der Artefaktspeicher erstellt. Diese Ressourcen werden letztendlich im Netzwerkdienstentwurf enthalten sein.
Generieren Sie die Eingabedatei der Azure CLI-AOSM-Erweiterung für eine VNF.
az aosm nfd generate-config --definition-type vnf-nexus --output-file <filename.jsonc>
Öffnen Sie die Eingabedatei, die Sie im vorherigen Schritt generiert haben, und verwenden Sie die Inlinekommentare, um die erforderlichen Werte einzugeben. Dieses Beispiel zeigt die Eingabedatei der Azure CLI-AOSM-Erweiterung für eine fiktive Contoso-VNF, die in Azure Operator Nexus ausgeführt wird.
Hinweis
Die Azure CLI-AOSM-Erweiterung macht standardmäßig nur erforderliche Parameter ohne Standardwerte in der ARM-Vorlage für die Eingabe verfügbar. Sie können
expose_all_parameters
auftrue
festlegen, um alle ARM-Vorlagenparameter in der Netzwerkfunktionsdefinitionsversion (NFDV) und im Konfigurationsgruppenschema (Configuration Group Schema, CGS) verfügbar zu machen. Ausführlichere Informationen finden Sie im Artikel zum Verfügbarmachen von Parametern mithilfe der AOSM-CLI-Erweiterung.{ // 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"] }```
Führen Sie den folgenden Befehl aus, um die Netzwerkfunktionsdefinitionsgruppe und -version zu erstellen.
az aosm nfd build --definition-type vnf-nexus --config-file <filename.jsonc>
Veröffentlichen der Netzwerkfunktionsdefinitionsgruppe und -version
In diesem Schritt werden die AOSM-Ressourcen erstellt, die die Netzwerkfunktionsdefinition und den Artefaktspeicher definieren, der zum Speichern der VM-Images der Netzwerkfunktion verwendet wird. Außerdem werden die Images in den Artefaktspeicher hochgeladen. Dazu kopieren Sie sie entweder direkt aus der ACR-Quellinstanz oder versehen die Docker-Images lokal mit einem neuen Tag und laden sie mithilfe stark bereichsbezogener Anmeldeinformationen, die vom AOSM-Dienst erstellt wurden, in den Artefaktspeicher hoch, falls Sie nicht über die Rollen Contributor
und AcrPush
im Abonnementbereich verfügen.
- Führen Sie den folgenden Befehl aus, um die Netzwerkfunktionsdefinitionsgruppe und -version zu veröffentlichen. Falls Sie nicht über die Rollen
Contributor
undAcrPush
im Abonnementbereich verfügen, schließen Sie--no-subscription-permissions
in den Befehl ein.
az aosm nfd publish --build-output-folder vnf-cli-output --definition-type vnf
Sie können die Ordner- und Dateistruktur überprüfen und ggf. Änderungen vornehmen.
Erstellen der Netzwerkdienstentwurfsgruppe und -version
In diesem Abschnitt wird ein Ordner im Arbeitsverzeichnis nsd-cli-output
erstellt. Dieser Ordner enthält die BICEP-Vorlagen der AOSM-Ressourcen, die eine Netzwerkdienstentwurfsgruppe und -version definieren. Dieser Netzwerkdienstentwurf ist eine Vorlage, die in der Standortnetzwerkdienst-Ressource verwendet wird, die die in den vorherigen Abschnitten integrierte Netzwerkfunktion bereitstellt.
Generieren Sie die NSD-Eingabedatei der Azure CLI-AOSM-Erweiterung.
az aosm nsd generate-config --output-file <nsd-output-filename.jsonc>
Öffnen Sie die Eingabedatei, die Sie im vorherigen Schritt generiert haben, und verwenden Sie die Inlinekommentare, um die erforderlichen Werte einzugeben. Die generierte Eingabedatei enthält ein zusätzliches
resource_element_type
-Element vom TypArmTemplate
. Dies ist beim Onboarding einer VNF unnötig. Sie können es löschen. Dieses Beispiel zeigt die Eingabedatei der Azure CLI-AOSM-Erweiterung für einen fiktiven Contoso-NSD, der zum Bereitstellen einer fiktiven Contoso-VNF in einer Azure Operator Nexus-Instanz verwendet werden kann.{ // 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" } } ] }
Hinweis
Der Ressourcenelement-Vorlagenabschnitt definiert, welche NFD im NSD enthalten ist. Die Eigenschaften müssen mit den Eigenschaften übereinstimmen, die in der an den Befehl
az aosm nfd build
übergebenen Eingabedatei verwendet werden. Das liegt daran, dass die AOSM-Erweiterung der Azure CLI beim Erstellen des NSD überprüft, ob das Onboarding der NFD ordnungsgemäß durchgeführt wurde.Führen Sie den folgenden Befehl aus, um die BICEP-Vorlagen für die Netzwerkdienstentwurfsgruppe und -version zu erstellen:
az aosm nsd build --config-file <nsd-output-filename.jsonc>
Sie können die Ordner- und Dateistruktur überprüfen und ggf. Änderungen vornehmen.
Veröffentlichen des Netzwerkdienstentwurfs (Network Service Design, NSD)
In diesem Schritt werden die AOSM-Ressourcen erstellt, die die Netzwerkdienstentwurfsgruppe und -version definieren. Außerdem werden vom NSD benötigte Artefakte in den Artefaktspeicher hochgeladen (Netzwerkfunktions-ARM-Vorlage ).
- Führen Sie den folgenden Befehl aus, um die Netzwerkdienstentwurfsgruppe und -version zu veröffentlichen. Falls Sie nicht über die Rollen
Contributor
undAcrPush
im Abonnementbereich verfügen, schließen Sie--no-subscription-permissions
in den Befehl ein.
az aosm nsd publish --build-output-folder nsd-cli-output
Sie verfügen jetzt über einen vollständigen Satz von AOSM-Herausgeberressourcen und können den Operatorflow ausführen.