Share via


Oktatóanyag: Java-alkalmazás üzembe helyezése virtuálisgép-méretezési csoportban

Azure DevOps Services

A virtuálisgép-méretezési csoportokkal azonos, automatikus skálázású virtuális gépeket helyezhet üzembe és kezelhet.

A virtuális gépek a méretezési csoportban igény szerint jönnek létre. Szabályokat határozhat meg a virtuális gépek hozzáadásának vagy a méretezési csoportból való eltávolításának módjára és időpontjára. Ezek a szabályok a processzorterheléshez, a memóriahasználathoz és a hálózati forgalomhoz hasonló mérőszámok alapján aktiválhatók.

Ebben az oktatóanyagban java-alkalmazást hoz létre és helyez üzembe egy virtuálisgép-méretezési csoportban. Az alábbiak végrehajtásának módját ismerheti meg:

  • Virtuálisgép-méretezési csoport létrehozása
  • Gépi rendszerkép létrehozása
  • Egyéni rendszerkép üzembe helyezése virtuálisgép-méretezési csoportban

Előfeltételek

Mielőtt hozzákezdene, a következőkre van szüksége:

A Java-folyamat beállítása

  1. Jelentkezzen be az Azure DevOps-szervezetbe, és nyissa meg a projektet.

  2. Lépjen a Folyamatok elemre, majd válassza az Új folyamat vagy a Folyamat létrehozása lehetőséget az első folyamat létrehozásakor.

  3. Végezze el a varázsló lépéseit úgy, hogy először a GitHubot választja a forráskód helyeként.

  4. Előfordulhat, hogy a rendszer átirányítja a GitHubra a bejelentkezéshez. Ha igen, adja meg a GitHub hitelesítő adatait.

  5. Amikor megjelenik az adattárak listája, válassza ki az adattárat.

  6. Előfordulhat, hogy a Rendszer átirányítja a GitHubra az Azure Pipelines alkalmazás telepítéséhez. Ha igen, válassza a Jóváhagyás > telepítés lehetőséget.

Amikor megjelenik a Konfigurálás lap, válassza a Maven lehetőséget.

A folyamat testreszabása

  1. Amikor megjelenik az új folyamat, tekintse meg a YAML-et, hogy lássa, mit csinál. Ha elkészült, válassza a Mentés és futtatás lehetőséget.

    Save and run button in a new YAML pipeline

  2. A rendszer kérni fogja, hogy véglegesítsen egy új azure-pipelines.yml fájlt az adattárban. Miután elégedett az üzenettel, válassza a Mentés és futtatás lehetőséget.

    Ha működés közben szeretné megtekinteni a folyamatot, válassza ki a buildelési feladatot.

    Most hozott létre és futtatott egy folyamatot, amelyet automatikusan létrehoztunk Önnek, mert a kód jónak tűnt a Maven-sablonhoz .

    Most már rendelkezik egy működő YAML-folyamat (azure-pipelines.yml) az adattárban, amely készen áll a testreszabásra!

  3. Ha készen áll a folyamat módosítására, jelölje ki azt a Folyamatok lapon, majd szerkessze a azure-pipelines.yml fájlt.

Fájlok másolása és buildösszetevő-feladatok közzététele

  1. Frissítse a folyamatot, hogy belefoglalja a CopyFiles@2 feladatot. Ez létrehoz egy összetevőt, amelyet üzembe helyezhet a virtuálisgép-méretezési csoportban.

      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  
    

Egyéni rendszerkép létrehozása és feltöltése az Azure-ba

Szüksége lesz egy erőforráscsoportra, tárfiókra és megosztott képgyűjteményre az egyéni rendszerképhez.

  1. Hozzon létre egy erőforráscsoportot az az group create paranccsal. Ez a példa létrehoz egy myVMSSResourceGroup nevű erőforráscsoportot az eastus2 helyen:

    az group create --name myVMSSResourceGroup --location eastus2
    
  2. Hozzon létre egy új tárfiókot. Ez a példa létrehoz egy tárfiókot. vmssstorageaccount

    az storage account create \
      --name vmssstorageaccount \
      --resource-group myVMSSResourceGroup \
      --location eastus2 \
      --sku Standard_LRS 
    
  3. Hozzon létre egy megosztott képgyűjteményt.

    az sig create --resource-group myVMSSResourceGroup --gallery-name myVMSSGallery
    
  4. Hozzon létre egy új képgyűjteményt az myVMSSGallery erőforrásban. A képgalériák használatáról további információt az Azure Megosztott képtár létrehozása a portálon című témakörben talál.

    az sig create --resource-group myVMSSResourceGroup --gallery-name myVMSSGallery
    
  5. Hozzon létre egy képdefiníciót. Másolja ki az id új, így /subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/galleries/myVMSSGallery/images/MyImagenéz ki képét.

    az sig image-definition create -g myVMSSResourceGroup --gallery-name myVMSSGallery --gallery-image-definition MyImage --publisher GreatPublisher --offer GreatOffer --sku GreatSku --os-type linux
    

Felügyelt identitás létrehozása

  1. Hozzon létre egy felügyelt identitást az erőforráscsoportban.

    az identity create -g myVMSSResourceGroup -n myVMSSIdentity
    
  2. A kimenetből másolja ki a id. A id fog kinézni /subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>.

  3. Nyissa meg a képgyűjteményt a katalógusban, és rendelje hozzá myVMSSIdentity a közreműködői szerepkört. A szerepkör-hozzárendelés hozzáadásához kövesse az alábbi lépéseket.

Az egyéni rendszerkép létrehozása

Egyéni rendszerkép létrehozásához használhatja az Azure VM Image Builder DevOps-feladatát.

  1. Adja hozzá a AzureImageBuilderTask@1 feladatot a YAML-fájlhoz. Cserélje le a , <RESOURCE GROUP>értékét <SUBSCRIPTION ID><USER ASSIGNED IDENTITY NAME> a saját értékére. Győződjön meg arról, hogy a , managedIdentity és storageAccountName az galleryImageIdértékek pontosak.

    - 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'
    
  2. Futtassa a folyamatot az első rendszerkép létrehozásához. Előfordulhat, hogy a folyamat futtatása során engedélyeznie kell az erőforrásokat .

  3. Nyissa meg az új rendszerképet az Azure Portalon, és nyissa meg az Áttekintést. Válassza a VMSS létrehozása lehetőséget egy új virtuálisgép-méretezési csoport létrehozásához az új lemezképből. Virtuálisgép-méretezési csoport nevének beállítása a következőrevmssScaleSet: . A virtuálisgép-méretezési csoportok Azure Portalon való létrehozásával kapcsolatos további információkért lásd: Virtuálisgép-méretezési csoport létrehozása az Azure Portalon.

Frissítések üzembe helyezése a virtuálisgép-méretezési csoporton

Adjon hozzá egy Azure CLI-feladatot a folyamathoz a méretezési csoport frissítéseinek üzembe helyezéséhez. Adja hozzá a feladatot a folyamat végén. Cserélje le <SUBSCRIPTION ID> az előfizetés azonosítóját.

- 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)'

Az erőforrások eltávolítása

Lépjen az Azure Portalra, és törölje az erőforráscsoportot. myVMSSResourceGroup

Következő lépések