Zarządzanie zasobami maszyny wirtualnej w środowiskach
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
W tym artykule opisano sposób używania zasobów maszyny wirtualnej w środowiskach do zarządzania wdrożeniami usługi Azure Pipelines na wielu maszynach. Agentów można również zainstalować na własnych serwerach na potrzeby wdrożeń stopniowych.
Zasoby maszyn wirtualnych mogą istnieć w środowiskach, takich jak programowanie, testowanie lub produkcja. Po zdefiniowaniu środowiska można dodawać maszyny wirtualne jako cel dla wdrożeń. Historia wdrażania środowiska zapewnia możliwość śledzenia z każdej maszyny wirtualnej do potoku.
Wymagania wstępne
- Dostęp do repozytorium źródłowego połączonego z rurociągiem.
- Dostęp i uprawnienia do pobierania i uruchamiania skryptów wykonywalnych na maszynach wirtualnych, które chcesz połączyć ze środowiskiem.
- Uprawnienia administratora projektu lub administratora kompilacji w projekcie Azure DevOps, który zawiera środowisko. Aby uzyskać więcej informacji, zobacz Zasoby dotyczące bezpieczeństwa potoku.
- Rola administratora dla puli wdrożeniowej lub zestawu dostępnych serwerów docelowych dla organizacji. Aby uzyskać więcej informacji, zobacz pulę wdrożeniową i uprawnienia środowiska.
Uwaga
Aby skonfigurować agenta grupy wdrażania lub jeśli podczas rejestrowania zasobu środowiska maszyny wirtualnej zostanie wyświetlony błąd, upewnij się, że ustawiono zakres osobistego tokenu dostępu (PAT) na Wszystkie dostępne organizacje.
Tworzenie środowiska
Aby dodać zasób maszyny wirtualnej do środowiska, wykonaj poniższą procedurę. Możesz użyć tego samego procesu, aby skonfigurować maszyny fizyczne.
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 pierwszym ekranie Nowe środowisko dodaj nazwę i opcjonalny opis.
W obszarze Zasób wybierz pozycję Maszyny wirtualne, a następnie wybierz pozycję Dalej.
Kopiowanie skryptu rejestracji
Skrypty agenta dla zasobów maszyny wirtualnej są podobne do skryptów dla własnych agentów i używają tych samych poleceń. Skrypty obejmują osobisty token dostępu (PAT) usługi Azure DevOps dla zalogowanego użytkownika, który wygasa trzy godziny po wygenerowaniu skryptu.
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. Aby uzyskać więcej informacji na temat instalowania skryptu agenta, zobacz Self-hosted Linux agents.
Uruchamianie skopiowanego skryptu
Wybierz pozycję Zamknij i zanotuj, że nowe środowisko zostało utworzone. Aby ponownie skopiować skrypt, na przykład w przypadku wygaśnięcia tokenu dostępu wybierz pozycję Dodaj zasób.
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.
Używanie maszyn wirtualnych w potokach
W potoku YAML możesz kierować maszyny wirtualne, odwołując się do ich środowiska. Domyślnie zadanie jest przeznaczone dla wszystkich maszyn wirtualnych zarejestrowanych dla tego środowiska resourceName
.
Uwaga
Po ponowieniu próby etapu wdrożenie zostanie uruchomione ponownie na wszystkich maszynach wirtualnych, a nie tylko w przypadku elementów docelowych, które zakończyły się niepowodzeniem.
trigger:
- main
pool:
vmImage: ubuntu-latest
jobs:
- deployment: VMDeploy
displayName: Deploy to VM
environment:
name: VMenv
resourceName: VMenv
resourceType: virtualMachine
strategy:
runOnce:
deploy:
steps:
- script: echo "Hello world"
Uwaga
Wartości resourceType
, takie jak virtualMachine
, są rozróżniane pod względem wielkości liter. Nieprawidłowe użycie wielkości liter skutkuje brakiem pasujących zasobów.
Wdrożenie można wdrożyć na określonych maszynach wirtualnych w środowisku, określając je w pliku resourceName
. W poniższym przykładzie wdrożono tylko zasób maszyny wirtualnej o nazwie RESOURCE-PC
w VMenv
środowisku.
trigger:
- main
pool:
vmImage: ubuntu-latest
jobs:
- deployment: VMDeploy
displayName: Deploy to VM
environment:
name: VMenv
resourceType: virtualMachine
resourceName: RESOURCE-PC # only deploy to the VM resource named RESOURCE-PC
strategy:
runOnce:
deploy:
steps:
- script: echo "Hello world"
Aby uzyskać więcej informacji na temat zadań wdrażania potoku YAML, zobacz schemat potoków YAML.
Dodawanie tagów i zarządzanie nimi
Tagi to sposób na ukierunkowanie i wdrożenie określonego zestawu maszyn wirtualnych w środowisku. Tagi są ograniczone do 256 znaków. Nie ma limitu liczby tagów, których można użyć.
Tagi można dodawać lub usuwać dla maszyn wirtualnych w interaktywnym skrypcie rejestracyjnym lub za pośrednictwem interfejsu użytkownika, wybierając pozycję Więcej akcji dla zasobu maszyny wirtualnej.
Jeśli określisz wiele tagów, rura używa tylko maszyn wirtualnych, które zawierają wszystkie te tagi. W poniższym przykładzie są przeznaczone tylko maszyny wirtualne, które mają tagi windows
i .prod
Maszyny wirtualne, które mają tylko jeden lub żaden z tagów, nie są brane pod uwagę.
trigger:
- main
pool:
vmImage: ubuntu-latest
jobs:
- deployment: VMDeploy
displayName: Deploy to VM
environment:
name: VMenv
resourceType: virtualMachine
tags: windows,prod # only deploy to VMs with both windows and prod tags
strategy:
runOnce:
deploy:
steps:
- script: echo "Hello world"
Stosowanie strategii wdrażania
Można zastosować strategy
w celu zdefiniowania procesu wdrożenia aplikacji. Maszyny wirtualne obsługują zarówno strategię runOnce
, jak i strategię rolling
. Aby uzyskać więcej informacji na temat strategii wdrażania i punktów zaczepienia cyklu życia, zobacz Strategie wdrażania.
Wyświetlanie historii wdrażania
Wybierz kartę Wdrożenia , aby uzyskać pełną możliwość śledzenia zatwierdzeń i elementów roboczych oraz historię wdrażania między potokami dla poszczególnych środowisk i zasobów.
Usuwanie maszyny wirtualnej ze środowiska
Aby usunąć maszynę wirtualną ze środowiska systemu Linux, uruchom następujące polecenie na każdej maszynie.
./config.sh remove