Zelfstudie: Een Java-app implementeren in een virtuele-machineschaalset
Azure DevOps Services
Met een virtuele-machineschaalset kunt u identieke, automatisch schalende virtuele machines implementeren en beheren.
Virtuele machines worden in een schaalset gemaakt als dat nodig is. U definieert regels om te bepalen hoe en wanneer VM's worden toegevoegd aan of verwijderd uit de schaalset. Deze regels kunnen worden geactiveerd op basis van de metrische gegevens zoals CPU-belasting, geheugengebruik of netwerkverkeer.
In deze zelfstudie bouwt u een Java-app en implementeert u deze in een virtuele-machineschaalset. U leert het volgende:
- Een virtuele-machineschaalset maken
- Een machineinstallatiekopieën bouwen
- Een aangepaste installatiekopieën implementeren in een virtuele-machineschaalset
Vereisten
Voordat u begint, hebt u het volgende nodig:
- Een Azure-account met een actief abonnement. Gratis een account maken
- Een actieve Azure DevOps-organisatie. Meld u aan voor Azure Pipelines.
- De Azure VM Image Builder DevOps-taak die is geïnstalleerd voor uw DevOps-organisatie.
- Een vervalste GitHub-opslagplaats met het voorbeeldproject. Maak een fork van de opslagplaats pipelines-vmss.
Uw Java-pijplijn instellen
Meld u aan bij uw Azure DevOps-organisatie en ga naar uw project.
Ga naar Pijplijnen en selecteer vervolgens Nieuwe pijplijn of Pijplijn maken als u uw eerste pijplijn maakt.
Voer de stappen van de wizard uit door eerst GitHub te selecteren als de locatie van uw broncode.
U wordt mogelijk omgeleid naar GitHub om u aan te melden. Voer in dat geval uw GitHub-referenties in.
Wanneer u de lijst met opslagplaatsen ziet, selecteert u de opslagplaats.
U wordt mogelijk omgeleid naar GitHub om de Azure Pipelines-app te installeren. Als dat het zo is, selecteert u Goedkeuren en installeren.
Wanneer het tabblad Configureren wordt weergegeven, selecteert u Maven.
De pijplijn aanpassen
Wanneer uw nieuwe pijplijn wordt weergegeven, bekijkt u de YAML om te zien wat deze doet. Wanneer u klaar bent, selecteert u Opslaan en uitvoeren.
U wordt gevraagd een nieuw azure-pipelines.yml-bestand door te voeren naar uw opslagplaats. Nadat u tevreden bent met het bericht, selecteert u Opslaan en opnieuw uitvoeren .
Als u de pijplijn in actie wilt bekijken, selecteert u de buildtaak.
U hebt zojuist een pijplijn gemaakt en uitgevoerd die automatisch voor u is gemaakt, omdat uw code een goede overeenkomst leek voor de Maven-sjabloon .
U hebt nu een werkende YAML-pijplijn (
azure-pipelines.yml
) in uw opslagplaats die u kunt aanpassen.Wanneer u klaar bent om wijzigingen aan te brengen in uw pijplijn, selecteert u deze op de pagina Pijplijnen en bewerkt u het
azure-pipelines.yml
bestand.
De taken Voor het kopiëren van bestanden en het publiceren van buildartefacten toevoegen
Werk uw pijplijn bij om de
CopyFiles@2
taak op te nemen. Hiermee maakt u een artefact dat u kunt implementeren in uw virtuele-machineschaalset.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
Een aangepaste installatiekopieën maken en uploaden naar Azure
U hebt een resourcegroep, opslagaccount en galerie met gedeelde installatiekopieën nodig voor uw aangepaste installatiekopieën.
Maak een resourcegroep maken met az group create. In dit voorbeeld wordt een resourcegroep met de naam myVMSSResourceGroup gemaakt op de locatie eastus2 :
az group create --name myVMSSResourceGroup --location eastus2
Maak een nieuw opslagaccount. In dit voorbeeld wordt een opslagaccount gemaakt.
vmssstorageaccount
az storage account create \ --name vmssstorageaccount \ --resource-group myVMSSResourceGroup \ --location eastus2 \ --sku Standard_LRS
Maak een galerie met gedeelde installatiekopieën.
az sig create --resource-group myVMSSResourceGroup --gallery-name myVMSSGallery
Maak een nieuwe installatiekopieëngalerie in de
myVMSSGallery
resource. Zie Een galerie met gedeelde azure-installatiekopieën maken met behulp van de portal voor meer informatie over het werken met afbeeldingengalerieën.az sig create --resource-group myVMSSResourceGroup --gallery-name myVMSSGallery
Maak een definitie van een installatiekopieën. Kopieer de
id
nieuwe afbeelding die er als/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/galleries/myVMSSGallery/images/MyImage
volgt uitziet.az sig image-definition create -g myVMSSResourceGroup --gallery-name myVMSSGallery --gallery-image-definition MyImage --publisher GreatPublisher --offer GreatOffer --sku GreatSku --os-type linux
Een beheerde identiteit maken
Maak een beheerde identiteit in uw resourcegroep.
az identity create -g myVMSSResourceGroup -n myVMSSIdentity
Kopieer de
id
uitvoer. Deid
zal er als/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>
volgt uitzien.Open uw afbeeldingengalerie in de galerie en wijs de rol Inzender toe
myVMSSIdentity
. Volg deze stappen om een roltoewijzing toe te voegen.
De aangepaste installatiekopieën maken
Als u een aangepaste installatiekopieën wilt maken, kunt u de DevOps-taak azure VM Image Builder gebruiken.
Voeg de
AzureImageBuilderTask@1
taak toe aan uw YAML-bestand. Vervang de waarden voor<SUBSCRIPTION ID>
,<RESOURCE GROUP>
door<USER ASSIGNED IDENTITY NAME>
uw eigen waarden. Zorg ervoor dat u controleert of de waardenmanagedIdentity
enstorageAccountName
waardengalleryImageId
juist zijn.- 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'
Voer de pijplijn uit om uw eerste installatiekopieën te genereren. Mogelijk moet u resources autoriseren tijdens de pijplijnuitvoering.
Ga naar de nieuwe installatiekopieën in Azure Portal en open Overzicht. Selecteer VMSS maken om een nieuwe virtuele-machineschaalset te maken op basis van de nieuwe installatiekopieën. Stel de naam van de virtuele-machineschaalset in op
vmssScaleSet
. Zie Een virtuele-machineschaalset maken in Azure Portal voor meer informatie over het maken van virtuele-machineschaalsets in Azure Portal.
Updates implementeren in de virtuele-machineschaalset
Voeg een Azure CLI-taak toe aan uw pijplijn om updates voor de schaalset te implementeren. Voeg de taak toe aan het einde van de pijplijn. Vervang door <SUBSCRIPTION ID>
uw abonnements-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)'
Resources opschonen
Ga naar Azure Portal en verwijder uw resourcegroep. myVMSSResourceGroup
Volgende stappen
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort: Gedurende 2024 worden GitHub Issues uitgefaseerd als het feedbackmechanisme voor inhoud. Dit wordt vervangen door een nieuw feedbacksysteem. Ga voor meer informatie naar:Feedback verzenden en bekijken voor