Delen via


Arm-resources (Azure Resource Manager) toevoegen aan een Azure Operator Service Manager (AOSM) Network Service Design Version (NSDV)

Met Azure Operator Service Manager (AOSM) kunt u netwerkfunctiedefinitieversies (NFDV) en ARM-sjablonen (Network Function Definition Versions) combineren in een NSDV (Network Service Design Version). De NSDV wordt één sjabloon voor een netwerkservice die zowel een netwerkfunctie als de Azure-infrastructuur bevat die moet worden uitgevoerd. Een operator kan vervolgens de netwerkfunctie (NF) en de bijbehorende infrastructuur in één bewerking implementeren.

In deze handleiding leert u hoe u de Azure CLI AOSM-extensie gebruikt om een NSDV te bouwen en publiceren die zowel een Containerized Network Function (CNF) als EEN ARM-resource (Azure Resource Manager) bevat.

Onboarding is een proces met meerdere stappen. Zodra u aan de vereisten voldoet, gebruikt u de Azure CLI AOSM-extensie voor het volgende:

  1. Wijzig een bestaand NSDV-invoerbestand voor een eerder onboarding-CNF.
  2. Vul het invoerbestand in met de informatie die nodig is om de AOSM-resourcedefinities te bouwen.
  3. Genereer BICEP-bestanden die een NSDV (Network Service Design Group and Version) definiëren op basis van het invoerbestand en uw ARM-sjabloon.
  4. Publiceer de NSDV en upload de ARM-sjabloon naar een Artefact Store (AOSM beheerd Azure Container Registry (ACR)).

In deze instructiegids wordt Gebruikgemaakt van Azure Key Vault (AKV) als voorbeeld van een Azure-resource, maar elke Azure-resource kan worden toegevoegd door dezelfde stappen uit te voeren. In dit artikel wordt een CNF gebruikt als voorbeeld-NF; het proces is identiek voor een gevirtualiseerde netwerkfunctie (VNF), afgezien van kleine verschillen in het NSDV-invoerbestand.

Vereisten

  • U hebt AOSM ingeschakeld voor uw Azure-abonnement.
  • Als uw CNF is bedoeld om te worden uitgevoerd op Azure Operator Nexus, hebt u toegang tot een Azure Operator Nexus-exemplaar en hebt u de vereisten voor de implementatie van de workload voltooid.
  • U hebt onboarding van een CNF uitgevoerd en het invoerbestand dat u hebt gegenereerd met het az aosm nsd generate-config bestand dat beschikbaar is op de lokale opslag van de computer waarop u de CLI uitvoert.

Machtigingen configureren

  • U hebt de rol Inzender voor uw abonnement nodig om een resourcegroep of een bestaande resourcegroep te maken waarvoor u de rol Inzender hebt.
  • U hebt de Contributor en AcrPush roltoewijzingen voor het abonnement nodig die het beheerde artefactarchief van de AOSM bevatten.
    • Uw bedrijfsbeleid voorkomt mogelijk dat u machtigingen voor abonnementsbereik hebt. De --no-subscription-permissions parameter, die beschikbaar is voor de az aosm nsd publish opdracht, maakt gebruik van strikt bereikmachtigingen die zijn afgeleid van de AOSM-service om een kopie in twee stappen naar en van uw lokale computer te organiseren. Deze tweestapskopie is langzamer, maar hiervoor zijn geen machtigingen voor abonnementsbereik vereist.

ARM-sjablonen

  • U moet een ARM-sjabloon hebben die de Azure-resources definieert die u wilt implementeren op de lokale opslag van de computer waarop u de CLI uitvoert.
  • Parameters die u beschikbaar wilt maken voor de operator die uw NSDV implementeert, moeten worden gedefinieerd als parameters in de ARM-sjabloon.

Notitie

De Az CLI AOSM-extensie biedt geen ondersteuning voor onboarding van Azure-resources die zijn gedefinieerd in een BICEP-sjabloon. U kunt echter de bicep build opdracht gebruiken om uw BICEP-bestanden te converteren naar ARM-sjablonen. Raadpleeg de bicep CLI-documentatie voor gedetailleerde informatie en instructies.

Helm- en Docker-engine

  • Installeer Helm CLI op de hostcomputer. U moet Helm v3.8.0 of hoger gebruiken.
  • Installeer Docker op de hostcomputer.

Azure CLI downloaden en installeren

Als u de Azure CLI lokaal wilt installeren, raadpleegt u De Azure CLI installeren.

Als u zich wilt aanmelden bij de Azure CLI, gebruikt u de az login opdracht en voltooit u de aanwijzingen die in uw terminal worden weergegeven om de verificatie te voltooien. Raadpleeg Aanmelden met Azure CLI voor meer aanmeldingsopties.

Notitie

Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie. U kunt ook de Bash-omgeving gebruiken in de Azure Cloud Shell. Zie De Cloud Shell starten voor het gebruik van de Bash-omgeving in Azure Cloud Shell voor meer informatie.

AOSM CLI-extensie installeren

Voor de Az CLI AOSM-extensie is versie 2.54.0 of hoger van de Azure CLI vereist.

  1. Voer deze az version opdracht uit om de versie en afhankelijke bibliotheken te zien die zijn geïnstalleerd.
  2. Voer az upgrade een upgrade uit naar de huidige versie van Azure CLI.

Installeer de AOSM CLI-extensie met behulp van deze opdracht:

az extension add --name aosm

De netwerkserviceontwerpgroep en -versie bouwen

  1. Open het NSDV-invoerbestand dat u hebt gegenereerd tijdens het onboarden van uw CNF.

    Notitie

    U kunt een nieuw invoerbestand genereren met behulp van de az aosm nsd generate-config --output-file <nsd-output-filename.jsonc> opdracht als u het NSDV-invoerbestand niet hebt van uw CNF-onboarding.

  2. Voer de vereiste waarden in met behulp van de inlineopmerkingen in het invoerbestand. In dit voorbeeld ziet u het Az CLI AOSM-extensieinvoerbestand voor een fictieve Contoso NSDV die kan worden gebruikt om een fictieve Contoso CNF te implementeren op een met Arc verbonden Nexus Kubernetes-cluster en een AKV-exemplaar op een Azure-locatie.

    {
        // 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"
                }
            }
        ]
    }
    

    Notitie

    In de sectie resource-elementsjabloon wordt gedefinieerd welke NFD is opgenomen in de NSD. De eigenschappen moeten overeenkomen met de eigenschappen die worden gebruikt in het invoerbestand dat aan de az aosm nfd build opdracht is doorgegeven. Dit komt doordat de Azure CLI AOSM-extensie valideert dat de NFD correct is ge onboardd bij het bouwen van de NSD.

  3. Voer de volgende opdracht uit om de BICEP-sjablonen voor netwerkserviceontwerpgroep en versie te bouwen.

az aosm nsd build --config-file <nsd-output-filename.jsonc>

U kunt de structuur van mappen en bestanden bekijken en indien nodig wijzigingen aanbrengen.

De netwerkserviceontwerpgroep en -versie publiceren

Met deze stap maakt u de AOSM-resources die de netwerkserviceontwerpgroep en -versie definiëren. Ook worden artefacten die door de NSDV zijn vereist, geüpload naar de Artifact Store (NF ARM-sjabloon en AKV ARM-sjabloon).

  1. Voer de volgende opdracht uit om de netwerkserviceontwerpgroep en -versie te publiceren. Als u geen abonnementsbereik Contributor en AcrPush -rollen hebt, neemt --no-subscription-permissions u deze op in de opdracht.
az aosm nsd publish --build-output-folder nsd-cli-output

U hebt nu een volledige set bronnen voor AOSM-uitgevers en kunt de operatorstroom uitvoeren.

Volgende stappen