Agenci usługi Azure Pipelines

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

Uwaga

W Microsoft Team Foundation Server (TFS) 2018 i poprzednich wersjach potoki kompilacji i wydania są nazywane definicjami, przebiegi są nazywane kompilacjami, połączenia usług są nazywane punktami końcowymi usługi, etapami są nazywane środowiskami, a zadania są nazywane fazami.

Aby skompilować kod lub wdrożyć oprogramowanie przy użyciu Azure Pipelines, potrzebujesz co najmniej jednego agenta. Gdy dodasz więcej kodu i osób, w końcu będziesz potrzebować więcej.

Po uruchomieniu potoku system rozpoczyna jedno lub więcej zadań. Agent to infrastruktura obliczeniowa z zainstalowanym oprogramowaniem agenta, które uruchamia jedno zadanie naraz.

Zadania można uruchamiać bezpośrednio na maszynie hosta agenta lub w kontenerze.

Agenci hostowani przez firmę Microsoft

Jeśli potoki znajdują się w Azure Pipelines, masz wygodną opcję uruchamiania zadań przy użyciu agenta hostowanego przez firmę Microsoft. W przypadku agentów hostowanych przez firmę Microsoft konserwacja i uaktualnienia są obsługiwane przez Ciebie. Za każdym razem, gdy uruchamiasz potok, otrzymujesz nową maszynę wirtualną dla każdego zadania w potoku. Maszyna wirtualna jest odrzucana po jednym zadaniu (co oznacza, że wszelkie zmiany wykonywane przez zadanie w systemie plików maszyny wirtualnej, takie jak wyewidencjonowywanie kodu, będą niedostępne dla następnego zadania). Agenci hostowani przez firmę Microsoft mogą uruchamiać zadania bezpośrednio na maszynie wirtualnej lub w kontenerze.

Azure Pipelines udostępnia wstępnie zdefiniowaną pulę agentów o nazwie Azure Pipelines z agentami hostowanymi przez firmę Microsoft.

Dla wielu zespołów jest to najprostszy sposób uruchamiania zadań. Możesz spróbować go najpierw i sprawdzić, czy działa w przypadku kompilacji lub wdrożenia. Jeśli nie, możesz użyć własnego agenta.

Porada

Możesz wypróbować agenta hostowanego przez firmę Microsoft bez opłat.

Dowiedz się więcej o agentach hostowanych przez firmę Microsoft.

Właśni agenci

Agent skonfigurowany samodzielnie i zarządzany do uruchamiania zadań jest własnym agentem. Możesz użyć własnych agentów w Azure Pipelines lub Azure DevOps Server, dawniej o nazwie Team Foundation Server (TFS). Agenci self-hosted zapewniają większą kontrolę nad instalacją oprogramowania zależnego potrzebnego do kompilacji i wdrożeń. Ponadto pamięci podręczne i konfiguracja na poziomie maszyny utrzymują się z uruchomienia do uruchomienia, co może zwiększyć szybkość.

Uwaga

Chociaż na maszynę można zainstalować wiele agentów, zdecydowanie zalecamy zainstalowanie tylko jednego agenta na maszynę. Zainstalowanie co najmniej dwóch agentów może mieć negatywny wpływ na wydajność i wynik potoków.

Porada

Przed zainstalowaniem własnego agenta warto sprawdzić, czy pula agentów hostowana przez firmę Microsoft będzie działać. W wielu przypadkach jest to najprostszy sposób, aby przejść. Spróbuj.

Agenta można zainstalować na maszynach z systemem Linux, macOS lub Windows. Agent można również zainstalować w kontenerze platformy Docker. Aby uzyskać więcej informacji na temat instalowania własnego agenta, zobacz:

Uwaga

W systemie macOS należy wyczyścić atrybut specjalny w archiwum pobierania, aby zapobiec wyświetlaniu ochrony programu Gatekeeper dla każdego zestawu w pliku tar po ./config.sh uruchomieniu. Następujące polecenie czyści atrybut rozszerzony w pliku:

xattr -c vsts-agent-osx-x64-V.v.v.tar.gz  ## replace V.v.v with the version in the filename downloaded.

# then unpack the gzip tar file normally:

tar xvfz vsts-agent-osx-x64-V.v.v.tar.gz

Po zainstalowaniu agenta na maszynie można zainstalować dowolne inne oprogramowanie na tym komputerze zgodnie z wymaganiami zadań.

Uwaga

Agenci są powszechnie zgodni z poprzednimi wersjami. Każda wersja agenta powinna być zgodna z dowolną wersją Azure DevOps, o ile Azure DevOps nie wymaga wyższej wersji agenta.

Obsługujemy tylko najnowszą wersję agenta, ponieważ jest to jedyna wersja gwarantowana, aby mieć wszystkie aktualne poprawki i poprawki błędów.

Agenci zestawu skalowania maszyn wirtualnych platformy Azure

Agenci zestawu skalowania maszyn wirtualnych platformy Azure są formą agentów hostowanych samodzielnie, które mogą być skalowane automatycznie w celu spełnienia wymagań. Ta elastyczność zmniejsza konieczność uruchamiania dedykowanych agentów przez cały czas. W przeciwieństwie do agentów hostowanych przez firmę Microsoft masz elastyczność w zakresie rozmiaru i obrazu maszyn, na których działają agenci.

Określasz zestaw skalowania maszyn wirtualnych, liczbę agentów do utrzymania w stanie wstrzymania, maksymalną liczbę maszyn wirtualnych w zestawie skalowania i Azure Pipelines zarządza skalowaniem agentów.

Aby uzyskać więcej informacji, zobacz Agentów zestawu skalowania maszyn wirtualnych platformy Azure.

Zadania równoległe

Zadania równoległe reprezentują liczbę zadań, które można uruchomić jednocześnie w organizacji. Jeśli organizacja ma jedno zadanie równoległe, możesz uruchomić jedno zadanie w danej organizacji w czasie, przy czym wszystkie dodatkowe współbieżne zadania są w kolejce do momentu ukończenia pierwszego zadania. Aby uruchomić dwa zadania w tym samym czasie, potrzebne są dwa zadania równoległe. W Azure Pipelines można uruchamiać zadania równoległe w infrastrukturze hostowanej przez firmę Microsoft lub na własnej infrastrukturze (samodzielnie hostowanej).

Firma Microsoft domyślnie udostępnia bezpłatną warstwę usługi w każdej organizacji, która obejmuje co najmniej jedno zadanie równoległe. W zależności od liczby współbieżnych potoków, które należy uruchomić, może być konieczne użycie większej liczby zadań równoległych do korzystania z wielu agentów hostowanych przez firmę Microsoft lub własnych w tym samym czasie. Aby uzyskać więcej informacji na temat zadań równoległych i różnych warstw bezpłatnych usługi, zobacz Zadania równoległe w Azure Pipelines.

W tym samym czasie może być konieczne użycie większej liczby zadań równoległych:

Ważne

Począwszy od Azure DevOps Server 2019 r., nie trzeba płacić za zadania współbieżne hostowane samodzielnie w wersjach. Liczba posiadanych agentów jest ograniczona tylko przez ciebie.

Możliwości

Każdy własny agent ma zestaw możliwości, które wskazują, co może zrobić. Możliwości to pary nazwa-wartość, które są automatycznie wykrywane przez oprogramowanie agenta, w takim przypadku są nazywane możliwościami systemu lub zdefiniowanymi przez Ciebie funkcjami, w takim przypadku są nazywane możliwościami użytkownika.

Oprogramowanie agenta automatycznie określa różne możliwości systemowe, takie jak nazwa maszyny, typ systemu operacyjnego i wersje określonego oprogramowania zainstalowanego na maszynie. Ponadto zmienne środowiskowe zdefiniowane na maszynie są automatycznie wyświetlane na liście możliwości systemowych.

Uwaga

Przechowywanie zmiennych środowiskowych jako możliwości oznacza, że po uruchomieniu agenta przechowywane wartości możliwości są używane do ustawiania zmiennych środowiskowych. Ponadto wszelkie zmiany zmiennych środowiskowych, które są wprowadzane podczas uruchamiania agenta, nie zostaną odebrane i użyte przez żadne zadanie. Jeśli masz poufne zmienne środowiskowe, które zmieniają się i nie chcesz ich przechowywać jako możliwości, możesz je zignorować, ustawiając VSO_AGENT_IGNORE zmienną środowiskową z rozdzielaną przecinkami listę zmiennych do zignorowania. Na przykład jest to zmienna krytyczna, którą można zignorować, PATH jeśli instalujesz oprogramowanie.

Podczas tworzenia potoku należy określić określone wymagania agenta. System wysyła zadanie tylko do agentów, którzy mają możliwości zgodne z wymaganiami określonymi w potoku. W związku z tym możliwości agenta umożliwiają kierowanie zadań do określonych agentów.

Uwaga

Wymagania i możliwości są przeznaczone do użytku z własnymi agentami, dzięki czemu zadania mogą być dopasowane do agenta spełniającego wymagania zadania. W przypadku korzystania z agentów hostowanych przez firmę Microsoft wybierasz obraz dla agenta spełniającego wymagania zadania, więc chociaż istnieje możliwość dodania możliwości do agenta hostowanego przez firmę Microsoft, nie musisz używać funkcji z agentami hostowanymi przez firmę Microsoft.

Konfigurowanie możliwości agenta

Możesz wyświetlić szczegóły agenta, w tym jego wersję i możliwości systemowe oraz zarządzać jego możliwościami użytkownika, przechodząc do pul agentów i wybierając kartę Możliwości odpowiedniego agenta.

  1. W przeglądarce internetowej przejdź do pozycji Pule agentów:

    1. Wybierz pozycję Azure DevOps, Ustawienia organizacji.

      Choose Organization settings.

    2. Wybierz pozycję Pule agentów.

      Choose Agent pools tab.

    1. Wybierz pozycję Azure DevOps, Ustawienia kolekcji.

      Choose Collection settings.

    2. Wybierz pozycję Pule agentów.

      Choose Agent pools.

    1. Wybierz pozycję Azure DevOps, Ustawienia kolekcji.

      Collection settings, 2019.

    2. Wybierz pozycję Pule agentów.

      Choose Agent pools, 2019.

    1. Przejdź do projektu i wybierz pozycję kolejki agentówUstawienia (ikona koła zębatego). >

      Choose Settings, Agent Queues, 2018.

    2. Wybierz pozycję Zarządzaj pulami.

      Choose Manage pools, 2018.

  2. Przejdź do karty możliwości:

    1. Na karcie Pule agentów wybierz żądaną pulę agentów.

      From Agent pools, select the desired agent pool.

    2. Wybierz pozycję Agenci i wybierz żądanego agenta.

      Select Agents and choose the agent.

    3. Wybierz kartę Możliwości .

      Choose the Capabilities tab.

      Uwaga

      Agenci hostowani przez firmę Microsoft nie wyświetlają możliwości systemowych. Aby uzyskać listę oprogramowania zainstalowanego na agentach hostowanych przez firmę Microsoft, zobacz Używanie agenta hostowanego przez firmę Microsoft.

    1. Na karcie Pule agentów wybierz żądaną pulę.

      Select the desired pool.

    2. Wybierz pozycję Agenci i wybierz żądanego agenta.

      Select Agents and choose the desired agent.

    3. Wybierz kartę Możliwości .

      Agent capabilities tab.

    1. Na karcie Pule agentów wybierz żądaną pulę.

      Select the desired tab, 2019.

    2. Wybierz pozycję Agenci i wybierz żądanego agenta.

      Choose the desired agent, 2019.

    3. Wybierz kartę Możliwości .

      Choose the Capabilities tab, 2019.

    Wybierz żądanego agenta i wybierz kartę Możliwości .

    Agent capabilities tab, 2018.

  3. Aby zarejestrować nową funkcję za pomocą agenta, wybierz pozycję Dodaj nową możliwość.

Porada

Po zainstalowaniu nowego oprogramowania na własnym agencie należy ponownie uruchomić agenta, aby wyświetlić nową funkcję. Aby uzyskać więcej informacji, zobacz Ponowne uruchamianie agenta Windows, Ponowne uruchamianie agenta systemu Linux i Ponowne uruchamianie agentakomputerów Mac.

Komunikacja

Komunikacja z Azure Pipelines

Komunikacja z programem TFS

Agent komunikuje się z Azure Pipelines lub Azure DevOps Server, aby określić, które zadanie musi uruchomić, oraz zgłosić dzienniki i stan zadania. Ta komunikacja jest zawsze inicjowana przez agenta. Wszystkie komunikaty z agenta do Azure Pipelines lub Azure DevOps Server występują za pośrednictwem protokołu HTTP lub HTTPS, w zależności od sposobu konfigurowania agenta. Ten model ściągania umożliwia skonfigurowanie agenta w różnych topologiach, jak pokazano poniżej.

Agent topologies in on-premises installations.

Agent topologies in Azure DevOps Services.

Oto typowy wzorzec komunikacji między agentem a Azure Pipelines lub Azure DevOps Server.

  1. Użytkownik rejestruje agenta za pomocą Azure Pipelines lub Azure DevOps Server przez dodanie go do puli agentów. Aby zarejestrować agenta w tej puli agentów, musisz być administratorem puli agentów. Tożsamość administratora puli agentów jest potrzebna tylko w momencie rejestracji i nie jest utrwalana na agencie ani nie jest używana w dalszej komunikacji między agentem a Azure Pipelines lub Azure DevOps Server. Po zakończeniu rejestracji agent pobiera token OAuth odbiornika i używa go do nasłuchiwania kolejki zadań.

  2. Agent nasłuchuje, czy nowe żądanie zadania zostało opublikowane w kolejce zadań w Azure Pipelines/Azure DevOps Server przy użyciu długiego sondowania HTTP. Gdy zadanie jest dostępne, agent pobiera zadanie, a także token OAuth specyficzny dla zadania. Ten token jest generowany przez Azure Pipelines/Azure DevOps Server dla tożsamości o określonym zakresie w potoku. Ten token jest krótkotrwały i jest używany przez agenta do uzyskiwania dostępu do zasobów (na przykład kodu źródłowego) lub modyfikowania zasobów (na przykład przekazywania wyników testów) na Azure Pipelines lub Azure DevOps Server w ramach tego zadania.

  3. Po zakończeniu zadania agent odrzuca token OAuth specyficzny dla zadania i wraca do sprawdzania, czy istnieje nowe żądanie zadania przy użyciu tokenu OAuth odbiornika.

Ładunek komunikatów wymienianych między agentem a Azure Pipelines/Azure DevOps Server są zabezpieczone przy użyciu szyfrowania asymetrycznego. Każdy agent ma parę kluczy publicznych i prywatnych, a klucz publiczny jest wymieniany z serwerem podczas rejestracji. Serwer używa klucza publicznego do szyfrowania ładunku zadania przed wysłaniem go do agenta. Agent odszyfrowuje zawartość zadania przy użyciu klucza prywatnego. W ten sposób wpisy tajne przechowywane w potokach lub grupach zmiennych są zabezpieczone podczas wymiany z agentem.

Komunikacja do wdrażania na serwerach docelowych

Jeśli używasz agenta do wdrażania artefaktów w zestawie serwerów, musi mieć łączność "linii wzroku" z tymi serwerami. Pule agentów hostowane przez firmę Microsoft domyślnie mają łączność z witrynami internetowymi i serwerami platformy Azure uruchomionymi na platformie Azure.

Uwaga

Jeśli zasoby platformy Azure są uruchomione w usłudze Azure Virtual Network, możesz uzyskać zakresy adresów IP agenta, w których wdrożono agentów hostowanych przez firmę Microsoft, aby można było skonfigurować reguły zapory dla sieci wirtualnej platformy Azure, aby zezwolić na dostęp przez agenta.

Jeśli środowiska lokalne nie mają łączności z pulą agentów hostowaną przez firmę Microsoft (zazwyczaj jest to spowodowane pośrednimi zaporami), należy ręcznie skonfigurować własnego agenta na komputerach lokalnych. Agenci muszą mieć łączność z docelowymi środowiskami lokalnymi i dostęp do Internetu, aby nawiązać połączenie z Azure Pipelines lub Team Foundation Server, jak pokazano w poniższym schemacie.

Agent connectivity for on-premises environments

Authentication

Aby zarejestrować agenta, musisz być członkiem roli administratora w puli agentów. Tożsamość administratora puli agentów jest potrzebna tylko w momencie rejestracji i nie jest utrwalana w agencie i nie jest używana w żadnej kolejnej komunikacji między agentem a Azure Pipelines lub Azure DevOps Server. Ponadto musisz być administratorem lokalnym na serwerze, aby skonfigurować agenta.

Agent może uwierzytelniać się w Azure Pipelines przy użyciu następującej metody:

Agent może uwierzytelniać się w usłudze Azure DevOps Server lub TFS przy użyciu jednej z następujących metod:

Osobisty token dostępu (PAT):

Generowanie i używanie pat do łączenia agenta z programem Azure Pipelines lub TFS 2017 i nowszym. PAT to jedyny schemat, który współpracuje z Azure Pipelines. Pat musi mieć zakres pul agentów (odczyt, zarządzanie) ( dla agenta grupy wdrażania , pat musi mieć zakres Grupy wdrażania (odczyt, zarządzanie) i podczas gdy pojedynczy identyfikator PAT może służyć do rejestrowania wielu agentów, pat jest używany tylko w momencie rejestrowania agenta, a nie do późniejszej komunikacji. Aby uzyskać więcej informacji, zobacz sekcję Uwierzytelnianie przy użyciu osobistego tokenu dostępu (PAT) w artykułach Windows, Linux lub macOS self-hosted agentów.

Aby używać pat z Azure DevOps Server, serwer musi być skonfigurowany przy użyciu protokołu HTTPS. Zobacz Ustawienia i zabezpieczenia witryny sieci Web.

Integracja

Połączenie agenta Windows do serwera TFS przy użyciu poświadczeń zalogowanego użytkownika za pośrednictwem schematu uwierzytelniania Windows, takiego jak NTLM lub Kerberos.

Aby użyć tej metody uwierzytelniania, należy najpierw skonfigurować serwer TFS.

  1. Zaloguj się do maszyny, na której jest uruchomiony program TFS.

  2. Uruchom menedżera Internet Information Services (IIS). Wybierz witrynę TFS i upewnij się, że Windows Uwierzytelnianie jest włączone z prawidłowym dostawcą, takim jak NTLM lub Kerberos.

IIS TFS windows authentication

IIS TFS windows authentication with ntlm provider

Negotiate

Połączenie do serwera TFS jako użytkownik inny niż zalogowany użytkownik za pośrednictwem schematu uwierzytelniania Windows, takiego jak NTLM lub Kerberos.

Aby użyć tej metody uwierzytelniania, należy najpierw skonfigurować serwer TFS.

  1. Zaloguj się na maszynie, na której jest uruchomiony program TFS.

  2. Uruchom menedżera Internet Information Services (IIS). Wybierz witrynę SERWERA TFS i upewnij się, że Windows Uwierzytelnianie jest włączone za pomocą dostawcy negocjowania i innej metody, takiej jak NTLM lub Kerberos.

IIS TFS windows authentication

IIS TFS windows authentication with negotiate and ntlm provider

Alternatywne

Połączenie do serwera TFS przy użyciu uwierzytelniania podstawowego. Aby użyć tej metody, należy najpierw skonfigurować protokół HTTPS w programie TFS.

Aby użyć tej metody uwierzytelniania, należy skonfigurować serwer TFS w następujący sposób:

  1. Zaloguj się na maszynie, na której jest uruchomiony program TFS.

  2. Konfigurowanie uwierzytelniania podstawowego. Zobacz Using against Team Foundation Server 2015 using Basic Authentication (Korzystanie tfx z Team Foundation Server 2015 przy użyciu uwierzytelniania podstawowego).

Interakcyjne a usługa

Możesz uruchomić własnego agenta jako usługę lub proces interaktywny. Po skonfigurowaniu agenta zalecamy najpierw wypróbowanie go w trybie interaktywnym, aby upewnić się, że działa. Następnie w celu użycia w środowisku produkcyjnym zalecamy uruchomienie agenta w jednym z następujących trybów, aby niezawodnie pozostał w stanie uruchomienia. Te tryby zapewniają również, że agent jest uruchamiany automatycznie, jeśli maszyna zostanie uruchomiona ponownie.

  1. Jako usługa. Aby zarządzać cyklem życia agenta, możesz użyć menedżera usług systemu operacyjnego. Ponadto środowisko automatycznego uaktualniania agenta jest lepsze, gdy jest uruchamiany jako usługa.

  2. Jako proces interaktywny z włączonym automatycznym logowaniem. W niektórych przypadkach może być konieczne interaktywne uruchomienie agenta do użytku produkcyjnego — na przykład do uruchamiania testów interfejsu użytkownika. Po skonfigurowaniu agenta do uruchamiania w tym trybie wygaszacz ekranu jest również wyłączony. Niektóre zasady domeny mogą uniemożliwić włączenie automatycznego logowania lub wyłączenie wygaszacza ekranu. W takich przypadkach może być konieczne zażądanie wykluczenia z zasad domeny lub uruchomienie agenta na komputerze grupy roboczej, na którym zasady domeny nie mają zastosowania.

    Uwaga

    Występują zagrożenia bezpieczeństwa podczas włączania automatycznego logowania lub wyłączania wygaszacza ekranu, ponieważ umożliwisz innym użytkownikom przejście do komputera i użycie konta, które jest automatycznie logowane. W przypadku skonfigurowania agenta do uruchomienia w ten sposób należy upewnić się, że komputer jest fizycznie chroniony; na przykład znajduje się w bezpiecznym obiekcie. Jeśli używasz pulpitu zdalnego do uzyskiwania dostępu do komputera, na którym działa agent z automatycznym logowaniem, po prostu zamknięcie pulpitu zdalnego powoduje zablokowanie komputera, a wszystkie testy interfejsu użytkownika uruchamiane na tym agencie mogą zakończyć się niepowodzeniem. Aby tego uniknąć, użyj polecenia tscon , aby odłączyć się od pulpitu zdalnego. Na przykład:

    %windir%\System32\tscon.exe 1 /dest:console

Konto agenta

Niezależnie od tego, czy uruchamiasz agenta jako usługę, czy interaktywnie, możesz wybrać konto komputera używane do uruchamiania agenta. (Należy pamiętać, że różni się to od poświadczeń używanych podczas rejestrowania agenta przy użyciu Azure Pipelines lub Azure DevOps Server). Wybór konta agenta zależy wyłącznie od potrzeb zadań wykonywanych w zadaniach kompilacji i wdrażania.

Aby na przykład uruchamiać zadania korzystające z uwierzytelniania Windows w celu uzyskania dostępu do usługi zewnętrznej, należy uruchomić agenta przy użyciu konta, które ma dostęp do tej usługi. Jeśli jednak uruchamiasz testy interfejsu użytkownika, takie jak Selenium lub Kodowane testy interfejsu użytkownika, które wymagają przeglądarki, przeglądarka zostanie uruchomiona w kontekście konta agenta.

W Windows należy rozważyć użycie konta usługi, takiego jak usługa sieciowa lub usługa lokalna. Te konta mają ograniczone uprawnienia, a ich hasła nie wygasają, co oznacza, że agent wymaga mniejszego zarządzania w czasie.

Wersja agenta i uaktualnienia

Aktualizujemy oprogramowanie agenta co kilka tygodni w Azure Pipelines. Wskazujemy wersję agenta w formacie {major}.{minor}. Jeśli na przykład wersja agenta to , wersja główna to 2.12, a wersja pomocnicza to 1.

Agenci hostowani przez firmę Microsoft są zawsze aktualni. Jeśli nowsza wersja agenta różni się tylko w wersji pomocniczej, agenci self-hosted mogą być zwykle aktualizowani automatycznie (skonfiguruj to ustawienie w pulach agentów, wybierz agenta, Ustawienia — ustawienie domyślne jest włączone) przez Azure Pipelines. Żądanie uaktualnienia jest wymagane, gdy funkcja platformy lub jedno z zadań używanych w potoku wymaga nowszej wersji agenta.

Jeśli uruchamiasz agenta hostowanego samodzielnie lub jeśli jest dostępna nowsza wersja główna agenta, może być konieczne ręczne uaktualnienie agentów. Możesz to łatwo zrobić na karcie Pule agentów w organizacji. Potoki nie będą uruchamiane, dopóki nie będą mogły one być przeznaczone dla zgodnego agenta.

Aby zaktualizować własnych agentów

  1. Przejdź do ustawień Project, pule agentów.

    Project settings, Agent pools

  2. Wybierz pulę agentów i wybierz pozycję Aktualizuj wszystkich agentów.

    Update all agents

    Agentów można również aktualizować indywidualnie, wybierając pozycję Aktualizuj agenta z menu ... .

    Update agent

  3. Wybierz pozycję Aktualizuj , aby potwierdzić aktualizację.

    Update all agents confirmation

  4. Żądanie aktualizacji jest kolejkowane dla każdego agenta w puli, który jest uruchamiany po zakończeniu wszystkich aktualnie uruchomionych zadań. Uaktualnienie zwykle trwa tylko kilka minut — wystarczy pobrać najnowszą wersję oprogramowania agenta (około 200 MB), rozpakować go i ponownie uruchomić agenta przy użyciu nowej wersji. Stan agentów można monitorować na karcie Agenci .

Aktualizujemy oprogramowanie agenta przy użyciu każdej aktualizacji w programie Azure DevOps Server i TFS. Wskazujemy wersję agenta w formacie {major}.{minor}. Jeśli na przykład wersja agenta to 2.1, wersja główna to 2, a wersja pomocnicza to 1.

Jeśli serwer Azure DevOps Server lub TFS ma nowszą wersję agenta, a nowszy agent różni się tylko w wersji pomocniczej, zwykle może być automatycznie uaktualniany. Żądanie uaktualnienia jest wymagane, gdy funkcja platformy lub jedno z zadań używanych w potoku wymaga nowszej wersji agenta. Począwszy od Azure DevOps Server 2019 r., nie musisz czekać na nową wersję serwera. Możesz przekazać nową wersję agenta do warstwy aplikacji, a ta wersja będzie oferowana jako uaktualnienie.

Jeśli agent jest uruchamiany interaktywnie lub jeśli jest dostępna nowsza wersja główna agenta, może być konieczne ręczne uaktualnienie agentów. Można to łatwo zrobić na karcie Pule agentów w kolekcji projektu. Potoki nie będą uruchamiane, dopóki nie będą mogły kierować do zgodnego agenta.

Wersję agenta można wyświetlić, przechodząc do pul agentów i wybierając kartę Możliwości dla żądanego agenta, zgodnie z opisem w temacie Konfigurowanie możliwości agenta.

Aby wyzwolić aktualizację agenta programowo, można użyć interfejsu API aktualizacji agenta zgodnie z opisem w sekcji Jak można programowo wyzwalać aktualizacje agenta dla określonej puli agentów?.

Uwaga

W przypadku serwerów bez dostępu do Internetu ręcznie skopiuj plik zip agenta do C:\ProgramData\Microsoft\Azure DevOps\Agents\ użycia jako plik lokalny.

Często zadawane pytania

Jak mogę upewnić się, że mam najnowszą wersję agenta w wersji 2?

  1. Przejdź do karty Pule agentów :

    1. Wybierz pozycję Azure DevOps, Ustawienia organizacji.

      Choose Organization settings.

    2. Wybierz pozycję Pule agentów.

      Choose Agent pools tab.

    1. Wybierz pozycję Azure DevOps, Ustawienia kolekcji.

      Choose Collection settings.

    2. Wybierz pozycję Pule agentów.

      Choose Agent pools.

    1. Wybierz pozycję Azure DevOps, Ustawienia kolekcji.

      Collection settings, 2019.

    2. Wybierz pozycję Pule agentów.

      Choose Agent pools, 2019.

    1. Przejdź do projektu i wybierz pozycję kolejki agentówUstawienia (ikona koła zębatego). >

      Choose Settings, Agent Queues, 2018.

    2. Wybierz pozycję Zarządzaj pulami.

      Choose Manage pools, 2018.

  2. Kliknij pulę zawierającą agenta.

  3. Upewnij się, że agent jest włączony.

  4. Przejdź do karty możliwości:

    1. Na karcie Pule agentów wybierz żądaną pulę agentów.

      From Agent pools, select the desired agent pool.

    2. Wybierz pozycję Agenci i wybierz odpowiedniego agenta.

      Select Agents and choose the agent.

    3. Wybierz kartę Możliwości .

      Choose the Capabilities tab.

      Uwaga

      Agenci hostowani przez firmę Microsoft nie wyświetlają możliwości systemu. Aby uzyskać listę oprogramowania zainstalowanego na agentach hostowanych przez firmę Microsoft, zobacz Używanie agenta hostowanego przez firmę Microsoft.

    1. Na karcie Pule agentów wybierz żądaną pulę.

      Select the desired pool.

    2. Wybierz pozycję Agenci i wybierz odpowiedniego agenta.

      Select Agents and choose the desired agent.

    3. Wybierz kartę Możliwości .

      Agent capabilities tab.

    1. Na karcie Pule agentów wybierz żądaną pulę.

      Select the desired tab, 2019.

    2. Wybierz pozycję Agenci i wybierz odpowiedniego agenta.

      Choose the desired agent, 2019.

    3. Wybierz kartę Możliwości .

      Choose the Capabilities tab, 2019.

    Wybierz odpowiedniego agenta i wybierz kartę Możliwości .

    Agent capabilities tab, 2018.

  5. Agent.Version Poszukaj możliwości. Możesz sprawdzić tę wartość względem najnowszej opublikowanej wersji agenta. Zobacz Azure Pipelines Agent i sprawdź stronę o najwyższym numerze wersji.

  6. Każdy agent jest automatycznie aktualizowany po uruchomieniu zadania wymagającego nowszej wersji agenta. Jeśli chcesz ręcznie zaktualizować niektórych agentów, kliknij prawym przyciskiem myszy pulę i wybierz polecenie Aktualizuj wszystkich agentów.

Czy mogę zaktualizować moich agentów w wersji 2, którzy są częścią puli Azure DevOps Server?

Tak. Począwszy od Azure DevOps Server 2019 r., można skonfigurować serwer tak, aby szukał plików pakietu agenta na dysku lokalnym. Ta konfiguracja zastąpi domyślną wersję, która została udostępniona z serwerem w momencie wydania. Ten scenariusz dotyczy również sytuacji, gdy serwer nie ma dostępu do Internetu.

  1. Na komputerze z dostępem do Internetu pobierz najnowszą wersję plików pakietu agenta (w formularzu .zip lub tar.gz) ze strony GitHub Wydania agenta Azure Pipelines.

  2. Przenieś pobrane pliki pakietu do każdej Azure DevOps Server warstwy aplikacji przy użyciu wybranej metody (takiej jak dysk USB, transfer sieciowy itd.). Umieść pliki agenta w folderze %ProgramData%\Microsoft\Azure DevOps\Agents .

  3. Wszystko jest gotowe! Azure DevOps Server będzie teraz używać plików lokalnych za każdym razem, gdy agenci są aktualizowani. Każdy agent jest automatycznie aktualizowany po uruchomieniu zadania wymagającego nowszej wersji agenta. Jeśli jednak chcesz ręcznie zaktualizować niektórych agentów, kliknij prawym przyciskiem myszy pulę, a następnie wybierz polecenie Aktualizuj wszystkich agentów.

Czy agenci hostowani samodzielnie mają jakiekolwiek korzyści w zakresie wydajności w stosunku do agentów hostowanych przez firmę Microsoft?

W wielu przypadkach tak. W szczególności:

  • Jeśli używasz własnego agenta, możesz uruchamiać kompilacje przyrostowe. Jeśli na przykład zdefiniujesz potok, który nie czyści repozytorium i nie wykonuje czystej kompilacji, kompilacje będą zwykle działać szybciej. W przypadku korzystania z agenta hostowanego przez firmę Microsoft nie uzyskujesz tych korzyści, ponieważ agent jest niszczony po zakończeniu potoku kompilacji lub wydania.

  • Uruchomienie kompilacji przez agenta hostowanego przez firmę Microsoft może potrwać dłużej. Chociaż przypisanie zadania do agenta hostowanego przez firmę Microsoft trwa często zaledwie kilka sekund, przydzielanie agenta może czasami potrwać kilka minut w zależności od obciążenia systemu.

Czy mogę zainstalować wielu własnych agentów na tej samej maszynie?

Tak. Takie podejście może działać dobrze w przypadku agentów, którzy uruchamiają zadania, które nie korzystają z wielu zasobów udostępnionych. Można na przykład wypróbować agentów, którzy uruchamiają wydania, które w większości organizują wdrożenia i nie wykonują dużej ilości pracy nad samym agentem.

Może się okazać, że w innych przypadkach nie zyskujesz większej wydajności, uruchamiając wielu agentów na tym samym komputerze. Na przykład może to nie być opłacalne w przypadku agentów, którzy uruchamiają kompilacje zużywające dużo dysku i zasobów we/wy.

Mogą również wystąpić problemy, jeśli równoległe zadania kompilacji korzystają z tego samego pojedynczego wdrożenia narzędzia, takiego jak pakiety npm. Na przykład jedna kompilacja może zaktualizować zależność, gdy inna kompilacja jest w trakcie jej używania, co może spowodować zawodne wyniki i błędy.

Jakie jest zachowanie agentów po anulowaniu zadań potoku?

W przypadku agentów hostowanych przez firmę Microsoft agent jest rozdarty i zwracany do puli Azure Pipelines.

W przypadku własnych agentów:

Po anulowaniu potoku agent wysyła sekwencję poleceń do procesu wykonującego bieżący krok. Pierwsze polecenie jest wysyłane z limitem czasu 7,5 sekundy. Jeśli proces nie został zakończony, drugie polecenie jest wysyłane z limitem czasu 2,5 sekundy. Jeśli proces nie został zakończony, agent wydaje polecenie, aby zabić proces. Jeśli proces nie spełnia dwóch początkowych żądań zakończenia, zostanie zabity. Od początkowego żądania do zakończenia trwa około 10 sekund.

Polecenia wydane procesowi różnią się w zależności od systemu operacyjnego agenta.

  • macOS i Linux — wysyłane polecenia to SIGINT, a następnie SIGTERM, a następnie SIGKILL.
  • Windows — polecenia wysyłane do procesu to Ctrl+C, a następnie Ctrl+Break, a następnie Process.Kill.

Jak programowo wyzwalać aktualizacje agenta dla określonej puli agentów?

Aktualizacje agenta dla puli można wyzwolić przy użyciu następnego interfejsu API:

POST https://dev.azure.com/{organization}/_apis/distributedtask/pools/{poolId}/messages?agentId={agentId}&api-version=6.0

Parametry identyfikatora URI

Nazwa W Wymagany Typ Opis
agentId query False ciąg Agent do aktualizacji. Jeśli nie zostanie określony — aktualizacja zostanie wyzwolona dla wszystkich agentów.
organization path True ciąg Nazwa organizacji Azure DevOps.
poolId path Prawda liczba całkowita int32 Pula agentów do użycia
api-version query False ciąg Wersja interfejsu API do użycia. Należy ustawić wartość "6.0", aby używać tej wersji interfejsu API.

Aby wyzwolić aktualizację agenta — treść żądania powinna być pusta.

Uwaga

Agent Azure Pipelines jest open source w GitHub.

Więcej tutaj

Aby uzyskać więcej informacji na temat agentów, zobacz następujące moduły z ścieżki szkoleniowej Tworzenie aplikacji za pomocą Azure DevOps.