Distribuera till virtuella Linux-datorer i en miljö
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
I den här snabbstarten får du lära dig hur du konfigurerar en Azure DevOps-pipeline för distribution till flera virtuella Linux-datorresurser (VM) i en miljö. Du kan använda de här anvisningarna för alla appar som publicerar ett webbdistributionspaket.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- En Azure DevOps-organisation och ett projekt. Registrera dig för Azure Pipelines.
För JavaScript- eller Node.js-appar har minst två virtuella Linux-datorer konfigurerats med Nginx i Azure.
Förgrena exempelkoden
Om du redan har en app i GitHub som du vill distribuera kan du skapa en pipeline för koden.
Om du är en ny användare förgrenar du den här lagringsplatsen i GitHub:
https://github.com/MicrosoftDocs/pipelines-javascript
Skapa en miljö med virtuella Linux-datorer
Du kan lägga till virtuella datorer som resurser i miljöer och rikta dem mot distributioner med flera virtuella datorer. Distributionshistoriken för miljön ger spårning från den virtuella datorn till incheckningen.
Lägga till en VM-resurs
I ditt Azure DevOps-projekt går du till Pipelines-miljöer> och väljer sedan Skapa miljö eller Ny miljö.
På den första skärmen Ny miljö lägger du till ett Namn och en valfri Beskrivning.
Under Resurs väljer du Virtuella datorer och sedan Nästa.
På nästa skärm ny miljö väljer du Linux under Operativsystem.
Kopiera Linux-registreringsskriptet. Skriptet är detsamma för alla virtuella Linux-datorer som har lagts till i miljön.
Kommentar
Den inloggade användarens personliga åtkomsttoken (PAT) infogas i skriptet och upphör att gälla efter tre timmar.
Välj Stäng och observera att den nya miljön har skapats.
Kör det kopierade skriptet på varje virtuell måldator som du vill registrera med miljön.
Kommentar
Om den virtuella datorn redan har en annan agent som körs på den anger du ett unikt namn som agenten kan registrera med miljön.
När den virtuella datorn har registrerats visas den som en resurs under fliken Resurser i miljön.
Om du vill kopiera skriptet igen för att skapa fler resurser, till exempel om din PAT upphör att gälla, väljer du Lägg till resurs på miljöns sida.
Lägga till och hantera taggar
Taggar är ett sätt att rikta in sig på en specifik uppsättning virtuella datorer i en miljö för distribution. Det finns ingen gräns för hur många taggar du kan använda. Taggarna är begränsade till 256 tecken vardera.
Du kan lägga till taggar eller ta bort taggar för virtuella datorer i det interaktiva registreringsskriptet eller via användargränssnittet genom att välja Fler åtgärder för en VM-resurs. I den här snabbstarten tilldelar du en annan tagg till varje virtuell dator i din miljö.
Definiera en CI-byggpipeline
Du behöver en pipeline för kontinuerlig integrering (CI) som publicerar webbappen och ett distributionsskript som ska köras lokalt på Linux-servern. Konfigurera ci-bygg-pipelinen baserat på den körning som du vill använda.
Viktigt!
Under GitHub-procedurerna kan du uppmanas att skapa en GitHub-tjänstanslutning eller omdirigeras till GitHub för att logga in, installera Azure Pipelines eller auktorisera Azure Pipelines. Följ anvisningarna på skärmen för att slutföra processen. Mer information finns i Åtkomst till GitHub-lagringsplatser.
- I ditt Azure DevOps-projekt väljer du Pipelines Create Pipeline (Pipelines>Create Pipeline) och sedan GitHub som plats för källkoden.
- På skärmen Välj en lagringsplats väljer du din förgrenade exempellagringsplats.
- På skärmen Konfigurera pipeline väljer du Startpipeline. Azure Pipelines genererar en YAML-fil med namnet azure-pipelines.yml för din pipeline.
- Välj listrutan bredvid Spara och kör, välj Spara och välj sedan Spara igen. Filen sparas på din förgrenade GitHub-lagringsplats.
Redigera koden
Välj Redigera och ersätt innehållet i azure-pipelines.yml-filen med följande kod. Du lägger till i denna YAML i framtida steg.
Följande kod skapar ditt Node.js projekt med npm.
trigger:
- main
pool:
vmImage: ubuntu-latest
stages:
- stage: Build
displayName: Build stage
jobs:
- job: Build
displayName: Build
steps:
- task: UseNode@1
inputs:
version: '16.x'
displayName: 'Install Node.js'
- script: |
npm install
npm run build --if-present
npm run test --if-present
displayName: 'npm install, build and test'
- task: ArchiveFiles@2
displayName: 'Archive files'
inputs:
rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
includeRootFolder: false
archiveType: zip
archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
replaceExistingArchive: true
- upload: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
artifact: drop
Mer information finns i stegen i Skapa din Node.js-app med gulp för att skapa en version.
Kör din pipeline
Välj Verifiera och spara, välj sedan Spara, välj Kör och välj Kör igen.
När pipelinen har körts kontrollerar du att jobbet har körts och att du ser en publicerad artefakt.
Distribuera till de virtuella Linux-datorerna
Redigera din pipeline för att lägga till följande distributionsjobb. Ersätt
<environment name>
med namnet på den miljö som du skapade tidigare. Välj specifika virtuella datorer från miljön för att ta emot distributionen genom att ange det<VM tag>
som du har definierat för varje virtuell dator.jobs: - deployment: VMDeploy displayName: Web deploy environment: name: <environment name> resourceType: VirtualMachine tags: <VM tag> # Update value for VMs to deploy to strategy:
Mer information finns i den fullständiga definitionen för jobs.deployment.
Mer information om nyckelordet
environment
och resurserna som ett distributionsjobb riktar sig till finns i definitionen jobs.deployment.environment.Ange antingen
runOnce
ellerrolling
som en distributionstrategy
.runOnce
är den enklaste distributionsstrategin. LivscykelkrokenpreDeploy
deploy
,routeTraffic
och körs var ochpostRouteTraffic
en en gång. Sedan antingenon:
success
elleron:
failure
körs.Följande kod visar ett distributionsjobb för
runOnce
:jobs: - deployment: VMDeploy displayName: Web deploy environment: name: <environment name> resourceType: VirtualMachine tags: <VM tag> strategy: runOnce: deploy: steps: - script: echo my first deployment
Följande kod visar ett YAML-kodfragment för distributionsstrategin
rolling
med hjälp av en Java-pipeline. Du kan uppdatera upp till fem mål i varje iteration. ParameternmaxParallel
anger antalet mål som kan distribueras parallellt.Valet
maxParallel
står för absolut antal eller procentandel av mål som måste vara tillgängliga när som helst, exklusive de mål som distribueras till, och bestämmer framgångs- och felförhållanden under distributionen.jobs: - deployment: VMDeploy displayName: web environment: name: <environment name> resourceType: VirtualMachine tags: <VM tag> strategy: rolling: maxParallel: 2 #for percentages, mention as x% preDeploy: steps: - download: current artifact: drop - script: echo initialize, cleanup, backup, install certs deploy: steps: - task: Bash@3 inputs: targetType: 'inline' script: | # Modify deployment script based on the app type echo "Starting deployment script run" sudo java -jar '$(Pipeline.Workspace)/drop/**/target/*.jar' routeTraffic: steps: - script: echo routing traffic postRouteTraffic: steps: - script: echo health check post-route traffic on: failure: steps: - script: echo Restore from backup! This is on failure success: steps: - script: echo Notify! This is on success
Med varje körning av det här jobbet registreras distributionshistoriken mot den miljö som du skapade och registrerade de virtuella datorerna i.
Åtkomst till pipelinespårning i miljön
Miljödistributionsvyn ger fullständig spårning av incheckningar och arbetsobjekt och en distributionshistorik för flera pipelines för miljön.