Freigeben über


Schnellstart: Erstellen eines virtuellen Azure Operator Nexus-Computers mithilfe von Bicep

  • Bereitstellen eines virtuellen Azure Nexus-Computers mit Bicep

Dieser Schnellstartleitfaden soll Ihnen bei den ersten Schritten bei der Verwendung von virtuellen Nexus-Computern zum Hosten von virtuellen Netzwerkfunktionen (VNFs) helfen. Indem Sie die in diesem Leitfaden beschriebenen Schritte ausführen, können Sie schnell und einfach einen angepassten virtuellen Nexus-Computer erstellen, der Ihren spezifischen Anforderungen und Anforderungen entspricht. Ganz gleich, ob Sie Anfänger oder Experte im Nexus-Netzwerk sind, dieser Leitfaden hilft Ihnen. Sie lernen alles, was Sie wissen müssen, um Nexus virtual machines für das Hosten virtueller Netzwerkfunktionen zu erstellen und anzupassen.

Bevor Sie anfangen

Wenn Sie nicht über ein Azure-Konto verfügen, erstellen Sie ein kostenloses Konto , bevor Sie beginnen.

  • Installieren Sie die neueste Version der erforderlichen Azure CLI-Erweiterungen.

  • Wenn Sie über mehrere Azure-Abonnements verfügen, wählen Sie die entsprechende Abonnement-ID aus, in der die Ressourcen mit dem az account Befehl in Rechnung gestellt werden sollen.

  • Bevor Sie mit der Erstellung virtueller Computer fortfahren, stellen Sie sicher, dass das zu verwendende Containerimage gemäß den Anweisungen erstellt wird.

  • Erstellen Sie eine Ressourcengruppe mit dem Befehl az group create. Eine Azure-Ressourcengruppe ist eine logische Gruppe, in der Azure-Ressourcen bereitgestellt und verwaltet werden. Wenn Sie eine Ressourcengruppe erstellen, werden Sie zur Angabe eines Speicherorts aufgefordert. An diesem Speicherort werden die Metadaten Ihrer Ressourcengruppe gespeichert. Darüber hinaus werden dort die Ressourcen in Azure ausgeführt, wenn Sie während der Ressourcenerstellung keine andere Region angeben. Das folgende Beispiel erstellt eine Ressourcengruppe mit dem Namen myResourceGroup am Standort eastus.

    az group create --name myResourceGroup --location eastus
    

    Das folgende Ausgabebeispiel ähnelt der erfolgreichen Erstellung der Ressourcengruppe:

    {
      "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
      "location": "eastus",
      "managedBy": null,
      "name": "myResourceGroup",
      "properties": {
        "provisioningState": "Succeeded"
      },
      "tags": null
    }
    
  • Zum Bereitstellen einer Bicep-Datei oder ARM-Vorlage benötigen Sie Schreibzugriff auf die Ressourcen, die Sie bereitstellen, und Zugriff auf alle Vorgänge für den Ressourcentyp Microsoft.Resources/deployments. Um beispielsweise einen Cluster bereitzustellen, benötigen Sie Microsoft.NetworkCloud/virtualMachines/write und Microsoft.Resources/deployments/* Berechtigungen. Eine Liste der Rollen und Berechtigungen finden Sie in den integrierten Azure-Rollen.

  • Sie benötigen die custom location Ressourcen-ID Ihres Azure Operator Nexus-Clusters.

  • Sie müssen verschiedene Netzwerke entsprechend Ihren spezifischen Workloadanforderungen erstellen, und es ist wichtig, dass die entsprechenden IP-Adressen für Ihre Workloads verfügbar sind. Um eine reibungslose Implementierung sicherzustellen, empfiehlt es sich, die entsprechenden Supportteams zur Unterstützung zu konsultieren.

  • Erfüllen Sie die Voraussetzungen für die Bereitstellung eines virtuellen Nexus-Computers.

Überprüfen der Vorlage

Bevor Sie die Vorlage für virtuelle Computer bereitstellen, überprüfen wir den Inhalt, um seine Struktur zu verstehen.

@description('The name of Nexus virtual machine')
param vmName string

@description('The Azure region where the VM is to be deployed')
param location string = resourceGroup().location

@description('The custom location of the Nexus instance')
param extendedLocation string

@description('The metadata tags to be associated with the cluster resource')
param tags object = {}

@description('The name of the administrator to which the ssh public keys will be added into the authorized keys.')
@minLength(1)
@maxLength(32)
param adminUsername string = 'azureuser'

@description('Selects the boot method for the virtual machine.')
@allowed([
  'UEFI'
  'BIOS'
])
param bootMethod string = 'UEFI'

@description('The Cloud Services Network attachment ARM ID to attach to virtual machine.')
param cloudServicesNetworkId string

@description('Number of CPU cores for the virtual machine. Choose a value between 2 and 46.')
param cpuCores int = 2

@description('The memory size of the virtual machine in GiB (max 224 GiB)')
param memorySizeGB int = 4

@description('The list of network attachments to the virtual machine.')
param networkAttachments array

// {
//   attachedNetworkId: "string"
//   defaultGateway: "True"/"False"
//   ipAllocationMethod: "Dynamic"/"Static","Disabled"
//   ipv4Address: "string"
//   ipv6Address: "string"
//   networkAttachmentName: "string"
// }

@description('The Base64 encoded cloud-init network data.')
param networkData string = ''

@description('The placement hints for the virtual machine.')
param placementHints array = []
// {
//   hintType: "Affinity/AntiAffinity"
//   resourceId: string
//   schedulingExecution: "Hard/Soft"
//   scope: "Rack/Machine"
// }

@description('The list of SSH public keys for the virtual machine.')
param sshPublicKeys array
// {
//   keyData: 'string'
// }

@description('StorageProfile represents information about a disk.')
param storageProfile object = {
  osDisk: {
    createOption: 'Ephemeral'
    deleteOption: 'Delete'
    diskSizeGB: 64
  }
}

@description('The Base64 encoded cloud-init user data.')
param userData string = ''

@description('The type of the device model to use.')
@allowed([
  'T1'
  'T2'
])
param vmDeviceModel string = 'T2'

@description('The virtual machine image that is currently provisioned to the OS disk, using the full URL and tag notation used to pull the image.')
param vmImage string

@description('Credentials used to login to the image repository.')
param vmImageRepositoryCredentials object = {}
// password: "string"
// registryUrl: "string"
// username: "string"

resource vm 'Microsoft.NetworkCloud/virtualMachines@2025-09-01' = {
  name: vmName
  location: location
  extendedLocation: {
    type: 'CustomLocation'
    name: extendedLocation
  }
  tags: tags
  properties: {
    adminUsername: (empty(adminUsername) ? null : adminUsername)
    bootMethod: (empty(bootMethod) ? null : bootMethod)
    cloudServicesNetworkAttachment: {
      attachedNetworkId: cloudServicesNetworkId
      ipAllocationMethod: 'Dynamic'
    }
    cpuCores: cpuCores
    memorySizeGB: memorySizeGB
    networkData: (empty(networkData) ? null : networkData)
    networkAttachments: (empty(networkAttachments) ? null : networkAttachments)
    placementHints: (empty(placementHints) ? null : placementHints)
    sshPublicKeys: (empty(sshPublicKeys) ? null : sshPublicKeys)
    storageProfile: (empty(storageProfile) ? null : storageProfile)
    userData: (empty(userData) ? null : userData)
    vmDeviceModel: (empty(vmDeviceModel) ? null : vmDeviceModel)
    vmImage: (empty(vmImage) ? null : vmImage)
    vmImageRepositoryCredentials: (empty(vmImageRepositoryCredentials) ? null : vmImageRepositoryCredentials)
  }
}

Warnung

Benutzerdaten werden nicht verschlüsselt, und jeder Prozess auf dem virtuellen Computer kann diese Daten abfragen. Vertrauliche Informationen sollten nicht in Benutzerdaten gespeichert werden. Weitere Informationen finden Sie unter Bewährte Methoden für Azure-Datensicherheit und -Verschlüsselung.

Überprüfen und speichern Sie die Vorlagendatei namens virtual-machine-bicep-file.bicep, fahren Sie dann mit dem nächsten Abschnitt fort, und stellen Sie die Vorlage bereit.

Virtuelle Computer mit verwalteten Identitäten

Erstellen Sie den virtuellen Computer mit einer vom System zugewiesenen oder einer vom Benutzer zugewiesenen verwalteten Identität. Um der VM eine verwaltete Identität hinzuzufügen, muss die API-Version 2025-07-01-preview oder höher sein. Das apiVersion kann mit 2025-07-01-preview, 2025-09-01 oder einer beliebigen zukünftigen Version der API befüllt werden.

Von Bedeutung

Wenn Sie beim Erstellen des virtuellen Computers keine verwaltete Identität angeben, können Sie die Unterstützung für verwaltete Identitäten nicht aktivieren, indem Sie die VM nach der Bereitstellung aktualisieren.

Stellen Sie sicher, dass Sie die Ressourcenversion für die Ressource des virtuellen Computers in der virtual-machine-bicep-file.bicep Datei aktualisieren.

Fügen Sie den identity Abschnitt mit type auf SystemAssigned zur Bicep-Datei hinzu.

resource vm 'Microsoft.NetworkCloud/virtualMachines@2025-09-01' = {
  name: vmName
  ...
  properties: {
    ...
    identity: {
      type: "SystemAssigned"
    }
  }
}

Für vom Benutzer zugewiesene verwaltete Identität muss die Ressource erstellt werden, bevor sie dem virtuellen Computer zugewiesen werden kann. Aktualisieren Sie die Bicep-Datei mit dem identity-Abschnitt, der auf UserAssigned festgelegt ist, und fügen Sie die userAssignedIdentities-Eigenschaft mit der Ressourcen-ID der vom Benutzer zugewiesenen verwalteten Identität ein.

resource vm 'Microsoft.NetworkCloud/virtualMachines@2025-09-01' = {
  name: vmName
  ...
  properties: {
    ...
    identity: {
      type: "UserAssigned",
      userAssignedIdentities: {
        "/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identity-name}": {}
      }
    }
  }
}

Implementieren der Vorlage

  1. Erstellen Sie eine Datei namens virtual-machine-parameters.json , und fügen Sie die erforderlichen Parameter im JSON-Format hinzu. Sie können das folgende Beispiel als Ausgangspunkt verwenden. Ersetzen Sie die Werte durch Ihre eigenen.
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "vmName": {
      "value": "myNexusVirtualMachine"
    },
    "location": {
      "value": "eastus"
    },
    "extendedLocation": {
      "value": "/subscriptions/<subscription>/resourcegroups/<cluster-managed-resource-group>/providers/microsoft.extendedlocation/customlocations/<custom-location-name>"
    },
    "cloudServicesNetworkId": {
      "value": "/subscriptions/<subscription>/resourceGroups/<network-resource-group>/providers/Microsoft.NetworkCloud/cloudServicesNetworks/<csn-name>"
    },
    "networkAttachments": {
      "value": [
        {
          "attachedNetworkId": "/subscriptions/<subscription>/resourceGroups/<network-resource-group>/providers/Microsoft.NetworkCloud/l3Networks/<l3network-name>",
          "ipAllocationMethod": "Dynamic",
          "defaultGateway": "True",
          "networkAttachmentName": "mgmt0"
        }
      ]
    },
    "sshPublicKeys": {
      "value": [
        {
          "keyData": "ssh-rsa AAAAB3...."
        }
      ]
    },
    "vmImage": {
      "value": "<Image ACR URL>"
    },
    "vmImageRepositoryCredentials": {
      "value": {
        "password": "********************",
        "registryUrl": "<ACR registry URL>",
        "username": "<ACR user name>"
      }
    }
  }
}
  1. Stellen Sie die Vorlage bereit.
az deployment group create \
  --resource-group myResourceGroup
  --template-file virtual-machine-bicep-file.bicep
  --parameters @virtual-machine-parameters.json

Überprüfen der bereitgestellten Ressourcen

az deployment group show --resource-group myResourceGroup --name <deployment-name>

Nach Abschluss der Bereitstellung können Sie die Ressourcen mithilfe der CLI oder des Azure-Portals anzeigen.

Um die Details des myNexusVirtualMachine Clusters in der myResourceGroup Ressourcengruppe anzuzeigen, führen Sie Folgendes aus:

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

Bereinigen von Ressourcen

Wenn sie nicht mehr benötigt wird, löschen Sie die Ressourcengruppe. Die Ressourcengruppe und alle Ressourcen in der Ressourcengruppe werden gelöscht.

Verwenden Sie den Befehl " az group delete ", um die Ressourcengruppe, den virtuellen Computer und alle zugehörigen Ressourcen außer den Operator Nexus-Netzwerkressourcen zu entfernen.

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

Nächste Schritte

Der virtuelle Nexus-Computer wird erfolgreich erstellt! Sie können nun den virtuellen Computer verwenden, um virtuelle Netzwerkfunktionen (Virtual Network Functions, VNFs) zu hosten.