Öğretici: Sanal makine ölçek kümesine Java uygulaması dağıtma
Azure DevOps Services
Sanal makine ölçek kümesi , aynı, otomatik ölçeklendirme sanal makinelerini dağıtmanıza ve yönetmenize olanak tanır.
VM’ler, ölçek kümesinde gerektiğinde oluşturulur. VM'lerin ölçek kümesine nasıl ve ne zaman ekleneceğini veya kaldırılacağını denetlemek için kurallar tanımlarsınız. Bu kurallar, CPU yükü, bellek kullanımı veya ağ trafiği gibi ölçümlere dayalı olarak tetiklenebilir.
Bu öğreticide bir Java uygulaması oluşturacak ve bunu bir sanal makine ölçek kümesine dağıtacaksınız. Şunları yapmayı öğreneceksiniz:
- Sanal makine ölçek kümesi oluşturma
- Makine görüntüsü oluşturma
- Sanal makine ölçek kümesine özel görüntü dağıtma
Önkoşullar
Başlamadan önce şunları yapmanız gerekir:
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
- Etkin bir Azure DevOps kuruluşu. Azure Pipelines'a kaydolun.
- DevOps kuruluşunuz için yüklenen Azure VM Görüntü Oluşturucusu DevOps görevi.
- Örnek projeyle çatallanmış bir GitHub deposu. pipelines-vmss deposunu çatallayın.
Java işlem hattınızı ayarlama
Azure DevOps kuruluşunuzda oturum açın ve projenize gidin.
İşlem Hatları'na gidin ve ardından yeni işlem hattı veya İlk işlem hattınızı oluşturuyorsanız işlem hattı oluştur'u seçin.
İlk olarak kaynak kodunuzun konumu olarak GitHub'ı seçerek sihirbazın adımlarını uygulayın.
Oturum açmak için GitHub'a yönlendirilebilirsiniz. Öyleyse GitHub kimlik bilgilerinizi girin.
Depo listesini gördüğünüzde deponuzu seçin.
Azure Pipelines uygulamasını yüklemek için GitHub'a yönlendirilebilirsiniz. Öyleyse Onayla ve yükle'yi seçin.
Yapılandır sekmesi görüntülendiğinde Maven'ı seçin.
İşlem hattını özelleştirme
Yeni işlem hattınız görüntülendiğinde, ne yaptığını görmek için YAML'ye göz atın. Hazır olduğunuzda Kaydet ve çalıştır'ı seçin.
Deponuza yeni bir azure-pipelines.yml dosyası işlemeniz istenir. İletiden memnun olduktan sonra Kaydet'i seçin ve yeniden çalıştırın .
İşlem hattınızın nasıl çalıştığını izlemek istiyorsanız derleme işini seçin.
Kodunuz Maven şablonuna uygun göründüğünden sizin için otomatik olarak oluşturduğumuz bir işlem hattı oluşturdunuz ve çalıştırıldınız.
Artık deponuzda özelleştirmeniz için hazır çalışan bir YAML işlem hattı (
azure-pipelines.yml
) var!İşlem hattınızda değişiklik yapmaya hazır olduğunuzda İşlem Hatları sayfasından seçin ve ardından Dosyayı düzenleyin
azure-pipelines.yml
.
Dosya Kopyalama ve Derleme Yapıtı Yayımlama görevlerini ekleme
İşlem hattınızı görevi içerecek şekilde güncelleştirin
CopyFiles@2
. Bu, sanal makine ölçek kümenize dağıtabileceğiniz bir yapıt oluşturur.trigger: none pool: vmImage: 'ubuntu-latest' steps: - task: Maven@4 inputs: mavenPomFile: 'pom.xml' mavenOptions: '-Xmx3072m' javaHomeOption: 'JDKVersion' jdkVersionOption: '1.8' jdkArchitectureOption: 'x64' publishJUnitResults: true testResultsFiles: '**/surefire-reports/TEST-*.xml' goals: 'package' - task: CopyFiles@2 displayName: 'Copy File to: $(TargetFolder)' inputs: SourceFolder: '$(Build.SourcesDirectory)' Contents: | **/*.sh **/*.war **/*jar-with-dependencies.jar TargetFolder: '$(System.DefaultWorkingDirectory)/pipeline-artifacts/' flattenFolders: true
Özel görüntü oluşturma ve Azure'a yükleme
Özel görüntünüz için bir kaynak grubuna, depolama hesabına ve paylaşılan görüntü galerisine ihtiyacınız vardır.
az group create ile bir kaynak grubu oluşturun. Bu örnek, eastus2 konumunda myVMSSResourceGroupadlı bir kaynak grubu oluşturur:
az group create --name myVMSSResourceGroup --location eastus2
Yeni bir depolama hesabı oluşturun. Bu örnek,
vmssstorageaccount
adlı bir depolama hesabı oluşturur.az storage account create \ --name vmssstorageaccount \ --resource-group myVMSSResourceGroup \ --location eastus2 \ --sku Standard_LRS
Paylaşılan bir görüntü galerisi oluşturun.
az sig create --resource-group myVMSSResourceGroup --gallery-name myVMSSGallery
Kaynakta
myVMSSGallery
yeni bir görüntü galerisi oluşturun. Görüntü galerileriyle çalışma hakkında daha fazla bilgi edinmek için bkz. Portalı kullanarak Azure Paylaşılan Görüntü Galerisi oluşturma.az sig create --resource-group myVMSSResourceGroup --gallery-name myVMSSGallery
Görüntü tanımı oluşturun.
id
gibi/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/galleries/myVMSSGallery/images/MyImage
görünen yeni görüntünün kopyasını kopyalayın.az sig image-definition create -g myVMSSResourceGroup --gallery-name myVMSSGallery --gallery-image-definition MyImage --publisher GreatPublisher --offer GreatOffer --sku GreatSku --os-type linux
Yönetilen kimlik oluşturma
Kaynak grubunuzda yönetilen kimlik oluşturun.
az identity create -g myVMSSResourceGroup -n myVMSSIdentity
Çıktıdan öğesini kopyalayın
id
. gibiid
görünecektir/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>
.Galeride görüntü galerinizi açın ve Katkıda Bulunan rolünü atayın
myVMSSIdentity
. Rol ataması eklemek için bu adımları izleyin.
Özel görüntü oluşturma
Özel görüntü oluşturmak için Azure VM Görüntü Oluşturucusu DevOps Görevini kullanabilirsiniz.
AzureImageBuilderTask@1
Görevi YAML dosyanıza ekleyin. için<RESOURCE GROUP>
<USER ASSIGNED IDENTITY NAME>
değerlerini<SUBSCRIPTION ID>
kendi değerlerinizle değiştirin. vestorageAccountName
değerleriningalleryImageId
managedIdentity
doğru olduğundan emin olun.- task: AzureImageBuilderTask@1 displayName: 'Azure VM Image Builder Task' inputs: managedIdentity: '/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>' imageSource: 'marketplace' packagePath: '$(System.DefaultWorkingDirectory)/pipeline-artifacts' inlineScript: | sudo mkdir /lib/buildArtifacts sudo cp "/tmp/pipeline-artifacts.tar.gz" /lib/buildArtifacts/. cd /lib/buildArtifacts/. sudo tar -zxvf pipeline-artifacts.tar.gz sudo sh install.sh storageAccountName: 'vmssstorageaccount2' distributeType: 'sig' galleryImageId: '/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/galleries/myVMSSGallery/images/MyImage/versions/0.0.$(Build.BuildId)' replicationRegions: 'eastus2' ibSubscription: '<SUBSCRIPTION ID>' ibAzureResourceGroup: 'myVMSSResourceGroup' ibLocation: 'eastus2'
İlk görüntünüzü oluşturmak için işlem hattını çalıştırın. İşlem hattı çalıştırması sırasında kaynakları yetkilendirmeniz gerekebilir.
Azure portalında yeni görüntüye gidin ve Genel Bakış'ı açın. Yeni görüntüden yeni bir sanal makine ölçek kümesi oluşturmak için VMSS Oluştur'u seçin. Sanal makine ölçek kümesi adını olarak
vmssScaleSet
ayarlayın. Azure portalında sanal makine ölçek kümeleri oluşturma hakkında daha fazla bilgi edinmek için bkz . Azure portalında sanal makine ölçek kümesi oluşturma.
Güncelleştirmeleri sanal makine ölçek kümesine dağıtma
Güncelleştirmeleri ölçek kümesine dağıtmak için işlem hattınıza bir Azure CLI görevi ekleyin. görevi işlem hattının sonuna ekleyin. değerini abonelik kimliğiniz ile değiştirin <SUBSCRIPTION ID>
.
- task: AzureCLI@2
inputs:
azureSubscription: '`YOUR_SUBSCRIPTION_ID`' #Authorize and in the task editor
ScriptType: 'pscore'
scriptLocation: 'inlineScript'
Inline: 'az vmss update --resource-group myVMSSResourceGroup --name vmssScaleSet --set virtualMachineProfile.storageProfile.imageReference.id=/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myVMSSResourceGroup/providers/Microsoft.Compute/galleries/myVMSSGallery/images/MyImage/versions/0.0.$(Build.BuildId)'
Kaynakları temizleme
Azure portalına gidin ve kaynak grubunuzu myVMSSResourceGroup
silin.
Sonraki adımlar
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