Snabbstart: Skapa en virtuell Azure Operator Nexus-dator med hjälp av En Azure Resource Manager-mall (ARM-mall)
- Distribuera en virtuell Azure Nexus-dator med hjälp av en Azure Resource Manager-mall.
Den här snabbstartsguiden är utformad för att hjälpa dig att komma igång med att använda virtuella Nexus-datorer som värd för virtuella nätverksfunktioner (VNFs). Genom att följa stegen i den här guiden kan du snabbt och enkelt skapa en anpassad virtuell Nexus-dator som uppfyller dina specifika behov och krav. Oavsett om du är nybörjare eller expert på Nexus-nätverk är den här guiden här för att hjälpa till. Du lär dig allt du behöver veta för att skapa och anpassa virtuella Nexus-datorer för värd för virtuella nätverksfunktioner.
Innan du börjar
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Snabbstart för Bash i Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
Installera den senaste versionen av nödvändiga Azure CLI-tillägg.
Den här artikeln kräver version 2.49.0 eller senare av Azure CLI. Om du använder Azure Cloud Shell är den senaste versionen redan installerad.
Om du har flera Azure-prenumerationer väljer du lämpligt prenumerations-ID där resurserna ska faktureras med kommandot
az account
.Innan du fortsätter med skapandet av den virtuella datorn ska du se till att containeravbildningen som ska användas skapas enligt anvisningarna.
Skapa en resursgrupp med kommandot
az group create
. En Azure-resursgrupp är en logisk grupp där Azure-resurser distribueras och hanteras. När du skapar en resursgrupp uppmanas du att ange en plats. Den här platsen är lagringsplatsen för dina resursgruppsmetadata och där dina resurser körs i Azure om du inte anger en annan region när du skapar resurser. I följande exempel skapas en resursgrupp med namnet myResourceGroup i regionen eastus.az group create --name myResourceGroup --location eastus
Följande utdataexempel liknar skapandet av resursgruppen:
{ "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup", "location": "eastus", "managedBy": null, "name": "myResourceGroup", "properties": { "provisioningState": "Succeeded" }, "tags": null }
Om du vill distribuera en Bicep-fil eller en ARM-mall måste du ha skrivåtkomst till de resurser som du distribuerar och åtkomst till alla åtgärder i resurstypen Microsoft.Resources/deployments. Om du till exempel vill distribuera ett kluster behöver du behörigheterna Microsoft.NetworkCloud/virtualMachines/write och Microsoft.Resources/deployments/* . Det finns en lista med roller och behörigheter i Inbyggda roller i Azure.
Du behöver resurs-ID:t för
custom location
ditt Azure Operator Nexus-kluster.Du måste skapa olika nätverk enligt dina specifika arbetsbelastningskrav och det är viktigt att ha lämpliga IP-adresser tillgängliga för dina arbetsbelastningar. För att säkerställa en smidig implementering rekommenderar vi att du kontaktar relevanta supportteam för att få hjälp.
- Slutför förutsättningarna för att distribuera en virtuell Nexus-dator.
Granska mallen
Innan du distribuerar mallen för virtuella datorer ska vi granska innehållet för att förstå dess struktur.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"type": "string",
"metadata": {
"description": "The name of Nexus virtual machine"
}
},
"location": {
"type": "string",
"metadata": {
"description": "The Azure region where the VM is to be deployed"
},
"defaultValue": "[resourceGroup().location]"
},
"extendedLocation": {
"type": "string",
"metadata": {
"description": "The custom location of the Nexus instance"
}
},
"tags": {
"type": "object",
"metadata": {
"description": "The metadata tags to be associated with the cluster resource"
},
"defaultValue": {}
},
"adminUsername": {
"type": "string",
"defaultValue": "azureuser",
"maxLength": 32,
"minLength": 1,
"metadata": {
"description": "The name of the administrator to which the ssh public keys will be added into the authorized keys."
}
},
"bootMethod": {
"type": "string",
"defaultValue": "UEFI",
"allowedValues": ["UEFI", "BIOS"],
"metadata": {
"description": "Selects the boot method for the virtual machine."
}
},
"cloudServicesNetworkId": {
"type": "string",
"metadata": {
"description": "The Cloud Services Network attachment ARM ID to attach to virtual machine."
}
},
"cpuCores": {
"type": "int",
"defaultValue": 2,
"metadata": {
"description": "Number of CPU cores for the virtual machine. Choose a value between 2 and 46."
}
},
"memorySizeGB": {
"type": "int",
"defaultValue": 4,
"metadata": {
"description": "The memory size of the virtual machine in GiB (max 224 GiB)"
}
},
"networkAttachments": {
"type": "array",
"metadata": {
"description": "The list of network attachments to the virtual machine."
}
/*
{
"attachedNetworkId": "string",
"defaultGateway": "True"/"False",
"ipAllocationMethod": "Dynamic"/"Static"/"Disabled",
"ipv4Address": "string",
"ipv6Address": "string",
"networkAttachmentName": "string"
}
*/
},
"networkData": {
"type": "string",
"metadata": {
"description": "The Base64 encoded cloud-init network data."
},
"defaultValue": ""
},
"placementHints": {
"type": "array",
"metadata": {
"description": "The placement hints for the virtual machine."
},
"defaultValue": []
/*
{
"hintType": "Affinity",
"resourceId": "string",
"schedulingExecution": "Hard",
"scope": "Rack"
}
*/
},
"sshPublicKeys": {
"type": "array",
"metadata": {
"description": "The list of SSH public keys for the virtual machine."
}
/*
{
"keyData": "string"
}
*/
},
"storageProfile": {
"type": "object",
"metadata": {
"description": "StorageProfile represents information about a disk."
},
"defaultValue": {
"osDisk": {
"createOption": "Ephemeral",
"deleteOption": "Delete",
"diskSizeGB": 64
}
}
},
"userData": {
"type": "string",
"metadata": {
"description": "The Base64 encoded cloud-init user data."
},
"defaultValue": ""
},
"vmDeviceModel": {
"type": "string",
"defaultValue": "T2",
"allowedValues": ["T1", "T2"],
"metadata": {
"description": "The type of the device model to use."
}
},
"vmImage": {
"type": "string",
"metadata": {
"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."
}
},
"vmImageRepositoryCredentials": {
"type": "object",
"metadata": {
"description": "Credentials used to login to the image repository."
}
/*
"password": "string",
"registryUrl": "string",
"username": "string"
*/
}
},
"resources": [
{
"type": "Microsoft.NetworkCloud/virtualMachines",
"apiVersion": "2023-07-01",
"name": "[parameters('vmName')]",
"location": "[parameters('location')]",
"extendedLocation": {
"type": "CustomLocation",
"name": "[parameters('extendedLocation')]"
},
"tags": "[parameters('tags')]",
"properties": {
"adminUsername": "[if(empty(parameters('adminUsername')), json('null'), parameters('adminUsername'))]",
"bootMethod": "[if(empty(parameters('bootMethod')), json('null'), parameters('bootMethod'))]",
"cloudServicesNetworkAttachment": {
"attachedNetworkId": "[parameters('cloudServicesNetworkId')]",
"defaultGateway": "False",
"ipAllocationMethod": "Dynamic"
},
"cpuCores": "[parameters('cpuCores')]",
"memorySizeGB": "[parameters('memorySizeGB')]",
"networkData": "[if(empty(parameters('networkData')), json('null'), parameters('networkData'))]",
"networkAttachments": "[if(empty(parameters('networkAttachments')), json('null'), parameters('networkAttachments'))]",
"placementHints": "[if(empty(parameters('placementHints')), json('null'), parameters('placementHints'))]",
"sshPublicKeys": "[if(empty(parameters('sshPublicKeys')), json('null'), parameters('sshPublicKeys'))]",
"storageProfile": "[if(empty(parameters('storageProfile')), json('null'), parameters('storageProfile'))]",
"userData": "[if(empty(parameters('userData')), json('null'), parameters('userData'))]",
"vmDeviceModel": "[if(empty(parameters('vmDeviceModel')), json('null'), parameters('vmDeviceModel'))]",
"vmImage": "[if(empty(parameters('vmImage')), json('null'), parameters('vmImage'))]",
"vmImageRepositoryCredentials": "[if(empty(parameters('vmImageRepositoryCredentials')), json('null'), parameters('vmImageRepositoryCredentials'))]"
}
}
]
}
När du har granskat och sparat mallfilen med namnet virtual-machine-arm-template.json
fortsätter du till nästa avsnitt för att distribuera mallen.
Distribuera mallen
- Skapa en fil med namnet
virtual-machine-parameters.json
och lägg till de obligatoriska parametrarna i JSON-format. Du kan använda följande exempel som utgångspunkt. Ersätt värdena med dina egna.
{
"$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>"
}
}
}
}
- Distribuera mallen.
az deployment group create --resource-group myResourceGroup --template-file virtual-machine-arm-template.json --parameters @virtual-machine-parameters.json
Granska distribuerade resurser
När distributionen är klar kan du visa resurserna med hjälp av CLI eller Azure-portalen.
Om du vill visa information om myNexusVirtualMachine
klustret i myResourceGroup
resursgruppen kör du följande
az networkcloud virtualmachine show --name myNexusVirtualMachine --resource-group myResourceGroup
Rensa resurser
När den inte längre behövs tar du bort resursgruppen. Resursgruppen och alla resurser i resursgruppen tas bort.
Använd kommandot az group delete för att ta bort resursgruppen, den virtuella datorn och alla relaterade resurser förutom nätverksresurserna för Operator Nexus.
az group delete --name myResourceGroup --yes --no-wait
Nästa steg
Du har skapat en virtuell Nexus-dator. Nu kan du använda den virtuella datorn för att vara värd för virtuella nätverksfunktioner (VNFs).