Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
Z tego przewodnika Szybki start dowiesz się, jak skonfigurować potok usługi Azure DevOps na potrzeby wdrażania do wielu zasobów maszyny wirtualnej z systemem Linux w środowisku. Możesz użyć tych instrukcji dla dowolnej aplikacji, która publikuje pakiet wdrażania sieci Web.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Organizacja i projekt usługi Azure DevOps. Utwórz konto w usłudze Azure Pipelines.
W przypadku aplikacji JavaScript lub Node.js co najmniej dwie maszyny wirtualne z systemem Linux skonfigurowane za pomocą serwera Nginx na platformie Azure.
Sforkuj przykładowy kod
Jeśli masz już aplikację w usłudze GitHub, którą chcesz wdrożyć, możesz utworzyć potok dla tego kodu.
Jeśli jesteś nowym użytkownikiem, forkować to repozytorium na GitHubie:
https://github.com/MicrosoftDocs/pipelines-javascript
Tworzenie środowiska przy użyciu maszyn wirtualnych z systemem Linux
Maszyny wirtualne można dodawać jako zasoby w środowiskach i kierować do nich wdrożenia z wieloma maszynami wirtualnymi. Historia wdrażania środowiska zapewnia możliwość śledzenia z maszyny wirtualnej do zatwierdzenia.
Dodawanie zasobu maszyny wirtualnej
W projekcie usługi Azure DevOps przejdź do pozycji Środowiska potoków>, a następnie wybierz pozycję Utwórz środowisko lub Nowe środowisko.
Na ekranie Nowe środowisko dodaj nazwę oraz opcjonalnie opis.
W obszarze Zasób wybierz pozycję Maszyny wirtualne, a następnie wybierz pozycję Dalej.
Na następnym ekranie Nowe środowisko wybierz pozycję Linux w obszarze System operacyjny.
Skopiuj skrypt rejestracji systemu Linux. Skrypt jest taki sam dla wszystkich maszyn wirtualnych z systemem Linux dodanych do środowiska.
Uwaga
Osobisty token dostępu (PAT) zalogowanego użytkownika jest wstępnie wstawiany w skrypcie i wygasa po trzech godzinach.
Wybierz pozycję Zamknij i zanotuj, że nowe środowisko zostało utworzone.
Uruchom skopiowany skrypt na każdej docelowej maszynie wirtualnej, którą chcesz zarejestrować w środowisku.
Uwaga
Jeśli maszyna wirtualna ma już na nim uruchomionego innego agenta, podaj unikatową nazwę agenta do zarejestrowania się w środowisku.
Po zarejestrowaniu maszyny wirtualnej jest ona wyświetlana jako zasób na karcie Zasoby środowiska.
Aby ponownie skopiować skrypt do tworzenia większej liczby zasobów, na przykład w przypadku wygaśnięcia tokenu dostępu wybierz pozycję Dodaj zasób na stronie środowiska.
Dodawanie tagów i zarządzanie nimi
Tagi to sposób kierowania określonego zestawu maszyn wirtualnych w środowisku do wdrożenia. Nie ma limitu liczby tagów, których można użyć. Tagi są ograniczone do 256 znaków.
Tagi można dodawać lub usuwać dla maszyn wirtualnych w interaktywnym skrypcie rejestracji lub za pośrednictwem interfejsu użytkownika, wybierając opcję Więcej akcji dla zasobu maszyny wirtualnej. W tym przewodniku szybkiego startu przypisz różny tag każdej maszynie wirtualnej w środowisku.
Zdefiniuj potok budowy CI
Potrzebujesz potoku kompilacji ciągłej integracji (CI), który publikuje aplikację internetową, oraz skrypt wdrożenia, który będzie uruchamiany lokalnie na serwerze z systemem Linux. Skonfiguruj potok kompilacji ciągłej integracji na podstawie środowiska uruchomieniowego, którego chcesz użyć.
Ważne
Podczas procedur usługi GitHub może zostać wyświetlony monit o utworzenie połączenia usługi GitHub lub przekierowanie do usługi GitHub w celu zalogowania się, zainstalowania usługi Azure Pipelines lub autoryzowania usługi Azure Pipelines. Postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby ukończyć proces. Aby uzyskać więcej informacji, zobacz Dostęp do repozytoriów GitHub.
- W projekcie usługi Azure DevOps wybierz Pipelines>Utwórz potok, a następnie wybierz GitHub jako lokalizację kodu źródłowego.
- Na ekranie Wybierz repozytorium wybierz swoje sforkowane przykładowe repozytorium.
- Na ekranie „Konfigurowanie potoku”
wybierz opcję Potok startowy . Usługa Azure Pipelines generuje plik YAML o nazwie azure-pipelines.yml dla potoku. - Wybierz listę rozwijaną obok Zapisz i uruchom, wybierz Zapisz, a następnie ponownie wybierz Zapisz. Plik jest zapisywany w rozwidlonym repozytorium GitHub.
Edytowanie kodu
Wybierz pozycję Edytuj i zastąp zawartość pliku azure-pipelines.yml następującym kodem. Dodasz do tego pliku YAML w kolejnych krokach.
Poniższy kod kompiluje projekt Node.js za pomocą narzędzia 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
Aby uzyskać więcej informacji, zapoznaj się z krokami w temacie Build your Node.js app with gulp for creating a build (Tworzenie aplikacji Node.js za pomocą narzędzia gulp na potrzeby tworzenia kompilacji).
Uruchom swój potok
Wybierz pozycję Zweryfikuj i zapisz, a następnie wybierz pozycję Zapisz, wybierz pozycję Uruchom, a następnie wybierz pozycję Uruchom ponownie.
Po uruchomieniu potoku sprawdź, czy zadanie zostało uruchomione pomyślnie i czy widzisz opublikowany artefakt.
Wdrażanie na maszynach wirtualnych z systemem Linux
Edytuj potok, aby dodać następujące zadanie wdrożeniowe. Zastąp
<environment name>
nazwą utworzonego wcześniej środowiska. Wybierz określone maszyny wirtualne ze środowiska, aby przeprowadzić wdrożenie, określając<VM tag>
zdefiniowane dla każdej maszyny wirtualnej.jobs: - deployment: VMDeploy displayName: Web deploy environment: name: <environment name> resourceType: VirtualMachine tags: <VM tag> # Update value for VMs to deploy to strategy:
Aby uzyskać więcej informacji, zobacz pełną definicję jobs.deployment.
Aby uzyskać więcej informacji na temat słowa kluczowego
environment
i zasobów, na które ukierunkowane jest zadanie wdrożeniowe, zobacz definicję jobs.deployment.environment.Określ element
runOnce
lubrolling
jako element wdrożeniowystrategy
.runOnce
jest najprostszą strategią wdrażania. HookipreDeploy
,deploy
,routeTraffic
ipostRouteTraffic
cyklu życia są wykonywane raz. Następnie wykonaj polecenieon:
success
lubon:
failure
.Poniższy kod przedstawia zadanie wdrożenia dla
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
Poniższy kod przedstawia fragment kodu YAML dla
rolling
strategii wdrażania za pomocą potoku Java. W każdej iteracji można zaktualizować maksymalnie pięć elementów docelowych. ParametrmaxParallel
określa liczbę obiektów docelowych, które można wdrożyć równolegle.Wybór
maxParallel
odpowiada bezwzględnej liczbie lub procentowi obiektów docelowych, które muszą pozostać dostępne w dowolnym momencie, z wyłączeniem wdrożonych obiektów docelowych i określa warunki powodzenia i niepowodzenia podczas wdrażania.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
Po każdym uruchomieniu tego zadania historia wdrożenia jest rejestrowana w odniesieniu do środowiska, w którym utworzyłeś i zarejestrowałeś maszyny wirtualne.
Uzyskiwanie dostępu do śledzenia rurociągu w środowisku
Widok Wdrożenia środowisk zapewnia pełną śledzialność zatwierdzeń i elementów roboczych oraz historię wdrożeń w różnych potokach dla środowiska.