Condividi tramite


Avvio rapido: Creare una macchina virtuale Azure Operator Nexus usando la CLI di Azure

  • Distribuire una macchina virtuale Nexus di Azure usando l'interfaccia della riga di comando di Azure

Questa guida introduttiva è progettata per iniziare a usare le macchine virtuali Nexus per ospitare funzioni di rete virtuale (VNFS). Seguendo i passaggi descritti in questa guida, è possibile creare rapidamente e facilmente una macchina virtuale Nexus personalizzata che soddisfi esigenze e requisiti specifici. Che tu sia un principiante o un esperto di rete Nexus, questa guida è qui per aiutarti. Si apprenderà tutto ciò che è necessario sapere per creare e personalizzare le macchine virtuali Nexus per l'hosting di funzioni di rete virtuale.

Prima di iniziare

Se non si ha un account Azure, creare un account gratuito prima di iniziare.

  • Installare la versione più recente delle estensioni dell'interfaccia della riga di comando di Azure necessarie.

  • Se sono presenti più sottoscrizioni di Azure, selezionare l'ID sottoscrizione appropriato in cui devono essere fatturate le risorse usando il az account comando .

  • Prima di procedere con la creazione della macchina virtuale, assicurarsi che l'immagine del contenitore da usare venga creata in base alle istruzioni.

  • Creare un gruppo di risorse usando il comando az group create. Un gruppo di risorse di Azure è un gruppo logico in cui le risorse di Azure vengono distribuite e gestite. Quando si crea un gruppo di risorse, viene richiesto di specificare una posizione. Questa posizione è la posizione di archiviazione dei metadati del gruppo di risorse e dove le risorse vengono eseguite in Azure se non si specifica un'altra regione durante la creazione della risorsa. L'esempio seguente crea un gruppo di risorse denominato myResourceGroup nella località stati uniti orientali.

    az group create --name myResourceGroup --location eastus
    

    L'esempio di output seguente è simile alla corretta creazione del gruppo di risorse:

    {
      "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
      "location": "eastus",
      "managedBy": null,
      "name": "myResourceGroup",
      "properties": {
        "provisioningState": "Succeeded"
      },
      "tags": null
    }
    
  • Per distribuire un file Bicep o un modello di ARM, è necessario l'accesso in scrittura alle risorse distribuite e l'accesso per tutte le operazioni sul tipo di risorsa Microsoft.Resources/deployments. Ad esempio, per distribuire un cluster, sono necessarie le autorizzazioni Microsoft.NetworkCloud/virtualMachines/write e Microsoft.Resources/deployments/*. Per un elenco dei ruoli e delle autorizzazioni, vedere Ruoli predefiniti di Azure.

  • È necessario l'ID risorsa del cluster Nexus dell'operatore custom location di Azure.

  • È necessario creare diverse reti in base ai requisiti specifici del carico di lavoro ed è essenziale avere gli indirizzi IP appropriati disponibili per i carichi di lavoro. Per garantire un'implementazione uniforme, è consigliabile consultare i team di supporto pertinenti per assistenza.

  • Completare i prerequisiti per la distribuzione di una macchina virtuale Nexus.

Creare una macchina virtuale Nexus

L'esempio seguente crea una macchina virtuale denominata myNexusVirtualMachine nel gruppo di risorse myResourceGroup nella posizione eastus .

Prima di eseguire i comandi, è necessario impostare diverse variabili per definire la configurazione per la macchina virtuale. Ecco le variabili da impostare, insieme ad alcuni valori predefiniti che è possibile usare per determinate variabili:

Variable Description
UBICAZIONE Area di Azure in cui si vuole creare la macchina virtuale.
Gruppo di risorse Nome del gruppo di risorse di Azure in cui si vuole creare la macchina virtuale.
ABBONAMENTO ID della sottoscrizione di Azure.
CUSTOM_LOCATION Questo argomento specifica una posizione personalizzata dell'istanza Nexus.
CSN_ARM_ID ID risorsa ARM della rete di servizi cloud a cui si connette la macchina virtuale.
L3_NETWORK_ID ID risorsa ARM della rete L3 a cui si connette la macchina virtuale.
NETWORK_INTERFACE_NAME Nome dell'interfaccia di rete L3 da assegnare.
ADMIN_USERNAME Nome utente per l'amministratore della macchina virtuale.
SSH_PUBLIC_KEY Chiave pubblica SSH usata per la comunicazione sicura con la macchina virtuale.
CPU_CORES Numero di core CPU per la macchina virtuale (numero pari, max 46 vCPU)
MEMORY_SIZE Quantità di memoria (in GiB, max 224 GiB) per la macchina virtuale.
VM_DISK_SIZE Dimensioni (in GiB) del disco della macchina virtuale.
VM_IMAGE URL dell'immagine della macchina virtuale.
ACR_URL L'URL del Registro dei Container di Azure.
ACR_USERNAME Nome utente per Registro Azure Container.
ACR_PASSWORD Password per Registro Azure Container.
UAMI_ID ID risorsa dell'identità gestita assegnata dall'utente (se si usa l'identità gestita assegnata dall'utente).

Avvertimento

I dati utente non vengono crittografati e qualsiasi processo nella macchina virtuale può eseguire query su questi dati. Non è consigliabile archiviare informazioni riservate nei dati utente. Per altre informazioni, vedere Procedure consigliate per la sicurezza e la crittografia dei dati di Azure.

Dopo aver definito le variabili, è possibile creare la macchina virtuale eseguendo il comando dell'interfaccia della riga di comando di Azure. Per fornire un output più dettagliato per la risoluzione dei problemi, aggiungere il --debug flag alla fine.

Usare il set di comandi seguente e sostituire i valori di esempio con i valori preferiti. È anche possibile usare i valori predefiniti per alcune delle variabili, come illustrato nell'esempio seguente:

# Azure parameters
RESOURCE_GROUP="myResourceGroup"
SUBSCRIPTION="<Azure subscription ID>"
CUSTOM_LOCATION="/subscriptions/<subscription_id>/resourceGroups/<managed_resource_group>/providers/microsoft.extendedlocation/customlocations/<custom-location-name>"
LOCATION="$(az group show --name $RESOURCE_GROUP --query location --subscription $SUBSCRIPTION -o tsv)"

# VM parameters
VM_NAME="myNexusVirtualMachine"

# VM credentials
ADMIN_USERNAME="azureuser"
SSH_PUBLIC_KEY="$(cat ~/.ssh/id_rsa.pub)"

# Network parameters
CSN_ARM_ID="/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.NetworkCloud/cloudServicesNetworks/<csn-name>"
L3_NETWORK_ID="/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.NetworkCloud/l3Networks/<l3Network-name>"
NETWORK_INTERFACE_NAME="mgmt0"

# VM Size parameters
CPU_CORES=4
MEMORY_SIZE=12
VM_DISK_SIZE="64"

# Virtual Machine Image parameters
VM_IMAGE="<VM image, example: myacr.azurecr.io/ubuntu:20.04>"
ACR_URL="<Azure Container Registry URL, example: myacr.azurecr.io>"
ACR_USERNAME="<Azure Container Registry username>"
ACR_PASSWORD="<Azure Container Registry password>"

Importante

È essenziale sostituire i segnaposto per CUSTOM_LOCATION, CSN_ARM_ID, L3_NETWORK_ID e ACR con i valori effettivi prima di eseguire questi comandi.

Dopo aver definito queste variabili, è possibile creare la macchina virtuale eseguendo il comando seguente dell'interfaccia della riga di comando di Azure.

az networkcloud virtualmachine create \
    --name "$VM_NAME" \
    --resource-group "$RESOURCE_GROUP" \
    --subscription "$SUBSCRIPTION" \
    --extended-location name="$CUSTOM_LOCATION" type="CustomLocation" \
    --location "$LOCATION" \
    --admin-username "$ADMIN_USERNAME" \
    --csn "attached-network-id=$CSN_ARM_ID" \
    --cpu-cores $CPU_CORES \
    --memory-size $MEMORY_SIZE \
    --network-attachments '[{"attachedNetworkId":"'$L3_NETWORK_ID'","ipAllocationMethod":"Dynamic","defaultGateway":"True","networkAttachmentName":"'$NETWORK_INTERFACE_NAME'"}]'\
    --storage-profile create-option="Ephemeral" delete-option="Delete" disk-size="$VM_DISK_SIZE" \
    --vm-image "$VM_IMAGE" \
    --ssh-key-values "$SSH_PUBLIC_KEY" \
    --vm-image-repository-credentials registry-url="$ACR_URL" username="$ACR_USERNAME" password="$ACR_PASSWORD"

Macchine virtuali con identità gestite

Creare la macchina virtuale con un'identità gestita assegnata dal sistema o assegnata dall'utente. Per aggiungere un'identità gestita alla macchina virtuale, la versione dell'API deve essere 2025-07-01-preview o successiva.

Assicurarsi che l'estensionenetworkcloud sia installata con una versione che supporta la versione dell'API richiesta. È possibile trovare versioni supportate nella cronologia delle versioni dell'estensionenetworkcloud in GitHub.

Importante

Se non si specifica un'identità gestita durante la creazione della macchina virtuale, non è possibile abilitare il supporto dell'identità gestita aggiornando la macchina virtuale dopo il provisioning.

Per abilitare l'identità gestita assegnata dal sistema per la macchina virtuale, assicurarsi di includere il --mi-system-assigned flag (o l'alias --system-assigned).

Creare la macchina virtuale utilizzando una Identità Gestita Assegnata dal Sistema con Azure CLI:

az networkcloud virtualmachine create \
    --name "$VM_NAME" \
    --resource-group "$RESOURCE_GROUP" \
    --subscription "$SUBSCRIPTION" \
    --extended-location name="$CUSTOM_LOCATION" type="CustomLocation" \
    --location "$LOCATION" \
    --admin-username "$ADMIN_USERNAME" \
    --csn "attached-network-id=$CSN_ARM_ID" \
    --cpu-cores $CPU_CORES \
    --memory-size $MEMORY_SIZE \
    --network-attachments '[{"attachedNetworkId":"'$L3_NETWORK_ID'","ipAllocationMethod":"Dynamic","defaultGateway":"True","networkAttachmentName":"'$NETWORK_INTERFACE_NAME'"}]'\
    --storage-profile create-option="Ephemeral" delete-option="Delete" disk-size="$VM_DISK_SIZE" \
    --vm-image "$VM_IMAGE" \
    --ssh-key-values "$SSH_PUBLIC_KEY" \
    --vm-image-repository-credentials registry-url="$ACR_URL" username="$ACR_USERNAME" password="$ACR_PASSWORD" \
    --mi-system-assigned

Per usare un'identità gestita assegnata dall'utente, è possibile specificare l'ID identità gestita assegnata dall'utente con il --mi-user-assigned flag (o l'alias --user-assigned).

Assicurarsi di includere la variabile UAMI_ID con l'ID della risorsa dell'identità gestita, assegnata dall'utente, che si vuole usare.

export UAMI_ID=$(az identity show --name "$UAMI_NAME" --resource-group "$RESOURCE_GROUP" --query "id" -o tsv)

Creare la macchina virtuale usando un'Identità Gestita Assegnata dall'Utente con Azure CLI:

az networkcloud virtualmachine create \
    --name "$VM_NAME" \
    --resource-group "$RESOURCE_GROUP" \
    --subscription "$SUBSCRIPTION" \
    --extended-location name="$CUSTOM_LOCATION" type="CustomLocation" \
    --location "$LOCATION" \
    --admin-username "$ADMIN_USERNAME" \
    --csn "attached-network-id=$CSN_ARM_ID" \
    --cpu-cores $CPU_CORES \
    --memory-size $MEMORY_SIZE \
    --network-attachments '[{"attachedNetworkId":"'$L3_NETWORK_ID'","ipAllocationMethod":"Dynamic","defaultGateway":"True","networkAttachmentName":"'$NETWORK_INTERFACE_NAME'"}]'\
    --storage-profile create-option="Ephemeral" delete-option="Delete" disk-size="$VM_DISK_SIZE" \
    --vm-image "$VM_IMAGE" \
    --ssh-key-values "$SSH_PUBLIC_KEY" \
    --vm-image-repository-credentials registry-url="$ACR_URL" username="$ACR_USERNAME" password="$ACR_PASSWORD" \
    --mi-user-assigned "$UAMI_ID"

Dopo alcuni minuti, il comando completa e restituisce informazioni sulla macchina virtuale. La macchina virtuale è ora pronta per l'uso.

Esaminare le risorse distribuite

Al termine della distribuzione, è possibile visualizzare le risorse usando l'interfaccia della riga di comando o il portale di Azure.

Per visualizzare i dettagli del myNexusVirtualMachine cluster nel myResourceGroup gruppo di risorse, eseguire quanto segue

az networkcloud virtualmachine show --name myNexusVirtualMachine --resource-group myResourceGroup

Pulire le risorse

Quando non è più necessario, eliminare il gruppo di risorse. Il gruppo di risorse e tutte le risorse nel gruppo di risorse vengono eliminati.

Usare il comando az group delete per rimuovere il gruppo di risorse, la macchina virtuale e tutte le risorse correlate, ad eccezione delle risorse di rete Operator Nexus.

az group delete --name myResourceGroup --yes --no-wait

Passaggi successivi

La macchina virtuale Nexus è stata creata correttamente. È ora possibile usare la macchina virtuale per ospitare le funzioni di rete virtuale .