Verwenden der Cli-Erweiterung Azure Operator Service Manager (AOSM)
In dieser Anleitung erfahren Network Function Publisher und Service Designer, wie Sie die Azure CLI-Erweiterung für die ersten Schritte mit Network Function Definitions (NFDs) und Network Service Designs (NSDs) verwenden.
Die az aosm
CLI-Erweiterung soll Unterstützung für die Veröffentlichung von Azure Operator Service Manager-Designs und Definitionen bieten. Die CLI-Erweiterung unterstützt die Veröffentlichung von Network Function Definitions (NFDs) und Netzwerkdienstdesigns (Network Service Designs, NSDs) für die Verwendung mit Azure Operator Service Manager.
Voraussetzungen
Wenden Sie sich an Ihr Microsoft-Kontoteam, um Ihr Azure-Abonnement für den Zugriff auf Azure Operator Service Manager (AOSM) zu registrieren oder Ihr Interesse über das Partnerregistrierungsformular auszudrücken.
Herunterladen und Installieren von Azure CLI
Verwenden Sie die Bash-Umgebung in der Azure Cloud Shell. Weitere Informationen finden Sie unter Starten der Cloud Shell zur Verwendung der Bash-Umgebung in Azure Cloud Shell.
Für Benutzer, die CLI-Referenzbefehle lieber lokal ausführen möchten, finden Sie informationen zum Installieren der Azure CLI.
Wenn Sie unter Windows oder macOS ausgeführt werden, sollten Sie azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mit dem Befehl bei der az login
Azure CLI an, und schließen Sie die in Ihrem Terminal angezeigten Eingabeaufforderungen ab, um die Authentifizierung abzuschließen. Weitere Anmeldeoptionen finden Sie unter Anmelden mit Azure CLI.
Installieren der CLI-Erweiterung Azure Operator Service Manager (AOSM)
Installieren Sie die Cli-Erweiterung Azure Operator Service Manager (AOSM) mit diesem Befehl:
az extension add --name aosm
- Führen Sie die Ausführung aus
az version
, um die installierten Versions- und abhängigen Bibliotheken anzuzeigen. - Führen Sie den
az upgrade
Befehl aus, um ein Upgrade auf die aktuelle Version von Azure CLI durchzuführen.
Registrieren und Überprüfen der erforderlichen Ressourcenanbieter
Bevor Sie mit der Verwendung des Azure Operator Service Manager beginnen, müssen Sie den erforderlichen Ressourcenanbieter registrieren. Führen Sie die folgenden Befehle aus. Dieser Registrierungsprozess kann bis zu 5 Minuten dauern.
# Register Resource Provider
az provider register --namespace Microsoft.HybridNetwork
az provider register --namespace Microsoft.ContainerRegistry
Überprüfen Sie den Registrierungsstatus der Ressourcenanbieter. Führen Sie die folgenden Befehle aus.
# Query the Resource Provider
az provider show -n Microsoft.HybridNetwork --query "{RegistrationState: registrationState, ProviderName: namespace}"
az provider show -n Microsoft.ContainerRegistry --query "{RegistrationState: registrationState, ProviderName: namespace}"
Hinweis
Es kann einige Minuten dauern, bis die Registrierung des Ressourcenanbieters abgeschlossen ist. Sobald die Registrierung erfolgreich ist, können Sie mit dem Azure Operator Service Manager (AOSM) fortfahren.
Anforderungen für containerisierte Netzwerkfunktion (CNF)
Für diejenigen, die containerisierte Netzwerkfunktionen verwenden, müssen Sie sicherstellen, dass die folgenden Pakete auf dem Computer installiert sind, von dem Aus Sie die CLI ausführen:
- Install Helm, refer to Install Helm CLI.
- Installieren Sie docker unter bestimmten Umständen unter "Installieren des Docker-Moduls". Nur erforderlich, wenn sich das Quellimage in Ihrem lokalen Docker-Repository befindet oder Sie keine abonnementweiten Berechtigungen besitzen, um Diagramme und Bilder zu pushen.
Berechtigungen
Ein Azure-Konto mit einem aktiven Abonnement ist erforderlich. Wenn Sie kein Azure-Abonnement haben, folgen Sie den Anweisungen hier "Start free ", um ein Konto zu erstellen, bevor Sie beginnen.
Sie benötigen die Rolle "Mitwirkender" für dieses Abonnement, um eine Ressourcengruppe oder eine vorhandene Ressourcengruppe zu erstellen, in der Sie über die Rolle "Mitwirkender" verfügen.
Berechtigungen zum Veröffentlichen von CNFs
Wenn Sie die CNF-Bilder aus einem vorhandenen ACR beziehen, müssen Reader
/AcrPull
Sie über Berechtigungen für dieses ACR verfügen und im Idealfall Contributor
rollen + AcrPush
Rolle (oder eine benutzerdefinierte Rolle, die die importImage
Aktion und AcrPush
) über das gesamte Abonnement zulässt, um in den neuen Artefaktspeicher importieren zu können. Wenn Sie über diese Verfügen, müssen Sie docker nicht lokal installieren, und die Imagekopie ist schnell.
Wenn Sie nicht über die abonnementweiten Berechtigungen verfügen, können Sie den Befehl mithilfe des az aosm nfd publish
--no-subscription-permissions
Flags ausführen, um das Bild auf Ihren lokalen Computer zu ziehen und es dann mithilfe von Manifestanmeldeinformationen, die nur auf den Speicher ausgerichtet sind, an den Artefaktspeicher zu übertragen. Erfordert, dass Docker lokal installiert wird.
Übersicht über die Cli-Erweiterung von Azure Operator Service Manager (AOSM)
Netzwerkfunktionsherverher und Dienstdesigner verwenden die Azure CLI-Erweiterung, um die Veröffentlichung von Netzwerkfunktionsdefinitionen (NETWORK Function Definitions, NFDs) und Netzwerkdienstdesigns (Network Service Designs, NSDs) zu erleichtern.
Wie in Rollen und Schnittstellen erläutert, hat ein Herausgeber einer Netzwerkfunktion verschiedene Zuständigkeiten. Die CLI-Erweiterung unterstützt die fett dargestellten Elemente:
- Erstellen Sie die Netzwerkfunktion.
- Codieren Sie dies in einem Netzwerkfunktionsdesign (NETWORK Function Design, NFD).
- Bestimmen Sie die Bereitstellungsparameter, die für den Dienst-Designer verfügbar gemacht werden sollen.
- Onboarding des Network Function Design (NFD) in Azure Operator Service Manager (AOSM).Onboard the Network Function Design (NFD) to Azure Operator Service Manager (AOSM).
- Laden Sie die zugehörigen Artefakte hoch.
- Überprüfen des Netzwerkfunktionsdesigns (NETWORK Function Design, NFD).
Ein Dienst-Designer hat auch verschiedene Zuständigkeiten, von denen die CLI-Erweiterung mit den Elementen fett formatiert unterstützt:
- Wählen Sie aus, welche Netzwerkfunktionsdefinitionen im Dienstentwurf enthalten sind.
- Codieren Sie dies in einen Netzwerkdienstentwurf.
- Kombinieren Sie die Azure-Infrastruktur mit dem Netzwerkdienstdesign.
- Bestimmen Sie, wie der Dienst parametrisiert wird, indem Sie ein oder mehrere Konfigurationsgruppenschemas (Configuration Group Schemas, CGSs) definieren.
- Bestimmen Sie, wie Eingaben vom Dienstanbieter Parametern zugeordnet werden, die von den Netzwerkfunktionsdefinitionen und der Azure-Infrastruktur benötigt werden.
- Onboarding des Netzwerkdienstdesigns (Network Service Design, NSD) in Azure Operator Service Manager (AOSM).
- Laden Sie die zugehörigen Artefakte hoch.
- Überprüfen des Netzwerkdienstentwurfs (Network Service Design, NSD).
Workflow-Zusammenfassung
Ein allgemeiner Workflow für die Verwendung der CLI-Erweiterung ist:
Suchen Sie die erforderlichen Elemente für Ihren Anwendungsfall.
Führen Sie einen
generate-config
Befehl aus, um eine BEISPIEL-JSON-Konfigurationsdatei für nachfolgende Befehle auszugeben.Füllen Sie die Konfigurationsdatei aus.
Führen Sie einen
build
Befehl aus, um eine oder mehrere Bicep-Vorlagen für die Netzwerkfunktionsdefinition oder den Netzwerkdienstentwurf auszugeben.Überprüfen Sie die Ausgabe des Buildbefehls, bearbeiten Sie die Ausgabe nach Bedarf.
Führen Sie einen
publish
Befehl aus, um:- Erstellen Sie alle erforderlichen Ressourcen wie Ressourcengruppe, Publisher, Artefaktspeicher, Gruppen.
- Stellen Sie diese Bicep-Vorlagen bereit.
- Laden Sie Artefakte in die Artefaktspeicher hoch.
VNF-Startpunkt
Für VNFs benötigen Sie eine einzelne ARM-Vorlage, die die Azure-Ressourcen für Ihre VNF erstellen würde, z. B. einen virtuellen Computer, Datenträger und NICs. Die ARM-Vorlage muss auf dem Computer gespeichert werden, auf dem Sie die CLI ausführen.
Für Virtualized Network Function Definition Versions (VNF NFDVs) muss die Liste "networkFunctionApplications" eine VhdImageFile- und eine ARM-Vorlage enthalten. Es ist ungewöhnlich, mehr als eine VhdImageFile- und mehr als eine ARM-Vorlage einzuschließen. Sofern Sie keinen starken Grund haben, sollte die ARM-Vorlage einen einzelnen virtuellen Computer bereitstellen. Der Dienst-Designer sollte zahlreiche Kopien der Network Function Definition (NFD) mit dem Netzwerkdienstentwurf (Network Service Design, NSD) enthalten, wenn Sie mehrere VMs bereitstellen möchten. Die ARM-Vorlage (für AzureCore und Nexus) kann nur ARM-Ressourcen von den folgenden Ressourcenanbietern bereitstellen:
Microsoft.Compute
Microsoft.Network
Microsoft.NetworkCloud
Microsoft.Storage
Microsoft.NetworkFabric
Microsoft.Authorization
Microsoft.ManagedIdentity
Außerdem benötigen Sie ein VHD-Image, das für den virtuellen VNF-Computer verwendet wird. Das VHD-Image kann auf dem Computer gespeichert werden, auf dem Sie die CLI ausführen, oder in Azure Blob Storage, auf das über einen SAS-URI zugegriffen werden kann.
CNF-Startpunkt
Für Bereitstellungen von Containerized Network Functions (CNFs) ist es wichtig, folgendes auf dem Computer zu speichern, von dem Aus Sie die CLI ausführen:
Helmpakete mit Schema – Diese Pakete sollten in Ihrem lokalen Speicher vorhanden sein und in der
input.json
Konfigurationsdatei referenziert werden. Wenn Sie dieser Schnellstartanleitung folgen, laden Sie das erforderliche Helmpaket herunter.Erstellen einer Beispielkonfigurationsdatei – Generieren Sie eine Beispielkonfigurationsdatei zum Definieren einer CNF-Bereitstellung. Geben Sie diesen Befehl aus, um eine
input.json
Datei zu generieren, die Sie mit Ihrer spezifischen Konfiguration auffüllen müssen.az aosm nfd generate-config
Bilder für Ihren CNF – Hier sind die Optionen:
- Ein Verweis auf eine vorhandene Azure-Containerregistrierung, die die Images für Ihren CNF enthält. Derzeit werden nur ein ACR und ein Namespace pro CNF unterstützt. Die bilder, die aus diesem ACR kopiert werden sollen, werden automatisch basierend auf dem Helmpaketschema aufgefüllt. Sie müssen über Lese-/AcrPull-Berechtigungen für diesen ACR verfügen. Um diese Option zu verwenden, füllen Sie die Datei "input.json" aus, und geben
source_registry
Sie sie optionalsource_registry_namespace
ein. - Der Imagename des Docker-Quellimages vom lokalen Computer. Dieser Imagename ist für einen begrenzten Anwendungsfall vorgesehen, in dem der CNF nur ein einzelnes Docker-Image erfordert, das im lokalen Docker-Repository vorhanden ist. Um diese Option zu verwenden, füllen Sie
source_local_docker_image
die Datei "input.json" aus. Erfordert, dass Docker installiert ist. Diese Schnellstartanleitung führt Sie durch das Herunterladen eines nginx-Docker-Images, das für diese Option verwendet werden soll.
- Ein Verweis auf eine vorhandene Azure-Containerregistrierung, die die Images für Ihren CNF enthält. Derzeit werden nur ein ACR und ein Namespace pro CNF unterstützt. Die bilder, die aus diesem ACR kopiert werden sollen, werden automatisch basierend auf dem Helmpaketschema aufgefüllt. Sie müssen über Lese-/AcrPull-Berechtigungen für diesen ACR verfügen. Um diese Option zu verwenden, füllen Sie die Datei "input.json" aus, und geben
Optional: Zuordnungsdatei (path_to_mappings): Optional können Sie eine Datei (auf dem Datenträger) mit dem Namen path_to_mappings bereitstellen. Diese Datei sollte Spiegel
values.yaml
, wobei die ausgewählten Werte durch Bereitstellungsparameter ersetzt werden. Dadurch werden sie als Parameter für den CNF verfügbar gemacht. Oder Sie können dieses Leerzeichen beibehalteninput.json
, und die CLI generiert die Datei. In diesem Fall wird jeder Wert invalues.yaml
diesem Fall als Bereitstellungsparameter verfügbar gemacht. Alternativ können Sie das--interactive
CLI-Argument verwenden, um interaktiv Entscheidungen zu treffen. Diese Schnellstartanleitung führt Sie durch die Erstellung dieser Datei.
Stellen Sie beim Konfigurieren der input.json
Datei sicher, dass Sie die Helm-Pakete in der Reihenfolge auflisten, in der sie bereitgestellt werden sollen. Wenn beispielsweise das Paket "A" vor dem Paket "B" bereitgestellt werden muss, sollte die input.json
folgende Struktur aussehen:
"helm_packages": [
{
"name": "A",
"path_to_chart": "Path to package A",
"path_to_mappings": "Path to package A mappings",
"depends_on": [
"Names of the Helm packages this package depends on"
]
},
{
"name": "B",
"path_to_chart": "Path to package B",
"path_to_mappings": "Path to package B mappings",
"depends_on": [
"Names of the Helm packages this package depends on"
]
}
]
Im Anschluss an diese Richtlinien wird ein gut organisierter und strukturierter Ansatz für die Bereitstellung von Containerized Network Functions (CNFs) mit Helm-Paketen und zugehörigen Konfigurationen sichergestellt.
NSD-Anfangspunkt
Für NSDs müssen Sie die Details der Netzwerkfunktionsdefinitionen (Network Function Definitions, NFDs) kennen, die in Ihr Design integriert werden sollen:
- die NFD Publisher-Ressourcengruppe
- Name und Bereich des NFD-Herausgebers
- der Name der Netzwerkfunktionsdefinitionsgruppe
- Speicherort, Typ und Version der Netzwerkfunktionsdefinitionsversion
Sie können die az aosm nfd
Befehle verwenden, um alle diese Ressourcen zu erstellen.
Azure Operator Service Manager (AOSM)-Befehle
Verwenden Sie die folgenden Befehle, bevor Sie beginnen:
az login
wird verwendet, um sich bei der Azure CLI anzumelden.az account set --subscription <subscription>
wird verwendet, um das Abonnement auszuwählen, an dem Sie arbeiten möchten.
NFD-Befehle
Hilfe zu Befehlsargumenten erhalten:
az aosm -h
az aosm nfd -h
az aosm nfd build -h
Definitionstypbefehle
Alle diese Befehle verwenden ein --definition-type
Argument von vnf
oder cnf
.
Erstellen Sie eine Beispielkonfigurationsdatei zum Erstellen einer Definition:
az aosm nfd generate-config
Mit diesem Befehl wird eine Datei ausgegeben, die aufgerufen input.json
wird, die ausgefüllt werden muss. Sobald die Konfigurationsdatei in den folgenden Befehlen ausgefüllt ist, können Sie ausführen.
Erstellen Sie eine NFD-Definition lokal:
az aosm nfd build --config-file input.json
Weitere Optionen zum lokalen Erstellen einer NFD-Definition:
Wählen Sie aus, welche der VNF ARM-Vorlagenparameter sie als NFD deploymentParameters verfügbar machen möchten, und wählen Sie die einzelnen Parameter interaktiv aus:
az aosm nfd build --config-file input.json --definition_type vnf --order_params
az aosm nfd build --config-file input.json --definition_type vnf --order_params --interactive
Wählen Sie aus, welche der CNF Helm-Werteparameter sie als NFD deploymentParameter verfügbar machen möchten:
az aosm nfd build --config-file input.json --definition_type cnf --interactive
Veröffentlichen Einer vordefinierten Definition:
az aosm nfd publish --config-file input.json
Löschen einer veröffentlichten Definition:
az aosm nfd delete --config-file input.json
Löschen Sie eine veröffentlichte Definition und den Herausgeber, Artefaktspeicher und NFD-Gruppe:
az aosm nfd delete --config-file input.json --clean
NSD-Befehle
Hilfe zu Befehlsargumenten erhalten:
az aosm -h
az aosm nsd -h
az aosm nsd build -h
Erstellen Sie eine Beispielkonfigurationsdatei zum Erstellen einer Definition:
az aosm nsd generate-config
Mit diesem Befehl wird eine Datei ausgegeben, die aufgerufen input.json
wird, die ausgefüllt werden muss. Sobald die Konfigurationsdatei in den folgenden Befehlen ausgefüllt ist, können Sie ausführen.
Erstellen Sie einen NSD lokal:
az aosm nsd build --config-file input.json
Veröffentlichen Eines vorgefertigten Designs:
az aosm nsd publish --config-file input.json
Löschen eines veröffentlichten Designs:
az aosm nsd delete --config-file input.json
Löschen Sie ein veröffentlichtes Design und den Herausgeber, Artefaktspeicher und NSD-Gruppe:
az aosm nsd delete --config-file input.json --clean
Bearbeiten der Buildausgabe vor der Veröffentlichung
Die az aosm
CLI-Erweiterung soll Unterstützung für die Veröffentlichung von Azure Operator Service Manager-Designs und Definitionen bieten. Sie stellt die Bausteine zum Erstellen komplexer benutzerdefinierter Designs und Definitionen bereit. Sie können die Dateiausgabe durch den build
Befehl bearbeiten, bevor Sie den publish
Befehl ausführen, um komplexere oder benutzerdefinierte Features hinzuzufügen.
Die vollständige API-Referenz für Azure Operator Service Manager ist hier: Azure Hybrid Network REST API.
In den folgenden Abschnitten werden einige gängige Methoden beschrieben, mit denen Sie die erstellten Dateien vor der Veröffentlichung bearbeiten können.
Network Function Definitions (NFDs)
- Ändern Sie die
versionState
networkfunctiondefinitionversions
Ressource vonPreview
zuActive
. Aktive NFDVs sind unveränderlich, während Vorschau-NFDVs änderbar und im Entwurfszustand sind. - Ändern Sie für CNFs den
releaseNamespace
helmMappingRuleProfile
Kubernetes-Namespace, für den das Diagramm bereitgestellt wird.
Netzwerkdienstdesigns (NSDs)
- Fügen Sie Azure-Infrastruktur zu Ihrem Netzwerkdienstentwurf (Network Service Design, NSD) hinzu. Das Hinzufügen der Azure-Infrastruktur zu Ihren Möglichkeiten umfasst Folgendes:
- Schreiben von ARM-Vorlagen zum Bereitstellen der Infrastruktur.
- Hinzufügen von Konfigurationsgruppenschemas(CGSs) für diese ARM-Vorlagen.
- Hinzufügen
ResourceElementTemplates
(RETs) vom TypArmResourceDefinition
zu Ihrem NSD. Die RETs sehen mit RETs abgesehen vom Feld gleichNetworkFunctionDefinition
austype
. - Hinzufügen der Infrastruktur-ARM-Vorlagen zur
artifact_manifest.bicep
Datei. - Bearbeiten sie die
configMappings
Dateien, um alle Ausgaben aus den Infrastrukturvorlagen als Eingaben für resourceElementTemplatesNetworkFunctionDefinition
zu integrieren. Beispiel:"customLocationId": "{outputparameters('infraretname').infraretname.customLocationId.value}"
- Bearbeiten Sie die
dependsOnProfile
NetworkFunctionDefinition
RessourcenelementTemplates (RETs), um sicherzustellen, dass Infrastruktur-RETs vor NF-RETs bereitgestellt werden.
- Ändern Sie die
versionState
networkservicedesignversions
Ressource vonPreview
zuActive
. Aktive NSDs sind unveränderlich, während Vorschau-NSDs änderbar und im Entwurfszustand sind.