Hızlı Başlangıç: Azure Resource Manager şablonunu (ARM şablonu) kullanarak Azure Operatör Nexus sanal makinesi oluşturma
- Azure Resource Manager şablonu kullanarak Bir Azure Nexus sanal makinesi dağıtma.
Bu hızlı başlangıç kılavuzu, sanal ağ işlevlerini (VNFs) barındırmak için Nexus sanal makinelerini kullanmaya başlamanıza yardımcı olmak için tasarlanmıştır. Bu kılavuzda açıklanan adımları izleyerek, özel gereksinimlerinizi ve gereksinimlerinizi karşılayan özelleştirilmiş bir Nexus sanal makinesini hızlı ve kolay bir şekilde oluşturabilirsiniz. İster yeni başlayan ister Nexus ağı uzmanı olun, bu kılavuz size yardımcı olmak için buradadır. Sanal ağ işlevlerini barındırmak için Nexus sanal makineleri oluşturmak ve özelleştirmek için bilmeniz gereken her şeyi öğrenirsiniz.
Başlamadan önce
Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.
Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.
CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.
Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.
İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.
Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.
Bu makale, Azure CLI'nın 2.49.0 veya sonraki bir sürümünü gerektirir. Azure Cloud Shell kullanılıyorsa en son sürüm zaten yüklüdür.
Birden çok Azure aboneliğiniz varsa, komutu kullanılarak
az account
kaynakların faturalandırılacağı uygun abonelik kimliğini seçin.Sanal makine oluşturmaya devam etmeden önce, kullanılacak kapsayıcı görüntüsünün yönergelere göre oluşturulduğundan emin olun.
komutunu kullanarak
az group create
bir kaynak grubu oluşturun. Azure kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği mantıksal bir grupdur. Bir kaynak grubu oluşturduğunuzda, bir konum belirtmeniz istenir. Bu konum, kaynak grubu meta verilerinizin depolama konumudur ve kaynak oluşturma sırasında başka bir bölge belirtmezseniz kaynaklarınızın Azure'da çalıştırıldığı konumdur. Aşağıdaki örnek eastus konumunda myResourceGroup adlı bir kaynak grubu oluşturur.az group create --name myResourceGroup --location eastus
Aşağıdaki çıkış örneği, kaynak grubunun başarıyla oluşturulmasına benzer:
{ "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup", "location": "eastus", "managedBy": null, "name": "myResourceGroup", "properties": { "provisioningState": "Succeeded" }, "tags": null }
Bicep dosyasını veya ARM şablonunu dağıtmak için dağıttığınız kaynaklara yazma erişimine ve Microsoft.Resources/deployments kaynak türündeki tüm işlemler için erişime sahip olmanız gerekir. Örneğin, bir kümeyi dağıtmak için Microsoft.NetworkCloud/virtualMachines/write ve Microsoft.Resources/deployments/* izinlerine sahip olmanız gerekir. Rol ve izinlerin listesi için bkz. Azure yerleşik rolleri.
Azure Operatör Nexus kümenizin kaynak kimliğine ihtiyacınız vardır
custom location
.Belirli iş yükü gereksinimlerinize göre çeşitli ağlar oluşturmanız gerekir ve iş yükleriniz için uygun IP adreslerinin kullanılabilir olması önemlidir. Sorunsuz bir uygulama sağlamak için yardım için ilgili destek ekiplerine başvurmanız önerilir.
- Nexus sanal makinesi dağıtma önkoşullarını tamamlayın.
Şablonu gözden geçirme
Sanal makine şablonunu dağıtmadan önce yapısını anlamak için içeriği gözden geçirelim.
{
"$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 GB (max 224 GB)"
}
},
"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'))]"
}
}
]
}
adlı virtual-machine-arm-template.json
şablon dosyasını gözden geçirip kaydettikten sonra, şablonu dağıtmak için sonraki bölüme geçin.
Şablonu dağıtma
- adlı
virtual-machine-parameters.json
bir dosya oluşturun ve gerekli parametreleri JSON biçiminde ekleyin. Aşağıdaki örneği başlangıç noktası olarak kullanabilirsiniz. Değerleri kendi değerlerinizle değiştirin.
{
"$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>"
}
}
}
}
- Şablonu dağıtma.
az deployment group create --resource-group myResourceGroup --template-file virtual-machine-arm-template.json --parameters @virtual-machine-parameters.json
Dağıtılan kaynakları gözden geçirme
Dağıtım tamamlandıktan sonra CLI veya Azure portalını kullanarak kaynakları görüntüleyebilirsiniz.
Kaynak grubundaki kümenin myNexusVirtualMachine
myResourceGroup
ayrıntılarını görüntülemek için aşağıdakileri yürütebilirsiniz
az networkcloud virtualmachine show --name myNexusVirtualMachine --resource-group myResourceGroup
Kaynakları temizleme
Artık gerekli değilse kaynak grubunu silin. Kaynak grubu ve kaynak grubundaki tüm kaynaklar silinir.
Kaynak grubunu, sanal makineyi ve İşleç Nexus ağ kaynakları dışındaki tüm ilgili kaynakları kaldırmak için az group delete komutunu kullanın.
az group delete --name myResourceGroup --yes --no-wait
Sonraki adımlar
Nexus sanal makinesini başarıyla oluşturdunuz. Artık sanal ağ işlevlerini (VNFs) barındırmak için sanal makineyi kullanabilirsiniz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin