Udostępnij za pośrednictwem


Provision agents for deployment groups (Aprowizowanie agentów dla grup wdrożenia)

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Grupa wdrożeń to logiczna grupa maszyn docelowych wdrożenia dla klasycznych potoków wydania w usłudze Azure Pipelines. Każdy serwer docelowy w grupie wdrażania wymaga zainstalowanego agenta wdrażania. W tym artykule wyjaśniono, jak zainstalować i aprowizować agenta wdrażania na każdej maszynie fizycznej lub wirtualnej w grupie wdrażania.

Agenta można zainstalować na maszynie docelowej w dowolny z następujących sposobów:

  • Uruchom skrypt, który jest generowany podczas tworzenia grupy wdrażania.
  • Zainstaluj rozszerzenie maszyny wirtualnej platformy Azure agenta usługi Azure Pipelines na maszynie wirtualnej.
  • Użyj zadania AzureResourceGroupDeploymentV2 w potoku wydania, aby dynamicznie utworzyć grupę wdrożenia i aprowizować agentów.

W poniższych sekcjach przedstawiono kroki implementowania każdej metody.

Wymagania wstępne

Uruchamianie skryptu instalacji na serwerach docelowych

Podczas tworzenia grupy wdrażania jest generowany skrypt, który można uruchomić na każdej maszynie docelowej w celu zarejestrowania serwera i zainstalowania agenta. Aby zainstalować agenta przy użyciu wygenerowanego skryptu rejestracji:

  1. W projekcie usługi Azure DevOps wybierz pozycję Potoki>Grupy wdrażania.

  2. Na ekranie Grupy wdrożenia wybierz pozycję Nowy lub wybierz pozycję Dodaj grupę wdrożenia, jeśli ta grupa wdrożenia jest pierwszą grupą w projekcie.

  3. Wprowadź nazwę grupy wdrożenia i opcjonalny opis, a następnie wybierz pozycję Utwórz.

  4. Na następnym ekranie wybierz pozycję Windows lub Linux dla pozycji Typ obiektu docelowego do zarejestrowania. Zostanie wygenerowany skrypt rejestracji.

  5. Wybierz pozycję Do uwierzytelnienia użyj osobistego tokenu dostępu w skrypcie. Aby uzyskać więcej informacji, zobacz Używanie osobistych tokenów dostępu.

  6. Wybierz pozycję Kopiuj skrypt do schowka.

  7. Na każdej maszynie docelowej zaloguj się przy użyciu konta z uprawnieniami administracyjnymi.

  8. Uruchom skopiowany skrypt, aby zarejestrować maszynę i zainstalować agenta. W przypadku maszyn z systemem Windows użyj wiersza polecenia programu PowerShell z podwyższonym poziomem uprawnień.

    Po uruchomieniu skryptu:

    • Aby przypisać tagi, które umożliwiają ograniczenie wdrożeń do niektórych serwerów w zadaniu grupy wdrożenia, wprowadź wartość Y po wyświetleniu monitu o wprowadzenie tagów, a następnie wprowadź tag lub tagi dla tej maszyny wirtualnej.

      Tagi są ograniczone do 256 znaków, są bez uwzględniania wielkości liter i nie ma limitu liczby tagów, których można użyć.

    • Po wyświetleniu monitu o konto użytkownika zaakceptuj wartości domyślne.

    Uwaga

    Jeśli podczas uruchamiania skryptu nie można utworzyć bezpiecznego kanału, uruchom następujące polecenie w wierszu polecenia administratora programu PowerShell:

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Po skonfigurowaniu każdego serwera docelowego skrypt powinien zwrócić komunikat Service vstsagent.{organization-name}.{computer-name} started successfully.

Na karcie Cele na stronie Grupy wdrażania usługi Azure Pipelines możesz sprawdzić, czy agent jest uruchomiony. W razie potrzeby odśwież stronę.

Instalowanie rozszerzenia maszyny wirtualnej platformy Azure agenta usługi Azure Pipelines

Jeśli używasz maszyn wirtualnych platformy Azure jako maszyn wdrażania, możesz zainstalować rozszerzenie agenta usługi Azure Pipelines na każdej maszynie wirtualnej. Rozszerzenie automatycznie rejestruje agenta z określoną grupą wdrażania w projekcie usługi Azure DevOps.

Aby zainstalować agenta przy użyciu rozszerzenia, najpierw utwórz grupę wdrażania:

  1. W projekcie usługi Azure DevOps wybierz pozycję Potoki>Grupy wdrażania.
  2. Na ekranie Grupy wdrożenia wybierz pozycję Nowy lub wybierz pozycję Dodaj grupę wdrożenia, jeśli ta grupa wdrożenia jest pierwszą grupą w projekcie.
  3. Wprowadź nazwę grupy wdrożenia i opcjonalny opis, a następnie wybierz pozycję Utwórz.

W witrynie Azure Portal zainstaluj rozszerzenie agenta usługi Azure Pipelines na każdej docelowej maszynie wirtualnej:

  1. Na stronie maszyny wirtualnej wybierz pozycję >Ustawienia Rozszerzenia i aplikacje w obszarze nawigacji po lewej stronie.

  2. Na karcie Rozszerzenie wybierz pozycję Dodaj.

  3. Na stronie Instalowanie rozszerzenia wyszukaj i wybierz pozycję Agent usługi Azure Pipelines, a następnie wybierz pozycję Dalej.

    Zrzut ekranu przedstawiający wybieranie rozszerzenia agenta usługi Azure Pipelines.

  4. Na ekranie Konfigurowanie rozszerzenia agenta usługi Azure Pipelines określ następujące informacje:

    • Adres URL organizacji usługi Azure DevOps: wprowadź adres URL organizacji usługi Azure DevOps, na przykład https://dev.azure.com/contoso.
    • Projekt zespołowy: wprowadź nazwę projektu, na przykład myProject.
    • Grupa wdrożenia: wprowadź nazwę utworzonej grupy wdrożenia.
    • Nazwa agenta: opcjonalnie wprowadź nazwę agenta. Jeśli nic nie wprowadzisz, agent nosi nazwę maszyny wirtualnej dołączaną za pomocą -DGpolecenia .
    • Osobisty token dostępu: wprowadź osobisty token dostępu (PAT), który ma być używany do uwierzytelniania w usłudze Azure Pipelines.
    • Tagi: opcjonalnie określ rozdzielaną przecinkami listę tagów do skonfigurowania na agencie. Tagi są ograniczone do 256 znaków, są bez uwzględniania wielkości liter i nie ma limitu liczby tagów, których można użyć.
  5. Wybierz pozycję Przejrzyj i utwórz, a po zakończeniu walidacji wybierz pozycję Utwórz.

Korzystanie z zadania AzureResourceGroupDeploymentV2

Do wdrożenia szablonu usługi Azure Resource Manager (ARM) można użyć zadania AzureResourceGroupDeploymentV2. Szablon może zainstalować rozszerzenie agenta usługi Azure Pipelines podczas tworzenia maszyny wirtualnej platformy Azure lub zaktualizować grupę zasobów, aby zastosować rozszerzenie po utworzeniu maszyny wirtualnej.

Alternatywnie możesz użyć zaawansowanych opcji wdrażania zadania AzureResourceGroupDeployment w celu wdrożenia agenta.

Tworzenie grupy wdrożenia

Najpierw utwórz grupę wdrożenia:

  1. W projekcie usługi Azure DevOps wybierz pozycję Potoki>Grupy wdrażania.
  2. Na ekranie Grupy wdrożenia wybierz pozycję Nowy lub wybierz pozycję Dodaj grupę wdrożenia, jeśli ta grupa wdrożenia jest pierwszą grupą w projekcie.
  3. Wprowadź nazwę grupy wdrożenia i opcjonalny opis, a następnie wybierz pozycję Utwórz.

Instalowanie agenta przy użyciu szablonu usługi ARM

Szablon usługi ARM to plik JSON, który deklaratywnie definiuje zestaw zasobów platformy Azure. Platforma Azure automatycznie odczytuje szablon i aprowizuje zasoby. W jednym szablonie można wdrożyć wiele usług i ich zależności.

Aby zarejestrować i zainstalować agenta wdrażania przy użyciu szablonu usługi ARM, dodaj element resources w ramach Microsoft.Compute/virtualMachine zasobu, jak pokazano w poniższym kodzie.

"resources": [
  {
    "name": "[concat(parameters('vmNamePrefix'),copyIndex(),'/TeamServicesAgent')]",
    "type": "Microsoft.Compute/virtualMachines/extensions",
    "location": "[parameters('location')]",
    "apiVersion": "2015-06-15",
    "dependsOn": [
        "[resourceId('Microsoft.Compute/virtualMachines/',
                      concat(parameters('vmNamePrefix'),copyindex()))]"
    ],
    "properties": {
      "publisher": "Microsoft.VisualStudio.Services",
      "type": "TeamServicesAgent",
      "typeHandlerVersion": "1.0",
      "autoUpgradeMinorVersion": true,
      "settings": {
        "VSTSAccountName": "[parameters('VSTSAccountName')]",
        "TeamProject": "[parameters('TeamProject')]",
        "DeploymentGroup": "[parameters('DeploymentGroup')]",
        "AgentName": "[parameters('AgentName')]",
        "AgentMajorVersion": "auto|2|3",
        "Tags": "[parameters('Tags')]"
      },
      "protectedSettings": {
      "PATToken": "[parameters('PATToken')]"
     }
   }
  }
]

Uwaga

W przypadku maszyny wirtualnej type z systemem Linux parametr w properties kodzie powinien mieć wartość TeamServicesAgentLinux.

Uwaga

W systemie Azure DevOps Server 2022.1 lub nowszym dozwolone wartości AgentMajorVersion to auto|2|3. W usłudze Azure DevOps Server 2022.0 i starszych wersjach dozwolone wartości AgentMajorVersion to auto|N.

"resources": [
  {
    "name": "[concat(parameters('vmNamePrefix'),copyIndex(),'/TeamServicesAgent')]",
    "type": "Microsoft.Compute/virtualMachines/extensions",
    "location": "[parameters('location')]",
    "apiVersion": "2015-06-15",
    "dependsOn": [
        "[resourceId('Microsoft.Compute/virtualMachines/',
                      concat(parameters('vmNamePrefix'),copyindex()))]"
    ],
    "properties": {
      "publisher": "Microsoft.VisualStudio.Services",
      "type": "TeamServicesAgent",
      "typeHandlerVersion": "1.0",
      "autoUpgradeMinorVersion": true,
      "settings": {
        "VSTSAccountName": "[parameters('VSTSAccountName')]",
        "TeamProject": "[parameters('TeamProject')]",
        "DeploymentGroup": "[parameters('DeploymentGroup')]",
        "AgentName": "[parameters('AgentName')]",
        "AgentMajorVersion": "auto|N",
        "Tags": "[parameters('Tags')]"
      },
      "protectedSettings": {
      "PATToken": "[parameters('PATToken')]"
     }
   }
  }
]

Powyższy kod:

  • VSTSAccountName jest wymaganą organizacją usługi Azure Pipelines do użycia. Jeśli na przykład adres URL usługi Azure DevOps to https://dev.azure.com/contoso, po prostu określ contoso
  • TeamProject jest wymaganym projektem, który ma zdefiniowaną w niej grupę wdrożenia.
  • DeploymentGroup jest wymaganą grupą wdrożenia do zarejestrowania agenta.
  • AgentName jest opcjonalną nazwą agenta. Jeśli nie zostanie określony, agent otrzymuje nazwę maszyny wirtualnej z dołączonym elementem -DG .
  • Tags to opcjonalna, rozdzielona przecinkami lista tagów, które mają być ustawione na agencie. Tagi są ograniczone do 256 znaków, są bez uwzględniania wielkości liter i nie ma limitu liczby tagów, których można użyć.
  • PATToken jest wymagany do uwierzytelniania w usłudze Azure Pipelines na potrzeby pobierania i konfigurowania agenta.

Aby uzyskać więcej informacji na temat szablonów usługi ARM, zobacz Definiowanie zasobów w szablonach usługi Azure Resource Manager.

Używanie szablonu w potoku wydania

Tworzenie potoku wydania:

  1. Wybierz pozycję Wydania potoków>z menu po lewej stronie, a następnie wybierz pozycję Nowy>potok wydania.
  2. Na karcie Wydania usługi Azure Pipelines utwórz potok wydania z etapem zawierającym zadanie wdrażania szablonu usługi ARM.
  3. Ten szablon używa wersji 2 zadania, więc na ekranie ustawień wdrażania grupy zasobów platformy Azure zmień wersję zadania z 3.* na 2.*.
  4. Podaj parametry wymagane do wykonania zadania, takie jak subskrypcja platformy Azure, nazwa grupy zasobów, lokalizacja, informacje o szablonie i akcja.
  5. Zapisz potok wydania i utwórz wydanie z potoku, aby zainstalować agentów.

Instalowanie agentów przy użyciu zaawansowanych opcji wdrażania

Alternatywnie można zainstalować agenta przy użyciu zaawansowanych opcji wdrażania. Wykonaj powyższe kroki, ale na ekranie Ustawień wdrażania grupy zasobów platformy Azure rozwiń sekcję Zaawansowane opcje wdrażania dla maszyn wirtualnych.

  1. W obszarze Włącz wymagania wstępne wybierz pozycję Konfiguruj za pomocą agenta grupy wdrożeń.

  2. Podaj następujące wymagane parametry i ustawienia:

    • Połączenie usługi Azure Pipelines: wybierz istniejące połączenie z usługą, które wskazuje cel.

      Jeśli nie masz istniejącego połączenia z usługą, wybierz pozycję Nowy i utwórz je. Aby uzyskać więcej informacji, zobacz Tworzenie połączenia z usługą. Skonfiguruj połączenie usługi, aby używać pat z zakresem ograniczonym do grupy wdrożeń.

    • Projekt zespołowy: wybierz projekt zawierający grupę wdrożenia.

    • Grupa wdrożenia: wybierz grupę wdrożenia, w celu zarejestrowania agentów.

    • Wybierz pozycję Kopiuj tagi maszyny wirtualnej platformy Azure do agentów , aby skopiować wszystkie tagi skonfigurowane na maszynie wirtualnej platformy Azure do odpowiedniego agenta grupy wdrożeń.

      Domyślnie wszystkie tagi platformy Azure są kopiowane przy użyciu Key: Value formatu, na przykład Role: Web.

  3. Zapisz potok i utwórz wydanie, aby zainstalować agentów.

Rozwiązywanie problemów z rozszerzeniem

Istnieją znane problemy z rozszerzeniem agenta usługi Azure Pipelines.

Plik stanu jest za duży

Ten problem może wystąpić na maszynach wirtualnych z systemem Windows. Plik stanu zawiera obiekt JSON, który opisuje bieżący stan rozszerzenia. Obiekt jest symbolem zastępczym umożliwiającym wyświetlenie listy wykonanych do tej pory operacji.

Platforma Azure odczytuje ten plik stanu i przekazuje obiekt stanu jako odpowiedź na żądania interfejsu API. Plik ma maksymalny dozwolony rozmiar. Jeśli rozmiar przekracza wartość maksymalną, platforma Azure nie może go całkowicie odczytać i zgłasza błąd stanu.

Mimo że rozszerzenie może być instalowane początkowo, za każdym razem, gdy maszyna ponownie uruchomi rozszerzenie, wykonuje pewne operacje dołączane do pliku stanu. Jeśli maszyna jest uruchamiana wiele razy, rozmiar pliku stanu może przekroczyć próg, powodując błąd Handler Microsoft.VisualStudio.Services.TeamServicesAgent:1.27.0.2 status file 0.status size xxxxxx bytes is too big. Max Limit allowed: 131072 bytes. Mimo że instalacja rozszerzenia może zakończyć się pomyślnie, ten błąd ukrywa rzeczywisty stan rozszerzenia.

Ten problem z ponownym uruchamianiem maszyny został rozwiązany w wersji 1.27.0.2 rozszerzenia systemu Windows i 1.21.0.1 rozszerzenia systemu Linux. Ponowne uruchomienie powoduje teraz dodanie niczego do pliku stanu. Jeśli jednak wystąpił ten problem z starszą wersją rozszerzenia, a rozszerzenie zostało automatycznie zaktualizowane do stałej wersji, problem może się powtarzać. Nowsze wersje rozszerzenia nadal mogą działać z wcześniejszym plikiem stanu.

Ten problem może wystąpić, jeśli używasz starszej wersji rozszerzenia z flagą , aby wyłączyć automatyczne aktualizowanie wersji pomocniczej lub jeśli duży plik stanu został przeniesiony z wcześniejszej wersji do stałej wersji. Jeśli tak, możesz rozwiązać ten problem, odinstalowując i ponownie zainstalować rozszerzenie. Odinstalowanie rozszerzenia powoduje wyczyszczenie całego katalogu rozszerzeń i utworzenie nowego pliku stanu dla nowej instalacji najnowszej wersji.

Problem z danymi niestandardowymi

Język Python 2 jest przestarzały, a rozszerzenie agenta usługi Azure Pipelines współpracuje z językiem Python 3. Jeśli nadal używasz wersji systemu operacyjnego, które nie mają zainstalowanego domyślnie środowiska Python 3, aby uruchomić rozszerzenie, należy zainstalować środowisko Python 3 na maszynie wirtualnej lub przełączyć się do wersji systemu operacyjnego, która ma zainstalowany język Python 3 domyślnie. W przeciwnym razie podczas przełączania wersji systemu operacyjnego może wystąpić zamieszanie dotyczące niestandardowej lokalizacji danych na maszynie wirtualnej.

Na maszynach wirtualnych z systemem Linux niestandardowe kopie danych do /var/lib/waagent/ovf-env.xml dla wcześniejszych wersji agenta oraz do /var/lib/waagent/CustomData dla nowszych wersji. Jeśli kodujesz tylko jedną z tych dwóch ścieżek, możesz napotkać problemy podczas przełączania wersji systemu operacyjnego, ponieważ jedna ze ścieżek nie istnieje w nowej wersji systemu operacyjnego, chociaż druga ścieżka jest obecna. Aby uniknąć przerwania aprowizacji maszyny wirtualnej, rozważ użycie obu ścieżek w szablonie, aby w razie awarii, drugi powinien zakończyć się powodzeniem.

Pomoc i obsługa techniczna