Hinzufügen von ARM-Ressourcen (Azure Resource Manager) zu einer Version des Netzwerkdienstentwurfs (Network Service Design Version, NSDV) von Azure Operator Service Manager (AOSM)
Mit Azure Operator Service Manager (AOSM) können Sie Versionen der Netzwerkfunktionsdefinition (Network Function Definition Versions, NFDVs) und ARM-Vorlagen (Azure Resource Manager) in einer Version des Netzwerkdienstentwurfs (Network Service Design Version, NSDV) kombinieren. Der NSDV wird zu einer einzelnen Vorlage für einen Netzwerkdienst, der sowohl eine Netzwerkfunktion als auch die zu ihrer Ausführung benötigte Azure-Infrastruktur enthält. Operatoren können dann die Netzwerkfunktion (NF) und die zugehörige Infrastruktur in einem einzelnen Vorgang bereitstellen.
In dieser Schrittanleitung erfahren Sie, wie Sie die AOSM-Erweiterung der Azure CLI verwenden, um eine NSDV zu erstellen und zu veröffentlichen, die sowohl eine Containernetzwerkfunktion (Containerized Network Function, CNF) als auch eine ARM-Ressource (Azure Resource Manager) enthält.
Das Onboarding ist ein mehrstufiger Prozess. Nach Erfüllung der Voraussetzungen können Sie die AOSM-Erweiterung der Azure CLI für Folgendes verwenden:
- Ändern einer bereits vorhandenen NSDV-Eingabedatei für eine CNF-Datei, für die das Onboarding bereits durchgeführt wurde
- Füllen der Eingabedatei mit den Informationen, die zum Erstellen der AOSM-Ressourcendefinitionen erforderlich sind
- Generieren von BICEP-Dateien, die basierend auf der Eingabedatei und Ihrer ARM-Vorlage eine Netzwerkdienstentwurfsgruppe und -version (Network Service Design Group and Version, NSDV) definieren
- Veröffentlichen der NSDV und Hochladen der ARM-Vorlage in einen Artefaktspeicher (von AOSM-verwaltete ACR-Instanz (Azure Container Registry))
In dieser Schrittanleitung wird Azure Key Vault (AKV) als Beispiel für eine Azure-Ressource verwendet. Die gleichen Schritte können jedoch für das Onboarding jeder beliebigen Azure-Ressource verwendet werden. In diesem Artikel wird eine CNF als exemplarische NF verwendet. Der Prozess ist für virtualisierte Netzwerkfunktionen (Virtualized Network Functions, VNFs) bis auf geringfügige Unterschiede in der NSDV-Eingabedatei identisch.
Voraussetzungen
- AOSM muss in Ihrem Azure-Abonnement aktiviert sein.
- Wenn Ihre CNF in Azure Operator Nexus ausgeführt werden soll, müssen Sie über Zugriff auf eine Azure Operator Nexus-Instanz verfügen und die Voraussetzungen für die Workloadbereitstellung erfüllen.
- Sie müssen das Onboarding für eine CNF durchgeführt haben, und die Eingabedatei, die Sie mit der
az aosm nsd generate-config
-Datei generiert haben, muss im lokalen Speicher des Computers verfügbar sein, von dem aus Sie die CLI ausführen.
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
Contributor
undAcrPush
für das Abonnement, das den von AOSM verwalteten Artefaktspeicher enthalten soll.- Es kann sein, dass Sie aufgrund Ihrer Unternehmensrichtlinie nicht über Berechtigungen auf Abonnementebene verfügen können. Der für den Befehl
az 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.
- Es kann sein, dass Sie aufgrund Ihrer Unternehmensrichtlinie nicht über Berechtigungen auf Abonnementebene verfügen können. Der für den Befehl
ARM-Vorlagen
- Im lokalen Speicher des Computers, von dem aus Sie die CLI ausführen, muss sich eine ARM-Vorlage befinden, die die Azure-Ressourcen definiert.
- Alle Parameter, die Sie für den Operator verfügbar machen möchten, der Ihre NSDV bereitstellt, müssen als Parameter in der ARM-Vorlage definiert werden.
Hinweis
Das Onboarding von Azure-Ressourcen, die in einer BICEP-Vorlage definiert sind, wird von der AOSM-Erweiterung der Azure CLI nicht unterstützt. Sie können jedoch den Befehl bicep build
verwenden, um Ihre BICEP-Dateien in ARM-Vorlagen zu konvertieren. Ausführliche Informationen und Anweisungen finden Sie in der Dokumentation zur Bicep-Befehlszeilenschnittstelle.
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.
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.
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 Netzwerkdienstentwurfsgruppe und -version
Öffnen Sie die NSDV-Eingabedatei, die Sie beim Onboarding Ihrer CNF generiert haben.
Hinweis
Falls Sie nicht über die NSDV-Eingabedatei aus Ihrem CNF-Onboarding verfügen, können Sie mithilfe des Befehls
az aosm nsd generate-config --output-file <nsd-output-filename.jsonc>
eine neue Eingabedatei generieren.Geben Sie die erforderlichen Werte ein. Verwenden Sie dazu die Inlinekommentare in Ihrer Eingabedatei. Dieses Beispiel zeigt die Eingabedatei der AOSM-Erweiterung der Azure CLI für eine fiktive Contoso-NSDV, die zum Bereitstellen einer fiktiven Contoso-CNF in einem mit Arc verbundenen Nexus Kubernetes-Cluster und in einer AKV-Instanz an einem Azure-Standort 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", // Name of the ACR Artifact Store resource. // Will be created if it does not exist. "acr_artifact_store_name": "contoso-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-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-cnf NFD and an Azure Key Vault", // 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", // 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-cnf-nfd", // 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": "cnf" } }, { // Type of Resource Element. Either NF or ArmTemplate "resource_element_type": "ArmTemplate", // Properties of the Resource Element. "properties": { // Name of the artifact. Used as internal reference only. "artifact_name": "contoso-keyvault", // 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": "./contoso-keyvault.json" } } ] }
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 der Netzwerkdienstentwurfsgruppe und -version
In diesem Schritt werden die AOSM-Ressourcen erstellt, die die Netzwerkdienstentwurfsgruppe und -version definieren. Außerdem werden von der NSDV benötigte Artefakte in den Artefaktspeicher hochgeladen (NF-ARM-Vorlage und AKV-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
auf Abonnementebene 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.