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 do celu przy użyciu 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 potokiem.
- 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 usługi Azure DevOps, który zawiera środowisko. Aby uzyskać więcej informacji, zobacz Zasoby zabezpieczeń potoku.
- Rola administratora dla puli wdrożeń lub zestaw serwerów docelowych dostępnych dla organizacji. Aby uzyskać więcej informacji, zobacz uprawnienia puli wdrożenia i ś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 (Self-hosted agentów systemu Linux).
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ą uwzględniane wielkość liter. Niepoprawne wielkości liter nie znaleziono 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 kierowania określonego zestawu maszyn wirtualnych w środowisku do wdrożenia. 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ć tagi dla maszyn wirtualnych w skryscie rejestracji interakcyjnej lub za pośrednictwem interfejsu użytkownika, wybierając pozycję Więcej akcji dla zasobu maszyny wirtualnej.
Jeśli określisz wiele tagów, potok używa tylko maszyn wirtualnych, które zawierają wszystkie 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ą docelowe.
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
Wdrożenie można zastosować strategy
, aby zdefiniować sposób wdrażania aplikacji. Maszyny wirtualne obsługują zarówno strategie, jak runOnce
rolling
i . 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