Agenci systemu macOS (2.x)
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Ważne
Ten artykuł zawiera wskazówki dotyczące korzystania z oprogramowania agenta wersji 2.x z serwerem Azure DevOps Server i programem TFS. Jeśli używasz usług Azure DevOps Services, zobacz Self-hosted agentów systemu macOS.
Do kompilowania i wdrażania aplikacji Xcode lub projektów platformy Xamarin.iOS potrzebny jest co najmniej jeden agent systemu macOS. Ten agent może również tworzyć i wdrażać aplikacje Java i Android.
Przed rozpoczęciem:
- Jeśli potoki znajdują się w usłudze Azure Pipelines , a agent hostowany przez firmę Microsoft spełnia Twoje potrzeby, możesz pominąć konfigurowanie własnego agenta systemu macOS.
- W przeciwnym razie masz odpowiednie miejsce do skonfigurowania agenta w systemie macOS. Przejdź do następnej sekcji.
Dowiedz się więcej o agentach
Jeśli już wiesz, czym jest agent i jak działa, możesz przejść bezpośrednio do poniższych sekcji. Jeśli jednak chcesz uzyskać więcej informacji o tym, co robią i jak działają, zobacz Agenci usługi Azure Pipelines.
Sprawdzanie wymagań wstępnych
Upewnij się, że maszyna ma następujące wymagania wstępne:
- macOS 10.15 "Catalina", macOS 11.0 "Big Sur" lub macOS 12.0 "Monterey"
- Git 2.9.0 lub nowsza (zdecydowanie zalecana jest najnowsza wersja — można ją łatwo zainstalować za pomocą oprogramowania Homebrew)
Te wymagania wstępne są wymagane dla agenta w wersji 2.125.0 lub nowszej.
TFVC
Jeśli będziesz używać kontrolera TFVC, potrzebujesz również zestawu Oracle Java JDK 1.6 lub nowszego. (Środowisko Oracle JRE i OpenJDK nie są wystarczające do tego celu).
Wtyczka TEE jest używana na potrzeby funkcji kontroli wersji serwera Team Foundation. Ma umowę EULA, którą należy zaakceptować podczas konfigurowania, jeśli planujesz pracę z serwerem TFVC.
Ponieważ wtyczka TEE nie jest już utrzymywana i zawiera nieaktualne zależności języka Java, począwszy od agenta 2.198.0, nie jest już uwzględniana w dystrybucji agenta. Jednak wtyczka TEE zostanie pobrana podczas wykonywania zadania wyewidencjonowania, jeśli wyewidencjonujesz repozytorium TFVC. Wtyczka TEE zostanie usunięta po wykonaniu zadania.
Uwaga
Uwaga: zadanie wyewidencjonowania może zająć dużo czasu, aby rozpocząć pracę z powodu tego mechanizmu pobierania.
Jeśli agent działa za serwerem proxy lub zaporą, należy zapewnić dostęp do następującej lokacji: https://vstsagenttools.blob.core.windows.net/
. Wtyczka TEE zostanie pobrana z tego adresu.
Jeśli używasz własnego agenta i masz problemy z pobieraniem aplikacji TEE, możesz zainstalować tee ręcznie:
- Ustaw
DISABLE_TEE_PLUGIN_REMOVAL
zmienną środowiskową lub potokową natrue
wartość . Ta zmienna uniemożliwia agentowi usunięcie wtyczki TEE po wyewidencjonowaniu repozytorium TFVC. - Pobierz ręcznie program TEE-CLC w wersji 14.135.0 z programu Team Explorer Everywhere w wersjach usługi GitHub.
- Wyodrębnij zawartość
TEE-CLC-14.135.0
folderu do<agent_directory>/externals/tee
folderu .
Przygotowywanie uprawnień
Jeśli tworzysz z repozytorium Subversion, musisz zainstalować klienta Subversion na maszynie.
Należy uruchomić instalatora agenta ręcznie po raz pierwszy. Po zapoznaniu się z działaniem agentów lub zautomatyzowaniu konfigurowania wielu agentów rozważ użycie nienadzorowanej konfiguracji.
Zabezpieczenia informacji dla własnych agentów
Użytkownik konfigurując agenta wymaga uprawnień administratora puli, ale użytkownik z uruchomionym agentem nie.
Foldery kontrolowane przez agenta powinny być ograniczone do jak najmniejszej liczby użytkowników i zawierają wpisy tajne, które mogą być odszyfrowane lub eksfiltrowane.
Agent usługi Azure Pipelines to oprogramowanie przeznaczone do wykonywania kodu pobieranego ze źródeł zewnętrznych. Z założenia może to być element docelowy ataków zdalnego wykonywania kodu (RCE).
Dlatego ważne jest, aby wziąć pod uwagę model zagrożeń wokół każdego indywidualnego użycia agentów Pipelines do wykonania pracy i zdecydować, jakie minimalne uprawnienia można przyznać użytkownikowi, na maszynie, na której działa agent, do użytkowników, którzy mają dostęp do zapisu do definicji potoku, repozytoriów git, w których jest przechowywany yaml, lub grupy użytkowników, którzy kontrolują dostęp do puli dla nowych potoków.
Najlepszym rozwiązaniem jest, aby tożsamość uruchomiona przez agenta różniła się od tożsamości z uprawnieniami do łączenia agenta z pulą. Użytkownik generujący poświadczenia (i inne pliki związane z agentem) różni się od użytkownika, który musi je odczytać. Dlatego bezpieczniej jest dokładnie rozważyć dostęp przyznany samej maszynie agenta oraz foldery agentów zawierające poufne pliki, takie jak dzienniki i artefakty.
Warto udzielić dostępu do folderu agenta tylko administratorom devOps i tożsamości użytkownika uruchamiającego proces agenta. Administracja istratory mogą wymagać zbadania systemu plików, aby zrozumieć błędy kompilacji lub pobrać pliki dziennika, aby móc zgłaszać błędy usługi Azure DevOps.
Zdecyduj, którego użytkownika użyjesz
W ramach jednorazowego kroku należy zarejestrować agenta. Osoba z uprawnieniami do administrowania kolejką agentów musi wykonać te kroki. Agent nie będzie używać poświadczeń tej osoby w codziennej operacji, ale jest on wymagany do ukończenia rejestracji. Dowiedz się więcej o tym, jak agenci komunikują się.
Uwierzytelnianie przy użyciu osobistego tokenu dostępu
- Zaloguj się przy użyciu konta użytkownika, którego planujesz użyć w portalu internetowym usługi Azure DevOps Server (
https://{your-server}/DefaultCollection/
).
- Zaloguj się przy użyciu konta użytkownika, którego planujesz używać w organizacji usługi Azure DevOps (
https://dev.azure.com/{your_organization}
).
Na stronie głównej otwórz swój profil. Przejdź do szczegółów zabezpieczeń.
Utwórz osobisty token dostępu.
Uwaga
Jeśli konfigurujesz agenta grupy wdrażania lub wystąpi błąd podczas rejestrowania zasobu środowiska maszyny wirtualnej, musisz ustawić zakres pat na Wszystkie dostępne organizacje.
Na stronie głównej otwórz ustawienia użytkownika, a następnie wybierz pozycję Osobiste tokeny dostępu.
Utwórz osobisty token dostępu.
Dla zakresu wybierz pozycję Pule agentów (odczyt, zarządzaj) i upewnij się, że wszystkie pozostałe pola zostały wyczyszczone. Jeśli jest to agent grupy wdrożeń, dla zakresu wybierz pozycję Grupa wdrożenia (odczyt, zarządzanie) i upewnij się, że wszystkie pozostałe pola zostały wyczyszczone.
Wybierz pozycję Pokaż wszystkie zakresy w dolnej części okna Tworzenie nowego osobistego tokenu dostępu, aby wyświetlić pełną listę zakresów.
Skopiuj token. Ten token będzie używany podczas konfigurowania agenta.
Potwierdzanie, że użytkownik ma uprawnienia
Upewnij się, że konto użytkownika, którego zamierzasz użyć, ma uprawnienia do rejestrowania agenta.
Czy użytkownik jest właścicielem organizacji usługi Azure DevOps, serwerem TFS, czy administratorem usługi Azure DevOps Server? Zatrzymaj się tutaj, masz uprawnienia.
W przeciwnym razie:
Otwórz przeglądarkę i przejdź do karty Pule agentów dla organizacji usługi Azure Pipelines lub serwera Azure DevOps Server lub SERWERA TFS:
Zaloguj się do organizacji (
https://dev.azure.com/{yourorganization}
).Wybierz pozycję Azure DevOps, Ustawienia organizacji.
Wybierz pozycję Pule agentów.
Zaloguj się do kolekcji projektów (
http://your-server/DefaultCollection
).Wybierz pozycję Azure DevOps, Ustawienia kolekcji.
Wybierz pozycję Pule agentów.
Wybierz pozycję Azure DevOps, Ustawienia kolekcji.
Wybierz pozycję Pule agentów.
Wybierz pulę po prawej stronie, a następnie kliknij pozycję Zabezpieczenia.
Jeśli konto użytkownika, którego zamierzasz użyć, nie jest wyświetlane, pobierz administratora, aby go dodać. Administrator może być administratorem puli agentów, właścicielem organizacji usługi Azure DevOps lub administratorem serwera TFS lub Azure DevOps Server.
Jeśli jest to agent grupy wdrożeń, administrator może być administratorem grupy wdrażania, właścicielem organizacji usługi Azure DevOps lub administratorem serwera TFS lub Azure DevOps Server.
Możesz dodać użytkownika do roli administratora grupy wdrażania na karcie Zabezpieczenia na stronie Grupy wdrożeń w usłudze Azure Pipelines.
Uwaga
Jeśli zostanie wyświetlony komunikat podobny do następującego: Niestety, nie można dodać tożsamości. Spróbuj użyć innej tożsamości. Prawdopodobnie wykonano powyższe kroki dla właściciela organizacji lub administratora serwera TFS lub Azure DevOps Server. Nie musisz nic robić; masz już uprawnienia do administrowania kolejką agenta.
Pobieranie i konfigurowanie agenta
Azure Pipelines
Zaloguj się na maszynie przy użyciu konta, dla którego przygotowano uprawnienia zgodnie z powyższym wyjaśnieniem.
W przeglądarce internetowej zaloguj się do usługi Azure Pipelines i przejdź do karty Pule agentów :
Zaloguj się do organizacji (
https://dev.azure.com/{yourorganization}
).Wybierz pozycję Azure DevOps, Ustawienia organizacji.
Wybierz pozycję Pule agentów.
Zaloguj się do kolekcji projektów (
http://your-server/DefaultCollection
).Wybierz pozycję Azure DevOps, Ustawienia kolekcji.
Wybierz pozycję Pule agentów.
Wybierz pozycję Azure DevOps, Ustawienia kolekcji.
Wybierz pozycję Pule agentów.
Wybierz pulę Domyślną, wybierz kartę Agenci, a następnie wybierz pozycję Nowy agent.
W oknie dialogowym Pobieranie agenta kliknij pozycję macOS.
Kliknij przycisk Pobierz.
Postępuj zgodnie z instrukcjami na stronie.
Wyczyść atrybut rozszerzony w pliku tar:
xattr -c vsts-agent-osx-x64-V.v.v.tar.gz
.Rozpakuj agenta do wybranego katalogu.
cd
w tym katalogu i uruchom polecenie./config.sh
. Upewnij się, że ścieżka do katalogu nie zawiera spacji, ponieważ narzędzia i skrypty nie zawsze prawidłowo unikną spacji.
Usługi Azure DevOps Server 2019 i Azure DevOps Server 2020
Zaloguj się na maszynie przy użyciu konta, dla którego przygotowano uprawnienia zgodnie z powyższym wyjaśnieniem.
W przeglądarce internetowej zaloguj się do usługi Azure DevOps Server i przejdź do karty Pule agentów :
Zaloguj się do organizacji (
https://dev.azure.com/{yourorganization}
).Wybierz pozycję Azure DevOps, Ustawienia organizacji.
Wybierz pozycję Pule agentów.
Zaloguj się do kolekcji projektów (
http://your-server/DefaultCollection
).Wybierz pozycję Azure DevOps, Ustawienia kolekcji.
Wybierz pozycję Pule agentów.
Wybierz pozycję Azure DevOps, Ustawienia kolekcji.
Wybierz pozycję Pule agentów.
Kliknij pozycję Pobierz agenta.
W oknie dialogowym Pobieranie agenta kliknij pozycję macOS.
Kliknij przycisk Pobierz.
Postępuj zgodnie z instrukcjami na stronie.
Wyczyść atrybut rozszerzony w pliku tar:
xattr -c vsts-agent-osx-x64-V.v.v.tar.gz
.Rozpakuj agenta do wybranego katalogu.
cd
w tym katalogu i uruchom polecenie./config.sh
. Upewnij się, że ścieżka do katalogu nie zawiera spacji, ponieważ narzędzia i skrypty nie zawsze prawidłowo unikną spacji.
Adres URL serwera
Azure Pipelines: https://dev.azure.com/{your-organization}
TFS 2018 i nowsze: https://{your_server}/tfs
Authentication type
Azure Pipelines
Wybierz pozycję PAT, a następnie wklej token pat utworzony w oknie wiersza polecenia.
Uwaga
W przypadku używania tokenu PAT jako metody uwierzytelniania token pat jest używany tylko do początkowej konfiguracji agenta. Dowiedz się więcej na temat komunikacji z usługą Azure Pipelines lub TFS.
TFS lub Azure DevOps Server
Ważne
Upewnij się, że serwer jest skonfigurowany do obsługi metody uwierzytelniania, której chcesz użyć.
Podczas konfigurowania agenta w celu nawiązania połączenia z serwerem TFS dostępne są następujące opcje:
Alternatywne Połączenie do serwera TFS lub Azure DevOps Server przy użyciu uwierzytelniania podstawowego. Po wybraniu pozycji Alternatywne zostanie wyświetlony monit o podanie poświadczeń.
Zintegrowane nieobsługiwane w systemach macOS lub Linux.
Negocjuj (ustawienie domyślne) Połączenie do serwera TFS lub Azure DevOps Server jako użytkownik inny niż zalogowany użytkownik za pośrednictwem schematu uwierzytelniania systemu Windows, takiego jak NTLM lub Kerberos. Po wybraniu pozycji Negocjuj zostanie wyświetlony monit o podanie poświadczeń.
Pat obsługiwane tylko w usługach Azure Pipelines i TFS 2017 i nowszych. Po wybraniu pozycji PAT wklej token pat utworzony w oknie wiersza polecenia. Użyj osobistego tokenu dostępu (PAT), jeśli serwer Usługi Azure DevOps lub wystąpienie serwera TFS i maszyny agenta nie znajdują się w zaufanej domenie. Uwierzytelnianie pat jest obsługiwane przez serwer Usługi Azure DevOps lub wystąpienie serwera TFS zamiast kontrolera domeny.
Uwaga
W przypadku używania tokenu PAT jako metody uwierzytelniania token pat jest używany tylko do początkowej konfiguracji agenta na serwerze Azure DevOps Server i nowszych wersjach serwera TFS. Dowiedz się więcej na temat komunikacji z usługą Azure Pipelines lub TFS.
Uruchamianie interakcyjne
Aby uzyskać wskazówki dotyczące uruchamiania agenta w trybie interaktywnym lub jako usługa, zobacz Agenci: interakcyjna a usługa.
Aby uruchomić agenta interaktywnie:
Jeśli używasz agenta jako usługi, odinstaluj usługę.
Uruchom agenta.
./run.sh
Aby ponownie uruchomić agenta, naciśnij klawisze Ctrl+C, a następnie uruchom polecenie run.sh
, aby go ponownie uruchomić.
Aby użyć agenta, uruchom zadanie przy użyciu puli agenta. Jeśli nie wybrano innej puli, agent będzie znajdować się w puli Domyślne .
Uruchom raz
W przypadku agentów skonfigurowanych do interaktywnego uruchamiania można wybrać, że agent akceptuje tylko jedno zadanie. Aby uruchomić polecenie w tej konfiguracji:
./run.sh --once
Agenci w tym trybie będą akceptować tylko jedno zadanie, a następnie bezpiecznie obracać się (przydatne do uruchamiania w usłudze, takiej jak Azure Container Instances).
Uruchamianie jako uruchomionej usługi
Udostępniamy ./svc.sh
skrypt umożliwiający uruchamianie agenta i zarządzanie nim jako uruchomioną usługę LaunchAgent. Ten skrypt zostanie wygenerowany po skonfigurowaniu agenta. Usługa ma dostęp do interfejsu użytkownika w celu uruchomienia testów interfejsu użytkownika.
Uwaga
Jeśli wolisz inne podejścia, możesz użyć dowolnego preferowanego mechanizmu usług. Zobacz Pliki usługi.
Tokeny
W poniższej sekcji te tokeny są zastępowane:
{agent-name}
{tfs-name}
Na przykład skonfigurowano agenta (zobacz powyżej) o nazwie our-osx-agent
. W poniższych przykładach {tfs-name}
będą:
Azure Pipelines: nazwa organizacji. Jeśli na przykład połączysz się z
https://dev.azure.com/fabrikam
usługą , nazwa usługi będzie miała wartośćvsts.agent.fabrikam.our-osx-agent
TFS: nazwa lokalnego serwera TFS AT. Jeśli na przykład połączysz się z
http://our-server:8080/tfs
usługą , nazwa usługi będzie miała wartośćvsts.agent.our-server.our-osx-agent
Polecenia
Przejdź do katalogu agenta
Jeśli na przykład zainstalowano w myagent
podfolderze katalogu macierzystego:
cd ~/myagent$
Instalowanie
Polecenie:
./svc.sh install
To polecenie tworzy uruchomiony plik plist wskazujący element ./runsvc.sh
. Ten skrypt konfiguruje środowisko (więcej szczegółów poniżej) i uruchamia hosta agenta.
Rozpocznij
Polecenie:
./svc.sh start
Dane wyjściowe:
starting vsts.agent.{tfs-name}.{agent-name}
status vsts.agent.{tfs-name}.{agent-name}:
/Users/{your-name}/Library/LaunchAgents/vsts.agent.{tfs-name}.{agent-name}.plist
Started:
13472 0 vsts.agent.{tfs-name}.{agent-name}
Lewa liczba to pid, jeśli usługa jest uruchomiona. Jeśli druga liczba nie jest równa zero, wystąpił problem.
Stan
Polecenie:
./svc.sh status
Dane wyjściowe:
status vsts.agent.{tfs-name}.{agent-name}:
/Users/{your-name}/Library/LaunchAgents/vsts.{tfs-name}.{agent-name}.testsvc.plist
Started:
13472 0 vsts.agent.{tfs-name}.{agent-name}
Lewa liczba to pid, jeśli usługa jest uruchomiona. Jeśli druga liczba nie jest równa zero, wystąpił problem.
Zatrzymaj
Polecenie:
./svc.sh stop
Dane wyjściowe:
stopping vsts.agent.{tfs-name}.{agent-name}
status vsts.agent.{tfs-name}.{agent-name}:
/Users/{your-name}/Library/LaunchAgents/vsts.{tfs-name}.{agent-name}.testsvc.plist
Stopped
Odinstaluj program
Należy zatrzymać przed odinstalowaniem.
Polecenie:
./svc.sh uninstall
Automatyczne logowanie i blokowanie
Zwykle usługa agenta jest uruchamiana tylko po zalogowaniu użytkownika. Jeśli chcesz, aby usługa agenta automatycznie uruchamiała się po ponownym uruchomieniu maszyny, możesz skonfigurować maszynę do automatycznego logowania i blokowania podczas uruchamiania. Zobacz Ustawianie komputera Mac na automatyczne logowanie podczas uruchamiania — pomoc techniczna firmy Apple.
Uwaga
Aby uzyskać więcej informacji, zobacz blog Terminally Geeky: use automatic login more securely blog (Terminally Geeky: używanie automatycznego logowania). Plik plist wymieniony w tym blogu może nie być już dostępny w źródle, ale kopię można znaleźć tutaj: Lifehacker - Make OS X załaduj pulpit przed zalogowaniem.
Aktualizacja zmiennych środowiskowych
Podczas konfigurowania usługi tworzy migawkę niektórych przydatnych zmiennych środowiskowych dla bieżącego użytkownika logowania, takich jak PATH, LANG, JAVA_HOME, ANT_HOME i MYSQL_PATH. Jeśli musisz zaktualizować zmienne (na przykład po zainstalowaniu nowego oprogramowania):
./env.sh
./svc.sh stop
./svc.sh start
Migawka zmiennych środowiskowych jest przechowywana w pliku w .env
katalogu głównym agenta. Można również zmienić ten plik bezpośrednio, aby zastosować zmiany zmiennych środowiskowych.
Uruchamianie instrukcji przed uruchomieniem usługi
Możesz również uruchomić własne instrukcje i polecenia, aby uruchomić je po uruchomieniu usługi. Można na przykład skonfigurować środowisko lub wywołać skrypty.
Edytuj
runsvc.sh
plik .Zastąp następujący wiersz instrukcjami:
# insert anything to setup env when running as a service
Pliki usługi
Podczas instalowania usługi niektóre pliki usługi są umieszczane.
Plik usługi .plist
Zostanie utworzony plik usługi plist:
~/Library/LaunchAgents/vsts.agent.{tfs-name}.{agent-name}.plist
Na przykład:
~/Library/LaunchAgents/vsts.agent.fabrikam.our-osx-agent.plist
sudo ./svc.sh install
generuje ten plik na podstawie tego szablonu: ./bin/vsts.agent.plist.template
Plik .service
./svc.sh start
znajduje usługę .service
, odczytując plik, który zawiera ścieżkę do pliku usługi plist opisanego powyżej.
Alternatywne mechanizmy usług
Udostępniamy ./svc.sh
skrypt jako wygodny sposób uruchamiania agenta i zarządzania nim jako uruchomionej usługi LaunchAgent. Można jednak użyć dowolnego preferowanego mechanizmu usług.
Możesz użyć opisanego powyżej szablonu, aby ułatwić generowanie innych rodzajów plików usługi. Na przykład zmodyfikujesz szablon, aby wygenerować usługę uruchamianą jako demon uruchamiania, jeśli nie potrzebujesz testów interfejsu użytkownika i nie chcesz konfigurować automatycznego logowania i blokowania. Zobacz Biblioteka dla deweloperów firmy Apple: tworzenie demonów uruchamiania i agentów.
Zastępowanie agenta
Aby zastąpić agenta, wykonaj ponownie kroki pobierania i konfigurowania agenta .
Podczas konfigurowania agenta przy użyciu takiej samej nazwy jak agent, który już istnieje, zostanie wyświetlony monit o zastąpienie istniejącego agenta. Jeśli odpowiesz na Y
adres , upewnij się, że usunięto agenta (patrz poniżej), który zastępujesz. W przeciwnym razie po kilku minutach konfliktów jeden z agentów zostanie zamknięty.
Usuwanie i ponowne konfigurowanie agenta
Aby usunąć agenta:
Zatrzymaj i odinstaluj usługę zgodnie z powyższym wyjaśnieniem.
Usuń agenta.
./config.sh remove
Wprowadź poświadczenia.
Po usunięciu agenta można go ponownie skonfigurować.
Konfiguracja nienadzorowana
Agenta można skonfigurować na podstawie skryptu bez interwencji człowieka.
Musisz przekazać --unattended
odpowiedzi na wszystkie pytania.
Aby skonfigurować agenta, musi on znać adres URL organizacji lub kolekcji i poświadczeń osoby upoważnionej do konfigurowania agentów.
Wszystkie inne odpowiedzi są opcjonalne.
Zamiast tego można określić dowolny parametr wiersza polecenia przy użyciu zmiennej środowiskowej: umieść jej nazwę w górnej litery i wstępnie wstaw VSTS_AGENT_INPUT_
wartość .
Na przykład VSTS_AGENT_INPUT_PASSWORD
zamiast określać --password
wartość .
Wymagane opcje
--unattended
— Instalator agenta nie wyświetli monitu o podanie informacji, a wszystkie ustawienia muszą być podane w wierszu polecenia--url <url>
— adres URL serwera. Na przykład: https://dev.azure.com/myorganization lub http://my-azure-devops-server:8080/tfs--auth <type>
— typ uwierzytelniania. Prawidłowe wartości to:pat
(Osobisty token dostępu) — pat jest jedynym schematem, który współpracuje z usługami Azure DevOps Services.negotiate
(Kerberos lub NTLM)alt
(Uwierzytelnianie podstawowe)integrated
(Poświadczenia domyślne systemu Windows)
Opcje uwierzytelniania
- W przypadku wybrania opcji
--auth pat
:--token <token>
- określa osobisty token dostępu- Pat to jedyny schemat, który współpracuje z usługami Azure DevOps Services.
- W przypadku wybrania
--auth negotiate
opcji lub--auth alt
:--userName <userName>
— określa nazwę użytkownika systemu Windows w formaciedomain\userName
lubuserName@domain.com
--password <password>
- określa hasło
Nazwy puli i agentów
--pool <pool>
- nazwa puli dla agenta do przyłączenia--agent <agent>
- nazwa agenta--replace
— zastąp agenta w puli. Jeśli inny agent nasłuchuje o tej samej nazwie, rozpocznie się niepowodzenie z powodu konfliktu
Konfiguracja agenta
--work <workDirectory>
— katalog służbowy, w którym są przechowywane dane zadania. Wartość domyślna to_work
w katalogu głównym katalogu agenta. Katalog roboczy jest własnością danego agenta i nie powinien być współużytkowany między wieloma agentami.--acceptTeeEula
— zaakceptuj umowę licencyjną użytkownika oprogramowania Team Explorer Everywhere (tylko system macOS i Linux)--disableloguploads
— nie przesyłaj strumieniowo ani nie wysyłaj danych wyjściowych dziennika konsoli do serwera. Zamiast tego można pobrać je z systemu plików hosta agenta po zakończeniu zadania.
Uruchamianie tylko systemu Windows
--runAsService
— konfigurowanie agenta do uruchamiania jako usługa systemu Windows (wymaga uprawnień administratora)--runAsAutoLogon
— konfigurowanie automatycznego logowania i uruchamianie agenta podczas uruchamiania (wymaga uprawnień administratora)--windowsLogonAccount <account>
- używane z--runAsService
lub--runAsAutoLogon
do określania nazwy użytkownika systemu Windows w formaciedomain\userName
lubuserName@domain.com
--windowsLogonPassword <password>
— używane z--runAsService
--runAsAutoLogon
lub do określania hasła logowania systemu Windows (nie jest wymagane dla kont usług zarządzanych przez grupę i systemu Windows wbudowanych kont, takich jak "NT AUTHORITY\NETWORK SERVICE")--overwriteAutoLogon
— służy--runAsAutoLogon
do zastępowania istniejącego automatycznego logowania na maszynie--noRestart
— służy--runAsAutoLogon
do zatrzymywania ponownego uruchamiania hosta po zakończeniu konfiguracji agenta
Rozwiązywanie problemów z konfigurowaniem agenta przy użyciu runAsAutoLogon
opcji
Skonfigurowanie agenta przy runAsAutoLogon
użyciu opcji powoduje uruchomienie agenta za każdym razem po ponownym uruchomieniu maszyny.
Wykonaj następne kroki, jeśli agent nie zostanie uruchomiony po ponownym uruchomieniu maszyny.
Jeśli agent został już skonfigurowany na maszynie
Przed ponownym skonfigurowaniem agenta należy usunąć starą konfigurację agenta, dlatego spróbuj uruchomić to polecenie z folderu agenta:
.\config.cmd remove --auth 'PAT' --token '<token>'
Sprawdź, czy agent został usunięty z puli agentów po wykonaniu polecenia:
<Azure DevOps organization> / <Project> / Settings / Agent pools / <Agent Pool> / Agents
Usuń agenta z puli agentów ręcznie, jeśli nie został usunięty, uruchamiając polecenie .
Następnie spróbuj ponownie skonfigurować agenta, uruchamiając to polecenie z folderu agenta:
.\config.cmd --unattended --agent '<agent-name>' --pool '<agent-pool-name>' --url '<azure-dev-ops-organization-url>' --auth 'PAT' --token '<token>' --runAsAutoLogon --windowsLogonAccount '<domain\user-name>' --windowsLogonPassword '<windows-password>'
Określ nazwę agenta (dowolną unikatową nazwę) i sprawdź, czy ten agent pojawił się w puli agentów po ponownym skonfigurowaniu.
Znacznie lepiej będzie rozpakować archiwum agenta (które można pobrać tutaj) i uruchomić to polecenie z nowego rozpakowanego folderu agenta.
Sprawdź, czy klucz rejestru systemu Windows jest zarejestrowany i zapisany poprawnie
Uruchom polecenie , whoami /user
aby pobrać polecenie <sid>
. Otwórz Registry Editor
plik i postępuj zgodnie ze ścieżką:
Computer\HKEY_USERS\<sid>\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Sprawdź, czy istnieje VSTSAgent
klucz. Usuń ten klucz, jeśli istnieje, a następnie zamknij Registry Editor
i skonfiguruj agenta, uruchamiając .\config.cmd
polecenie (bez args) z folderu agenta. Przed udzieleniem odpowiedzi na pytanie Enter Restart the machine at a later time?
otwórz Registry Editor
ponownie i sprawdź, czy VSTSAgent
klucz został wyświetlony. Naciśnij klawisz Enter
, aby odpowiedzieć na pytanie i sprawdzić, czy VSTSAgent
klucz pozostaje w jego miejscu po ponownym uruchomieniu maszyny.
Sprawdź, czy klucze rejestru systemu Windows działają prawidłowo na maszynie
autorun.cmd
Utwórz plik zawierający następujący wiersz: echo "Hello from AutoRun!"
.
Otwórz Registry Editor
i utwórz w ścieżce powyżej nowej pary klucz-wartość z kluczem AutoRun
i wartością
C:\windows\system32\cmd.exe /D /S /C start "AutoRun" "D:\path\to\autorun.cmd"
Uruchom ponownie komputer. Jeśli nie widzisz okna konsoli z komunikatem Hello from AutoRun!
, występuje problem z kluczami rejestru systemu Windows.
Tylko grupa wdrożeń
--deploymentGroup
— konfigurowanie agenta jako agenta grupy wdrożeń--deploymentGroupName <name>
— służy--deploymentGroup
do określania grupy wdrożenia agenta do dołączenia--projectName <name>
— służy--deploymentGroup
do ustawiania nazwy projektu--addDeploymentGroupTags
— służy--deploymentGroup
do wskazywania, że należy dodać tagi grupy wdrożenia--deploymentGroupTags <tags>
— służy--addDeploymentGroupTags
do określania rozdzielanej przecinkami listy tagów dla agenta grupy wdrożenia — na przykład "web, db"
Tylko środowiska
--addvirtualmachineresourcetags
— służy do wskazywania, że należy dodać tagi zasobów środowiska--virtualmachineresourcetags <tags>
— służy--addvirtualmachineresourcetags
do określania rozdzielanej przecinkami listy tagów dla agenta zasobów środowiska — na przykład "web, db"
./config.sh --help
zawsze wyświetla listę najnowszych wymaganych i opcjonalnych odpowiedzi.
Diagnostyka
Jeśli masz problemy z własnym agentem, możesz spróbować uruchomić diagnostykę. Po skonfigurowaniu agenta:
./run.sh --diagnostics
Spowoduje to uruchomienie pakietu diagnostycznego, który może pomóc w rozwiązaniu problemu. Funkcja diagnostyki jest dostępna od wersji 2.165.0 agenta.
Pomoc dotycząca innych opcji
Aby dowiedzieć się więcej o innych opcjach:
./config.sh --help
Pomoc zawiera informacje na temat alternatyw uwierzytelniania i konfiguracji nienadzorowanej.
Możliwości
Możliwości agenta są katalogowane i anonsowane w puli, dzięki czemu przypisane są tylko kompilacje i wydania, które może obsłużyć. Zobacz Możliwości agenta kompilacji i wydania.
W wielu przypadkach po wdrożeniu agenta należy zainstalować oprogramowanie lub narzędzia. Ogólnie rzecz biorąc, należy zainstalować na agentach niezależnie od oprogramowania i narzędzi używanych na komputerze deweloperskim.
Jeśli na przykład kompilacja zawiera zadanie npm, kompilacja nie zostanie uruchomiona, chyba że w puli jest zainstalowany agent kompilacji.
Ważne
Możliwości obejmują wszystkie zmienne środowiskowe i wartości ustawione podczas uruchamiania agenta. Jeśli którakolwiek z tych wartości zmieni się podczas działania agenta, należy ponownie uruchomić agenta, aby pobrać nowe wartości. Po zainstalowaniu nowego oprogramowania na agencie należy ponownie uruchomić agenta, aby nowe możliwości pojawiły się w puli, aby można było uruchomić kompilację.
Jeśli chcesz wykluczyć zmienne środowiskowe jako możliwości, możesz je wyznaczyć, ustawiając zmienną VSO_AGENT_IGNORE
środowiskową z rozdzielaną przecinkami listę zmiennych do ignorowania.
Często zadawane pytania
Jak mogę upewnić się, że mam najnowszą wersję agenta?
Przejdź do karty Pule agentów :
Zaloguj się do organizacji (
https://dev.azure.com/{yourorganization}
).Wybierz pozycję Azure DevOps, Ustawienia organizacji.
Wybierz pozycję Pule agentów.
Zaloguj się do kolekcji projektów (
http://your-server/DefaultCollection
).Wybierz pozycję Azure DevOps, Ustawienia kolekcji.
Wybierz pozycję Pule agentów.
Wybierz pozycję Azure DevOps, Ustawienia kolekcji.
Wybierz pozycję Pule agentów.
Kliknij pulę zawierającą agenta.
Upewnij się, że agent jest włączony.
Przejdź do karty możliwości:
Na karcie Pule agentów wybierz żądaną pulę agentów.
Wybierz pozycję Agenci i wybierz żądanego agenta.
Wybierz kartę Możliwości .
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.
Na karcie Pule agentów wybierz żądaną pulę.
Wybierz pozycję Agenci i wybierz żądanego agenta.
Wybierz kartę Możliwości .
Na karcie Pule agentów wybierz żądaną pulę.
Wybierz pozycję Agenci i wybierz żądanego agenta.
Wybierz kartę Możliwości .
Agent.Version
Poszukaj możliwości. Możesz sprawdzić tę wartość względem najnowszej opublikowanej wersji agenta. Zobacz Agent usługi Azure Pipelines i sprawdź stronę, aby uzyskać najwyższy numer wersji na liście.Każdy agent automatycznie aktualizuje się, gdy uruchamia zadanie wymagające 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ć agentów będących częścią puli usługi Azure DevOps Server?
Tak. Począwszy od usługi Azure DevOps Server 2019, 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 jego wydania. Ten scenariusz ma również zastosowanie, gdy serwer nie ma dostępu do Internetu.
Z komputera z dostępem do Internetu pobierz najnowszą wersję plików pakietu agenta (w formularzu .zip lub .tar.gz) ze strony Wydania usługi GitHub agenta usługi Azure Pipelines.
Przenieś pobrane pliki pakietu do każdej warstwy aplikacji serwera Usługi Azure DevOps przy użyciu wybranej metody (takiej jak dysk USB, transfer sieciowy itd.). Umieść pliki agenta w następującym folderze:
- Windows:
%ProgramData%\Microsoft\Azure DevOps\Agents
- Linux:
usr/share/Microsoft/Azure DevOps/Agents
- Macos:
usr/share/Microsoft/Azure DevOps/Agents
Utwórz folder Agenci, jeśli nie jest obecny.
- Wszystko gotowe! Serwer Usługi Azure DevOps będzie teraz używać plików lokalnych za każdym razem, gdy agenci są aktualizowani. Każdy agent automatycznie aktualizuje się, gdy uruchamia zadanie wymagające 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.
Jak mogę upewnić się, że mam najnowszą wersję agenta w wersji 2?
Przejdź do karty Pule agentów :
Zaloguj się do organizacji (
https://dev.azure.com/{yourorganization}
).Wybierz pozycję Azure DevOps, Ustawienia organizacji.
Wybierz pozycję Pule agentów.
Zaloguj się do kolekcji projektów (
http://your-server/DefaultCollection
).Wybierz pozycję Azure DevOps, Ustawienia kolekcji.
Wybierz pozycję Pule agentów.
Wybierz pozycję Azure DevOps, Ustawienia kolekcji.
Wybierz pozycję Pule agentów.
Kliknij pulę zawierającą agenta.
Upewnij się, że agent jest włączony.
Przejdź do karty możliwości:
Na karcie Pule agentów wybierz żądaną pulę agentów.
Wybierz pozycję Agenci i wybierz żądanego agenta.
Wybierz kartę Możliwości .
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.
Na karcie Pule agentów wybierz żądaną pulę.
Wybierz pozycję Agenci i wybierz żądanego agenta.
Wybierz kartę Możliwości .
Na karcie Pule agentów wybierz żądaną pulę.
Wybierz pozycję Agenci i wybierz żądanego agenta.
Wybierz kartę Możliwości .
Agent.Version
Poszukaj możliwości. Możesz sprawdzić tę wartość względem najnowszej opublikowanej wersji agenta. Zobacz Agent usługi Azure Pipelines i sprawdź stronę, aby uzyskać najwyższy numer wersji na liście.Każdy agent automatycznie aktualizuje się, gdy uruchamia zadanie wymagające 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 usługi Azure DevOps Server?
Tak. Począwszy od usługi Azure DevOps Server 2019, 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 jego wydania. Ten scenariusz ma również zastosowanie, gdy serwer nie ma dostępu do Internetu.
Z komputera z dostępem do Internetu pobierz najnowszą wersję plików pakietu agenta (w formularzu .zip lub .tar.gz) ze strony Wydania usługi GitHub agenta usługi Azure Pipelines.
Przenieś pobrane pliki pakietu do każdej warstwy aplikacji serwera Usługi Azure DevOps przy użyciu wybranej metody (takiej jak dysk USB, transfer sieciowy itd.). Umieść pliki agenta w folderze
%ProgramData%\Microsoft\Azure DevOps\Agents
. Utwórz folder Agenci, jeśli nie jest obecny.Wszystko gotowe! Serwer Usługi Azure DevOps będzie teraz używać plików lokalnych za każdym razem, gdy agenci są aktualizowani. Każdy agent automatycznie aktualizuje się, gdy uruchamia zadanie wymagające 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.
Gdzie mogę dowiedzieć się więcej o sposobie działania uruchomionej usługi?
Biblioteka dla deweloperów firmy Apple: tworzenie demonów uruchamiania i agentów
Uruchamiam zaporę, a mój kod znajduje się w usłudze Azure Repos. Z jakimi adresami URL agent musi się komunikować?
Jeśli używasz agenta w bezpiecznej sieci za zaporą, upewnij się, że agent może zainicjować komunikację z następującymi adresami URL i adresami IP.
Adres URL domeny | opis |
---|---|
https://{organization_name}.pkgs.visualstudio.com |
Interfejs API tworzenia pakietów usługi Azure DevOps dla organizacji korzystających z {organization_name}.visualstudio.com domeny |
https://{organization_name}.visualstudio.com |
W przypadku organizacji korzystających z {organization_name}.visualstudio.com domeny |
https://{organization_name}.vsblob.visualstudio.com |
Telemetria usługi Azure DevOps dla organizacji korzystających z {organization_name}.visualstudio.com domeny |
https://{organization_name}.vsrm.visualstudio.com |
Usługi zarządzania wydaniami dla organizacji korzystających z {organization_name}.visualstudio.com domeny |
https://{organization_name}.vssps.visualstudio.com |
Usługi Azure DevOps Platform Services dla organizacji korzystających z {organization_name}.visualstudio.com domeny |
https://{organization_name}.vstmr.visualstudio.com |
Usługi zarządzania testami usługi Azure DevOps dla organizacji korzystających z {organization_name}.visualstudio.com domeny |
https://*.blob.core.windows.net |
Azure Artifacts |
https://*.dev.azure.com |
W przypadku organizacji korzystających z dev.azure.com domeny |
https://*.vsassets.io |
Usługa Azure Artifacts za pośrednictwem usługi CDN |
https://*.vsblob.visualstudio.com |
Telemetria usługi Azure DevOps dla organizacji korzystających z dev.azure.com domeny |
https://*.vssps.visualstudio.com |
Usługi Azure DevOps Platform Services dla organizacji korzystających z dev.azure.com domeny |
https://*.vstmr.visualstudio.com |
Usługi zarządzania testami usługi Azure DevOps dla organizacji korzystających z dev.azure.com domeny |
https://app.vssps.visualstudio.com |
W przypadku organizacji korzystających z {organization_name}.visualstudio.com domeny |
https://dev.azure.com |
W przypadku organizacji korzystających z dev.azure.com domeny |
https://login.microsoftonline.com |
Logowanie w usłudze Microsoft Entra |
https://management.core.windows.net |
Interfejs API usługi Azure Management |
https://vstsagentpackage.azureedge.net |
Pakiet agenta |
Aby upewnić się, że organizacja współpracuje z wszelkimi istniejącymi ograniczeniami zapory lub adresu IP, upewnij się, że dev.azure.com
adresy IP na liście dozwolonych są otwarte i *dev.azure.com
zaktualizuj je, aby uwzględnić następujące adresy IP w zależności od używanej wersji adresu IP. Jeśli obecnie zezwalasz na wyświetlanie 13.107.6.183
listy adresów IP i 13.107.9.183
, pozostaw je na miejscu, ponieważ nie musisz ich usuwać.
Zakresy IPv4
13.107.6.0/24
13.107.9.0/24
13.107.42.0/24
13.107.43.0/24
Zakresy IPv6
2620:1ec:4::/48
2620:1ec:a92::/48
2620:1ec:21::/48
2620:1ec:22::/48
Uwaga
Aby uzyskać więcej informacji na temat dozwolonych adresów, zobacz Dozwolone listy adresów i połączenia sieciowe.
Jak mogę uruchomić agenta z certyfikatem z podpisem własnym?
Uruchamianie agenta z certyfikatem z podpisem własnym
Jak mogę uruchomić agenta za internetowym serwerem proxy?
Uruchamianie agenta za internetowym serwerem proxy
Jak mogę ponownie uruchomić agenta
Jeśli używasz agenta interaktywnie, zapoznaj się z instrukcjami dotyczącymi ponownego uruchamiania w temacie Uruchamianie interakcyjne. Jeśli używasz agenta jako usługi, wykonaj kroki, aby zatrzymać, a następnie uruchomić agenta.
Jak mogę skonfigurować agenta w celu obejścia internetowego serwera proxy i połączenia z usługą Azure Pipelines?
Jeśli chcesz, aby agent pominął serwer proxy i nawiązał bezpośrednie połączenie z usługą Azure Pipelines, należy skonfigurować internetowy serwer proxy, aby umożliwić agentowi dostęp do następujących adresów URL.
W przypadku organizacji korzystających z *.visualstudio.com
domeny:
https://login.microsoftonline.com
https://app.vssps.visualstudio.com
https://{organization_name}.visualstudio.com
https://{organization_name}.vsrm.visualstudio.com
https://{organization_name}.vstmr.visualstudio.com
https://{organization_name}.pkgs.visualstudio.com
https://{organization_name}.vssps.visualstudio.com
W przypadku organizacji korzystających z dev.azure.com
domeny:
https://dev.azure.com
https://*.dev.azure.com
https://login.microsoftonline.com
https://management.core.windows.net
https://vstsagentpackage.azureedge.net
https://vssps.dev.azure.com
Aby upewnić się, że organizacja współpracuje z wszelkimi istniejącymi ograniczeniami zapory lub adresu IP, upewnij się, że dev.azure.com
adresy IP na liście dozwolonych są otwarte i *dev.azure.com
zaktualizuj je, aby uwzględnić następujące adresy IP w zależności od używanej wersji adresu IP. Jeśli obecnie zezwalasz na wyświetlanie 13.107.6.183
listy adresów IP i 13.107.9.183
, pozostaw je na miejscu, ponieważ nie musisz ich usuwać.
Zakresy IPv4
13.107.6.0/24
13.107.9.0/24
13.107.42.0/24
13.107.43.0/24
Zakresy IPv6
2620:1ec:4::/48
2620:1ec:a92::/48
2620:1ec:21::/48
2620:1ec:22::/48
Uwaga
Ta procedura umożliwia agentowi obejście internetowego serwera proxy. Potok kompilacji i skrypty muszą nadal obsługiwać pomijanie internetowego serwera proxy dla każdego zadania i narzędzia uruchomionego w kompilacji.
Jeśli na przykład używasz zadania NuGet, musisz skonfigurować internetowy serwer proxy w celu obsługi pomijania adresu URL serwera, który hostuje używany kanał informacyjny NuGet.
Używam serwera TFS, a adresy URL w powyższych sekcjach nie działają dla mnie. Gdzie mogę uzyskać pomoc?
Używam lokalnego serwera TFS i nie widzę niektórych z tych funkcji. Dlaczego nie?
Niektóre z tych funkcji są dostępne tylko w usłudze Azure Pipelines i nie są jeszcze dostępne lokalnie. Niektóre funkcje są dostępne lokalnie, jeśli przeprowadzono uaktualnienie do najnowszej wersji serwera TFS.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla