Agenci hostowani przez firmę Microsoft
Azure DevOps Services
Agenci hostowani przez firmę Microsoft są dostępni tylko w usługach Azure DevOps Services, które są hostowane w chmurze. Nie można używać agentów hostowanych przez firmę Microsoft ani puli agentów usługi Azure Pipelines z lokalnym programem TFS lub serwerem Azure DevOps Server. W przypadku tych wersji lokalnych należy używać własnych agentów.
Ważne
Wybierz wersję tego artykułu odpowiadającą twojej platformie i wersji. Selektor wersji znajduje się powyżej spisu treści. Wyszukaj platformę i wersję usługi Azure DevOps.
Jeśli potoki znajdują się w usłudze Azure Pipelines, masz wygodną opcję uruchamiania zadań przy użyciu agenta hostowanego przez firmę Microsoft. W przypadku agentów hostowanych przez Microsoft konserwacja i uaktualnienia są wykonywane dla Ciebie. Zawsze zyskujesz najnowszą wersję obrazu maszyny wirtualnej określonej w potoku. Za każdym razem, przy uruchamianiu potoku, otrzymujesz nową maszynę wirtualną dla każdego zadania w potoku. Maszyna wirtualna zostanie odrzucona po jednym zadaniu (co oznacza, że każda zmiana, którą zadanie wykonuje w systemie plików maszyny wirtualnej, na przykład wyewidencjonowanie kodu, będzie niedostępna dla następnego zadania). Agenci hostowani przez firmę Microsoft mogą uruchamiać zadania bezpośrednio na maszynie wirtualnej lub w kontenerze.
Usługa Azure Pipelines udostępnia wstępnie zdefiniowaną pulę agentów o nazwie Azure Pipelines z agentami hostowanymi przez 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ć agentów zestawu skalowania lub własnego agenta.
Napiwek
Możesz wypróbować agenta hostowanego przez firmę Microsoft bez opłat.
Oprogramowanie
Pula agentów usługi Azure Pipelines oferuje kilka obrazów maszyn wirtualnych do wyboru, z których każdy obejmuje szeroką gamę narzędzi i oprogramowania.
Obraz | Specyfikacja agenta edytora klasycznego | Etykieta obrazu maszyny wirtualnej YAML | Dołączone oprogramowanie |
---|---|---|---|
Windows Server 2022 z programem Visual Studio 2022 | windows-2022 | windows-latest LUB windows-2022 |
Link |
Windows Server 2019 z programem Visual Studio 2019 | windows-2019 | windows-2019 |
Link |
Ubuntu 24.04 | ubuntu-24.04 | ubuntu-24.04 |
Link |
Ubuntu 22.04 | ubuntu-22.04 | ubuntu-latest LUB ubuntu-22.04 |
Link |
Ubuntu 20.04 | ubuntu-20.04 | ubuntu-20.04 |
Link |
macOS 15 Sequia (wersja zapoznawcza) | macOS-15 | macOS-15 |
Link |
system macOS 14 Sonoma | macOS-14 | macOS-latest LUB macOS-14 |
Link |
MacOS 13 Ventura | macOS-13 | macOS-13 |
Link |
macOS 12 Monterey | macOS-12 | macOS-12 |
deprecated |
Domyślny obraz agenta dla klasycznych potoków kompilacji to windows-2019, a domyślny obraz agenta dla potoków kompilacji YAML to ubuntu-latest
. Aby uzyskać więcej informacji, zobacz Wyznaczanie puli w potoku.
Zainstalowane oprogramowanie dla każdego hostowanego agenta można wyświetlić, wybierając link Dołączone oprogramowanie w tabeli. W przypadku korzystania z obrazów systemu macOS możesz ręcznie wybrać wersję narzędzia. Dowiedz się więcej.
Najnowsze aktualizacje
- Obraz sequia systemu macOS-15 jest dostępny w wersji zapoznawczej
- Obraz Ubuntu-24.04 jest dostępny
- Obraz macOS-12 Monterey jest przestarzały i zostanie wycofany 3 grudnia 2024 r.
- Obraz Ubuntu-22.04 jest dostępny
- Obraz sonoma systemu macOS-14 jest dostępny w wersji zapoznawczej
- Obraz systemu macOS-11 Big Sur jest przestarzały i zostanie wycofany 28 czerwca 2024 r.
- Wszyscy agenci hostowani przez firmę Microsoft zaczną używać programu PowerShell 7.2 LTS do programu PowerShell 7.4 LTS od 28 stycznia. Aby uzyskać więcej informacji, w tym potencjalne zmiany powodujące niezgodność, zobacz Microsoft hosted agents use PowerShell 7.4 (Agenci hostowani przez firmę Microsoft używają programu PowerShell 7.4).
- Obraz systemu macOS 13 jest ogólnie dostępny
- Obraz systemu macOS 10.15 jest w pełni nieobsługiwany od 24.04.2023 r.
- System Ubuntu 18.04 został wycofany
ubuntu-latest
obrazy używają poleceniaubuntu-22.04
.- Ogólna dostępność systemu Ubuntu 22.04 dla hostowanych pul usługi Azure Pipelines.
- Obraz ubuntu 18.04 rozpocznie wycofywanie w dniu 8/8/22 i będzie w pełni nieobsługiwany przez 1.04.2023.
- Obraz systemu macOS 10.15 rozpocznie wycofywanie w dniu 5/31/22 i będzie w pełni nieobsługiwany przez 12.1.2022.
windows-latest
obrazy używają poleceniawindows-2022
.macOS-latest
obrazy używają poleceniamacOS-11
.- Hostowany obraz systemu Ubuntu 16.04 został usunięty z września 2021 r.
- Obraz systemu Windows Server 2016 z programem Visual Studio 2017 został wycofany i zostanie wycofany 30 czerwca 2022 r. Przeczytaj ten wpis w blogu na temat identyfikowania potoków przy użyciu przestarzałych obrazów.
- W grudniu 2021 r. usunęliśmy następujący obraz hostowany w usłudze Azure Pipelines:
- macOS X Mojave 10.14 (
macOS-10.14
)
- macOS X Mojave 10.14 (
- W marcu 2020 r. usunęliśmy następujące obrazy hostowane w usłudze Azure Pipelines:
- Windows Server 2012R2 z programem Visual Studio 2015 (
vs2015-win2012r2
) - macOS X High Sierra 10.13 (
macOS-10.13
) - Windows Server Core 1803 (
win1803
)
- Windows Server 2012R2 z programem Visual Studio 2015 (
Zachęcamy klientów do migracji do nowszych wersji lub własnego agenta.
Aby uzyskać więcej informacji i instrukcje dotyczące aktualizowania potoków korzystających z tych obrazów, zobacz Usuwanie starszych obrazów w hostowanych pulach usługi Azure Pipelines.
Uwaga
Pojemność systemu macOS jest obecnie ograniczona. W przeciwieństwie do obrazów systemu Linux i Windows, gdzie pojemność jest ograniczona przez całą pojemność platformy Azure, pojemność systemu macOS jest ograniczona przez ilość dostępnego sprzętu. Podczas gdy pracujemy nad udostępnieniem dodatkowej pojemności na wiosnę 2024 r., niektóre zadania mogą być wykonywane z opóźnieniem. Wszędzie tam, gdzie to możliwe, na przykład w przypadku zadań, które nie tworzą aplikacji ekosystemu firmy Apple, klienci powinni wybrać obrazy systemu Linux lub Windows.
Uwaga
Hostowana pula usługi Azure Pipelines zastępuje poprzednie hostowane pule, które mają nazwy mapowane na odpowiednie obrazy. Wszystkie zadania z poprzednich hostowanych pul są automatycznie przekierowywane do poprawnego obrazu w nowej puli hostowanej usługi Azure Pipelines. W niektórych sytuacjach nadal mogą być widoczne stare nazwy puli, ale w tle hostowane zadania są uruchamiane przy użyciu puli usługi Azure Pipelines. Aby uzyskać więcej informacji na temat tej aktualizacji, zobacz informacje o wersji pojedynczej puli hostowanej od 1 lipca 2019 r. — Sprint 154 — informacje o wersji.
Ważne
Aby zażądać zainstalowania dodatkowego oprogramowania na agentach hostowanych przez firmę Microsoft, nie twórz żądania opinii na temat tego dokumentu ani nie otwieraj biletu pomocy technicznej. Zamiast tego otwórz problem w naszym repozytorium, w którym zarządzamy skryptami w celu wygenerowania różnych obrazów.
Jak identyfikować potoki przy użyciu przestarzałego hostowanego obrazu
Aby zidentyfikować potoki korzystające z przestarzałego obrazu, przejdź do następującej lokalizacji w organizacji: https://dev.azure.com/{organization}/{project}/_settings/agentqueues
i odfiltruj nazwę obrazu, aby sprawdzić. Poniższy przykład sprawdza vs2017-win2016
obraz.
Możesz również wykonywać zapytania dotyczące historii zadań dla przestarzałych obrazów w projektach przy użyciu skryptu znajdującego się tutaj, jak pokazano w poniższym przykładzie.
./QueryJobHistoryForRetiredImages.ps1 -accountUrl https://dev.azure.com/{org} -pat {pat}
Korzystanie z agenta hostowanego przez firmę Microsoft
W potokach YAML, jeśli nie określisz puli, potoki są domyślne dla puli agentów usługi Azure Pipelines. Wystarczy określić obraz maszyny wirtualnej, którego chcesz użyć.
jobs:
- job: Linux
pool:
vmImage: 'ubuntu-latest'
steps:
- script: echo hello from Linux
- job: macOS
pool:
vmImage: 'macOS-latest'
steps:
- script: echo hello from macOS
- job: Windows
pool:
vmImage: 'windows-latest'
steps:
- script: echo hello from Windows
Uwaga
Specyfikacja puli może być wykonywana na wielu poziomach w pliku YAML. Jeśli zauważysz, że potok nie jest uruchomiony na oczekiwanym obrazie, upewnij się, że specyfikacja puli jest weryfikowana na poziomie potoku, etapu i zadania.
Unikaj zakodowanych odwołań
W przypadku korzystania z agenta hostowanego przez firmę Microsoft zawsze używaj zmiennych do odwoływania się do środowiska kompilacji i zasobów agenta. Na przykład nie należy kodować litery dysku ani folderu zawierającego repozytorium. Dokładny układ hostowanych agentów może ulec zmianie bez ostrzeżenia.
Sprzęt
Agenty hostowane przez firmę Microsoft, które uruchamiają obrazy systemu Windows i Linux, są aprowizowane na maszynach wirtualnych ogólnego przeznaczenia platformy Azure z 2-rdzeniowym procesorem CPU, 7 GB pamięci RAM i 14 GB miejsca na dysku SSD. Te maszyny wirtualne znajdują się w tej samej lokalizacji geograficznej co organizacja usługi Azure DevOps.
Agenty, które uruchamiają obrazy systemu macOS, są aprowizowane na komputerach Mac pro z 3-rdzeniowym procesorem CPU, 14 GB pamięci RAM i 14 GB miejsca na dysku SSD. Te agenty zawsze działają w Stanach Zjednoczonych niezależnie od lokalizacji organizacji usługi Azure DevOps. Jeśli suwerenność danych jest dla Ciebie ważna, a Twoja organizacja nie znajduje się w Stanach Zjednoczonych, nie należy używać obrazów systemu macOS. Dowiedz się więcej.
Te wszystkie maszyny mają co najmniej 10 GB wolnego miejsca na dysku dostępnego dla potoków do uruchomienia. To wolne miejsce jest używane, gdy potok wyewidencjonuje kod źródłowy, pobiera pakiety, ściąga obrazy platformy Docker lub generuje pliki pośrednie.
Ważne
Nie możemy honorować żądań zwiększenia miejsca na dysku na agentach hostowanych przez firmę Microsoft ani aprowizacji bardziej zaawansowanych maszyn. Jeśli specyfikacje agentów hostowanych przez firmę Microsoft nie spełniają Twoich potrzeb, rozważ użycie własnych agentów lub agentów zestawu skalowania.
Sieć
W niektórych konfiguracjach może być konieczne poznanie zakresu adresów IP, w których agenty są wdrażane. Jeśli na przykład musisz udzielić hostowanym agentom dostępu za pośrednictwem zapory, możesz ograniczyć ten dostęp za pomocą adresu IP. Ponieważ usługa Azure DevOps korzysta z globalnej sieci platformy Azure, zakresy adresów IP zmieniają się w czasie. Firma Microsoft publikuje tygodniowy plik JSON zawierający listę zakresów adresów IP dla centrów danych platformy Azure podzielonych według regionów. Ten plik jest aktualizowany co tydzień przy użyciu nowych planowanych zakresów adresów IP. Tylko najnowsza wersja pliku jest dostępna do pobrania. Jeśli potrzebujesz poprzednich wersji, musisz pobierać je i archiwizować co tydzień, gdy staną się dostępne. Nowe zakresy adresów IP zaczynają obowiązywać w kolejnym tygodniu. Zalecamy częste sprawdzanie (co najmniej raz w tygodniu), aby zapewnić aktualność listy. Jeśli zadania agenta zaczną kończyć się niepowodzeniem, pierwszym krokiem rozwiązywania problemów jest upewnienie się, że konfiguracja jest zgodna z najnowszą listą adresów IP. Zakresy adresów IP dla hostowanych agentów są wyświetlane w pliku tygodniowym w obszarze AzureCloud.<region>
, na przykład AzureCloud.westus
w regionie Zachodnie stany USA.
Hostowane agenty działają w tej samej lokalizacji geograficznej platformy Azure co Twoja organizacja. Każda lokalizacja geograficzna obejmuje co najmniej jeden region. Chociaż agent może działać w tym samym regionie co organizacja, nie ma gwarancji, że tak będzie. Aby uzyskać pełną listę możliwych zakresów adresów IP dla agenta, należy użyć zakresów adresów IP ze wszystkich regionów zawartych w lokalizacji geograficznej. Jeśli na przykład organizacja znajduje się w lokalizacji geograficznej Stany Zjednoczone, musisz użyć zakresów adresów IP dla wszystkich regionów w tej lokalizacji geograficznej.
Aby określić lokalizację geograficzną, przejdź do https://dev.azure.com/<your_organization>/_settings/organizationOverview
lokalizacji , pobierz swój region i znajdź skojarzona geografię z tabeli geografii platformy Azure. Po zidentyfikowaniu lokalizacji geograficznej użyj zakresów adresów IP z pliku tygodniowego dla wszystkich regionów w tej lokalizacji geograficznej.
Ważne
Nie można używać połączeń prywatnych, takich jak ExpressRoute lub VPN, aby połączyć agentów hostowanych przez firmę Microsoft z siecią firmową. Ruch między agentami hostowanymi przez firmę Microsoft a serwerami będzie realizowany za pośrednictwem sieci publicznej.
Aby zidentyfikować możliwe zakresy adresów IP dla agentów hostowanych przez firmę Microsoft
- Zidentyfikuj region organizacji w ustawieniach organizacji.
- Zidentyfikuj lokalizację geograficzną platformy Azure dla regionu organizacji.
- Zamapuj nazwy regionów w lokalizacji geograficznej na format używany w pliku tygodniowym, zgodnie z formatem
AzureCloud.<region>
, takim jakAzureCloud.westus
. Nazwy regionów można mapować z listy Geografia platformy Azure na format używany w pliku tygodniowym, przeglądając nazwy regionów przekazane do konstruktora regionów zdefiniowanych w kodzie źródłowym klasy Region z bibliotek zarządzania platformy Azure dla platformy .NET.Uwaga
Ponieważ w bibliotekach zarządzania platformy .NET nie ma interfejsu API, aby wyświetlić listę regionów dla lokalizacji geograficznej, należy je wyświetlić ręcznie, jak pokazano w poniższym przykładzie.
- Pobierz adresy IP dla wszystkich regionów w lokalizacji geograficznej z pliku tygodniowego. Jeśli region to Brazylia Południowa lub Europa Zachodnia, musisz uwzględnić dodatkowe zakresy adresów IP w oparciu o lokalizację geograficzną rezerwową, zgodnie z opisem w poniższej notatce.
Uwaga
Ze względu na ograniczenia pojemności niektóre organizacje w regionach Brazylia Południowa lub Europa Zachodnia mogą od czasu do czasu zobaczyć swoich hostowanych agentów znajdujących się poza oczekiwaną lokalizacją geograficzną. W takich przypadkach oprócz uwzględniania zakresów adresów IP dla wszystkich regionów w twojej lokalizacji geograficznej, zgodnie z opisem w poprzedniej sekcji, należy uwzględnić dodatkowe zakresy adresów IP dla regionów w rezerwowej lokalizacji geograficznej pojemności.
Jeśli Twoja organizacja znajduje się w regionie Brazylia Południowa, lokalizacja geograficzna rezerwowa pojemności jest Stany Zjednoczone.
Jeśli Twoja organizacja znajduje się w regionie Europa Zachodnia, rezerwowa lokalizacja geograficzna pojemności to Francja.
Nasze zakresy adresów IP dla komputerów Mac nie są uwzględnione w powyższych adresach IP platformy Azure, ponieważ są one hostowane w chmurze systemu macOS w usłudze GitHub. Zakresy adresów IP można pobrać przy użyciu interfejsu API metadanych usługi GitHub, korzystając z instrukcji podanych tutaj.
Przykład
W poniższym przykładzie zakresy adresów IP hostowanego agenta dla organizacji w regionie Zachodnie stany USA są pobierane z pliku tygodniowego. Ponieważ region Zachodnie stany USA znajduje się w lokalizacji geograficznej Stany Zjednoczone, uwzględniane są adresy IP dla wszystkich regionów w lokalizacji geograficznej Stany Zjednoczone. W tym przykładzie adresy IP są zapisywane w konsoli programu .
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
namespace WeeklyFileIPRanges
{
class Program
{
// Path to the locally saved weekly file
const string weeklyFilePath = @"C:\MyPath\ServiceTags_Public_20230904.json";
static void Main(string[] args)
{
// United States geography has the following regions:
// Central US, East US, East US 2, East US 3, North Central US,
// South Central US, West Central US, West US, West US 2, West US 3
// This list is accurate as of 9/8/2023
List<string> USGeographyRegions = new List<string>
{
"centralus",
"eastus",
"eastus2",
"eastus3",
"northcentralus",
"southcentralus",
"westcentralus",
"westus",
"westus2",
"westus3"
};
// Load the weekly file
JObject weeklyFile = JObject.Parse(File.ReadAllText(weeklyFilePath));
JArray values = (JArray)weeklyFile["values"];
foreach (string region in USGeographyRegions)
{
string tag = $"AzureCloud.{region}";
Console.WriteLine(tag);
var ipList =
from v in values
where tag.Equals((string)v["name"], StringComparison.OrdinalIgnoreCase)
select v["properties"]["addressPrefixes"];
foreach (var ip in ipList.Children())
{
Console.WriteLine(ip);
}
}
}
}
}
Tagi usługi
Agentów hostowanych przez firmę Microsoft nie można wyświetlać według tagów usługi. Jeśli próbujesz udzielić hostowanym agentom dostępu do zasobów, musisz postępować zgodnie z metodą listy dozwolonych zakresów adresów IP.
Zabezpieczenia
Agenci hostowani przez firmę Microsoft działają na bezpiecznej platformie Azure. Należy jednak pamiętać o następujących kwestiach dotyczących zabezpieczeń.
- Mimo że agenci hostowani przez firmę Microsoft działają w sieci publicznej platformy Azure, nie mają przypisanych publicznych adresów IP. W związku z tym jednostki zewnętrzne nie mogą kierować agentów hostowanych przez firmę Microsoft.
- Agenci hostowani przez firmę Microsoft są uruchamiani na poszczególnych maszynach wirtualnych, które są ponownie obrazowane po każdym uruchomieniu. Każdy agent jest przeznaczony dla jednej organizacji, a każda maszyna wirtualna hostuje tylko jednego agenta.
- Istnieje kilka korzyści z uruchamiania potoku na agentach hostowanych przez firmę Microsoft z perspektywy zabezpieczeń. Jeśli w potoku uruchomisz niezaufany kod, taki jak współtworzenie rozwidlenia, bezpieczniej będzie uruchamiać potok na agentach hostowanych przez firmę Microsoft niż na własnych agentach znajdujących się w sieci firmowej.
- Gdy potok musi uzyskać dostęp do zasobów firmowych za zaporą, musisz zezwolić na zakres adresów IP dla lokalizacji geograficznej platformy Azure. Może to zwiększyć ekspozycję, ponieważ zakres adresów IP jest dość duży i ponieważ maszyny w tym zakresie mogą również należeć do innych klientów. Najlepszym sposobem zapobiegania temu jest uniknięcie konieczności uzyskania dostępu do zasobów wewnętrznych. Aby uzyskać informacje na temat wdrażania artefaktów w zestawie serwerów, zobacz Komunikacja w celu wdrożenia na serwerach docelowych.
- Hostowane obrazy nie są zgodne z testami porównawczymi wzmacniania zabezpieczeń ciS. Aby użyć obrazów ze wzmocnionymi zabezpieczeniami ciS, należy utworzyć własnych agentów lub agentów zestawu skalowania.
Możliwości i ograniczenia
Agenci hostowani przez firmę Microsoft:
- Masz powyższe oprogramowanie. Możesz również dodać oprogramowanie podczas kompilacji lub wydania przy użyciu zadań instalatora narzędzi.
- Otrzymasz świeżo obrazowanego agenta dla każdego zadania w potoku.
- Podaj 10 GB miejsca do magazynowania dla źródła i danych wyjściowych kompilacji.
- Podaj warstwę Bezpłatna:
- Projekt publiczny: 10 bezpłatnych zadań równoległych hostowanych przez firmę Microsoft, które mogą być uruchamiane przez maksymalnie 360 minut (6 godzin) za każdym razem, bez ogólnego limitu czasu na miesiąc. Skontaktuj się z nami , aby zwiększyć limity warstwy Bezpłatna.
- Projekt prywatny: jedno wolne zadanie równoległe, które może być uruchamiane przez maksymalnie 60 minut za każdym razem, do momentu użycia 1800 minut (30 godzin) miesięcznie. Możesz płacić za dodatkową pojemność na zadanie równoległe. Płatne zadania równoległe usuwają miesięczny limit czasu i umożliwiają uruchamianie każdego zadania przez maksymalnie 360 minut (6 godzin). Kup zadania równoległe hostowane przez firmę Microsoft.
- Podczas tworzenia nowej organizacji usługi Azure DevOps nie otrzymujesz domyślnie tych bezpłatnych dotacji. Aby zażądać bezpłatnej dotacji dla projektów publicznych lub prywatnych, prześlij wniosek.
- Uruchamianie na maszynach wirtualnych ogólnego przeznaczenia platformy Microsoft Azure Standard_DS2_v2.
- Uruchom jako administrator w systemie Windows i bez hasła użytkownika sudo w systemie Linux.
- (Tylko system Linux) Uruchom kroki w programie
cgroup
, który oferuje 6 GB pamięci fizycznej i 13 GB całkowitej pamięci. - Używaj obrazów maszyn wirtualnych, które są regularnie aktualizowane (co 3 tygodnie).
Agenci hostowani przez firmę Microsoft nie oferują:
- Możliwość zdalnego nawiązywania połączenia.
- Możliwość porzucania artefaktów do udziału plików UNC.
- Możliwość dołączania maszyn bezpośrednio do sieci firmowej.
- Możliwość uzyskania większych lub bardziej zaawansowanych maszyn kompilacji.
- Możliwość wstępnego ładowania oprogramowania niestandardowego. Oprogramowanie można instalować podczas uruchamiania potoku, na przykład za pomocą zadań instalatora narzędzi lub skryptu.
- Potencjalne zalety wydajności, które można uzyskać przy użyciu własnych agentów, którzy mogą uruchamiać i uruchamiać kompilacje szybciej. Dowiedz się więcej
- Możliwość uruchamiania kompilacji XAML.
- Możliwość wycofania poprzedniej wersji obrazu maszyny wirtualnej. Zawsze używasz najnowszej wersji.
Jeśli agenci hostowani przez firmę Microsoft nie spełniają Twoich potrzeb, możesz wdrożyć własnych własnych agentów, użyć agentów zestawu skalowania lub agentów zarządzanych pul DevOps.
Często zadawane pytania
Jak mogę zobaczyć, jakie oprogramowanie znajduje się na obrazie?
Zainstalowane oprogramowanie dla każdego hostowanego agenta można wyświetlić, wybierając link Dołączone oprogramowanie w tabeli Software (Oprogramowanie).
Uwaga
Domyślnie agent systemu Windows używa wersji narzędzia Git powiązanej z oprogramowaniem agenta. Firma Microsoft zaleca użycie wersji narzędzia Git powiązanej z agentem, ale istnieje kilka opcji zastąpienia tego domyślnego zachowania i użycia wersji usługi Git zainstalowanej na maszynie agenta w ścieżce.
- Ustaw zmienną potoku o nazwie
System.PreferGitFromPath
natrue
w potokach. - W przypadku własnych agentów można utworzyć plik o nazwie env w katalogu głównym agenta i dodać
System.PreferGitFromPath=true
wiersz do pliku. Aby uzyskać więcej informacji, zobacz Jak mogę ustawić różne zmienne środowiskowe dla każdego pojedynczego agenta?
Aby wyświetlić wersję usługi Git używaną przez potok, możesz zapoznać się z dziennikami checkout
kroków w potoku, jak pokazano w poniższym przykładzie.
Syncing repository: PathFilter (Git)
Prepending Path environment variable with directory containing 'git.exe'.
git version
git version 2.26.2.windows.1
W jaki sposób firma Microsoft wybiera oprogramowanie i wersje do umieszczenia na obrazie?
Więcej informacji na temat wersji oprogramowania zawartych na obrazach można znaleźć na stronie Wytyczne dotyczące instalowanych elementów.
Kiedy obrazy są aktualizowane?
Obrazy są zwykle aktualizowane co tydzień. Możesz sprawdzić znaczki stanu w formacie 20200113.x
, w którym pierwsza część wskazuje datę aktualizacji obrazu.
Co mogę zrobić, jeśli potrzebne oprogramowanie zostało usunięte lub zastąpione nowszą wersją?
Możesz poinformować nas, tworząc problem z usługą GitHub, wybierając linki Dołączone oprogramowanie w tabeli Korzystanie z agenta hostowanego przez firmę Microsoft.
Możesz również użyć własnego agenta, który zawiera dokładne wersje potrzebnego oprogramowania. Aby uzyskać więcej informacji, zobacz Self-hosted agents (Agenci hostowani samodzielnie).
Co zrobić, jeśli potrzebuję większej maszyny o większej mocy obliczeniowej, pamięci lub miejsca na dysku?
Nie można zwiększyć pamięci, mocy obliczeniowej ani miejsca na dysku dla agentów hostowanych przez firmę Microsoft, ale możesz użyć własnych agentów lub agentów zestawu skalowania hostowanych na maszynach z żądanymi specyfikacjami.
Nie mogę wybrać agenta hostowanego przez firmę Microsoft i nie mogę w kolejce kompilacji ani wdrożenia. Co mam robić?
Agenci hostowani przez firmę Microsoft są dostępni tylko w usłudze Azure Pipelines, a nie w programie TFS lub usłudze Azure DevOps Server.
Domyślnie wszyscy współautorzy projektu w organizacji mają dostęp do agentów hostowanych przez firmę Microsoft. Jednak administrator organizacji może ograniczyć dostęp agentów hostowanych przez firmę Microsoft do wybierania użytkowników lub projektów. Poproś właściciela organizacji usługi Azure DevOps o udzielenie Ci uprawnień do korzystania z agenta hostowanego przez firmę Microsoft. Zobacz Zabezpieczenia puli agentów.
Ukończenie potoków uruchomionych na agentach hostowanych przez firmę Microsoft zajmuje więcej czasu. Jak mogę je przyspieszyć?
Jeśli potok stał się ostatnio wolniejszy, przejrzyj naszą stronę stanu pod kątem awarii. Możemy mieć problemy z naszą usługą. Możesz też przejrzeć wszelkie zmiany wprowadzone w kodzie aplikacji lub potoku. Rozmiar repozytorium podczas wyewidencjonowania mógł zostać zwiększony, co może spowodować przekazanie większych artefaktów lub uruchomienie większej liczby testów.
Jeśli po prostu konfigurujesz potok i porównujesz wydajność agentów hostowanych przez firmę Microsoft z maszyną lokalną lub własnym agentem, zanotuj specyfikacje sprzętu używanego do uruchamiania zadań. Nie możemy dostarczyć Ci większych lub bardziej zaawansowanych maszyn. Jeśli ta wydajność nie jest akceptowalna, możesz rozważyć użycie własnych agentów lub agentów zestawu skalowania.
Potrzebuję więcej agentów. Co mogę zrobić?
Wszystkie organizacje usługi Azure DevOps są dostarczane z kilkoma bezpłatnymi zadaniami równoległymi dla projektów typu open source oraz jednym wolnym zadaniem równoległym i ograniczonymi minutami każdego miesiąca dla projektów prywatnych. Jeśli potrzebujesz dodatkowych minut lub zadań równoległych dla projektu open source, skontaktuj się z pomocą techniczną. Jeśli potrzebujesz dodatkowych minut lub zadań równoległych dla projektu prywatnego, możesz kupić więcej.
Mój potok kończy się powodzeniem w przypadku własnego agenta, ale kończy się niepowodzeniem w przypadku agentów hostowanych przez firmę Microsoft. Co mam robić?
Twój własny agent prawdopodobnie ma zainstalowane wszystkie odpowiednie zależności, natomiast te same zależności, narzędzia i oprogramowanie nie są zainstalowane na agentach hostowanych przez firmę Microsoft. Najpierw dokładnie przejrzyj listę oprogramowania zainstalowanego na agentach hostowanych przez firmę Microsoft, korzystając z linku do dołączonego oprogramowania w powyższej tabeli. Następnie porównaj to z oprogramowaniem zainstalowanym na własnym agencie. W niektórych przypadkach agenci hostowani przez firmę Microsoft mogą mieć potrzebne narzędzia (na przykład Program Visual Studio), ale wszystkie niezbędne składniki opcjonalne mogą nie zostać zainstalowane. Jeśli znajdziesz różnice, masz dwie opcje:
W repozytorium można utworzyć nowy problem, w którym śledzimy żądania dotyczące dodatkowego oprogramowania. Kontaktowanie się z pomocą techniczną nie może pomóc w skonfigurowaniu nowego oprogramowania na agentach hostowanych przez firmę Microsoft.
Możesz użyć własnych agentów lub agentów zestawu skalowania. Dzięki tym agentom masz pełną kontrolę nad obrazami używanymi do uruchamiania potoków.
Moja kompilacja kończy się powodzeniem na moim komputerze lokalnym, ale kończy się niepowodzeniem w przypadku agentów hostowanych przez firmę Microsoft. Co mam robić?
Na komputerze lokalnym prawdopodobnie są zainstalowane wszystkie odpowiednie zależności, natomiast te same zależności, narzędzia i oprogramowanie nie są zainstalowane na agentach hostowanych przez firmę Microsoft. Najpierw dokładnie przejrzyj listę oprogramowania zainstalowanego na agentach hostowanych przez firmę Microsoft, korzystając z linku do dołączonego oprogramowania w powyższej tabeli. Następnie porównaj je z oprogramowaniem zainstalowanym na komputerze lokalnym. W niektórych przypadkach agenci hostowani przez firmę Microsoft mogą mieć potrzebne narzędzia (np. Visual Studio), ale wszystkie niezbędne składniki opcjonalne mogą nie zostać zainstalowane. Jeśli znajdziesz różnice, masz dwie opcje:
W repozytorium można utworzyć nowy problem, w którym śledzimy żądania dotyczące dodatkowego oprogramowania. Jest to najlepsze rozwiązanie w przypadku instalowania nowego oprogramowania. Kontaktowanie się z pomocą techniczną nie pomoże Ci w konfigurowaniu nowego oprogramowania na agentach hostowanych przez firmę Microsoft.
Możesz użyć własnych agentów lub agentów zestawu skalowania. Dzięki tym agentom masz pełną kontrolę nad obrazami używanymi do uruchamiania potoków.
Mój potok kończy się niepowodzeniem z powodu błędu: "Brak miejsca pozostawionego na urządzeniu".
Agenci hostowani przez firmę Microsoft mają dostępne tylko 10 GB miejsca na dysku do uruchomienia zadania. To miejsce jest używane podczas wyewidencjonowanego kodu źródłowego, pobierania pakietów, pobierania obrazów platformy Docker lub tworzenia plików pośrednich. Niestety nie możemy zwiększyć wolnego miejsca dostępnego na obrazach hostowanych przez firmę Microsoft. Potok można zrestrukturyzować tak, aby pasował do tego obszaru. Możesz też rozważyć użycie własnych agentów lub agentów zestawu skalowania.
Mój potok uruchomiony na agentach hostowanych przez firmę Microsoft wymaga dostępu do serwerów w naszej sieci firmowej. Jak uzyskać listę adresów IP, które mają być dozwolone w zaporze?
Zobacz sekcję Zakresy adresów IP agenta
Nasz potok uruchomiony na agentach hostowanych przez firmę Microsoft nie może rozpoznać nazwy serwera w naszej sieci firmowej. Jak możemy rozwiązać ten problem?
Jeśli odwołujesz się do serwera według jego nazwy DNS, upewnij się, że serwer jest publicznie dostępny w Internecie za pośrednictwem jego nazwy DNS. Jeśli odwołujesz się do serwera przy użyciu jego adresu IP, upewnij się, że adres IP jest publicznie dostępny w Internecie. W obu przypadkach upewnij się, że wszystkie zapory między agentami a siecią firmową mają dozwolone zakresy adresów IP agenta .
Otrzymuję błąd autoryzacji adresu IP sygnatury dostępu współdzielonego z konta usługi Azure Storage
Jeśli zostanie wyświetlony kod błędu sygnatury dostępu współdzielonego, najprawdopodobniej jest to spowodowane tym, że zakresy adresów IP od agentów hostowanych przez firmę Microsoft nie są dozwolone z powodu reguł usługi Azure Storage. Istnieje kilka obejść:
- Zarządzaj regułami sieci ip dla konta usługi Azure Storage i dodaj zakresy adresów IP dla hostowanych agentów.
- W potoku użyj interfejsu wiersza polecenia platformy Azure, aby zaktualizować zestaw reguł sieci dla konta usługi Azure Storage bezpośrednio przed uzyskaniem dostępu do magazynu, a następnie przywrócić poprzedni zestaw reguł.
- Użyj własnych agentów lub agentów zestawu skalowania.
Jak mogę ręcznie wybrać wersje narzędzi w hostowanym agencie systemu macOS?
Xcode
Jeśli używasz zadania Xcode dołączonego do usług Azure Pipelines i TFS, możesz wybrać wersję programu Xcode we właściwościach tego zadania. W przeciwnym razie, aby ręcznie ustawić wersję programu Xcode do użycia w puli agentów hostowanego systemu macOS , przed xcodebuild
zadaniem kompilacji wykonaj ten wiersz polecenia w ramach kompilacji, zastępując kod Xcode numer wersji 13.2 zgodnie z potrzebami:
/bin/bash -c "sudo xcode-select -s /Applications/Xcode_13.2.app/Contents/Developer"
Wersje programu Xcode w puli agentów hostowanego systemu macOS można znaleźć tutaj dla agenta macos-12
.
To polecenie nie działa w przypadku aplikacji platformy Xamarin. Aby ręcznie wybrać wersję środowiska Xcode do kompilowania aplikacji platformy Xamarin, zobacz powyższe instrukcje.
Mono
Aby ręcznie wybrać wersję mono do użycia w puli agentów hostowanego systemu macOS , wykonaj ten skrypt w każdym zadaniu kompilacji przed zadaniem kompilacji Mono, określając symlink z wymaganą wersją mono:
SYMLINK=<symlink>
MONOPREFIX=/Library/Frameworks/Mono.framework/Versions/$SYMLINK
echo "##vso[task.setvariable variable=DYLD_FALLBACK_LIBRARY_PATH;]$MONOPREFIX/lib:/lib:/usr/lib:$DYLD_LIBRARY_FALLBACK_PATH"
echo "##vso[task.setvariable variable=PKG_CONFIG_PATH;]$MONOPREFIX/lib/pkgconfig:$MONOPREFIX/share/pkgconfig:$PKG_CONFIG_PATH"
echo "##vso[task.setvariable variable=PATH;]$MONOPREFIX/bin:$PATH"