Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020
K sestavení kódu nebo nasazení softwaru pomocí Azure Pipelines potřebujete aspoň jednoho agenta. S růstem základu kódu a týmu potřebujete více agentů.
Když váš pipeline běží, systém zahájí jednu nebo více úloh. Agent je výpočetní infrastruktura s nainstalovaným softwarem agenta, který spouští jednu úlohu najednou.
Azure Pipelines poskytuje několik různých typů agentů.
| Typ agenta | Popis | Dostupnost |
|---|---|---|
| Agenti hostovaní Microsoftem | Agenti hostovaní a spravovaní Microsoftem. | Azure DevOps Services |
| Agenti na vlastním hostingu | Agenti, které konfigurujete a spravujete hostované na virtuálních počítačích. | Azure DevOps Services, Azure DevOps Server |
| Agenti spravovaných DevOps fondů | Spravované fondy DevOps jsou plně spravovanou službou. Virtuální počítače nebo kontejnery, které pohání agenty, se nacházejí v předplatném Microsoft Azure, a nikoli ve vašem vlastním předplatném Azure. | Azure DevOps Services |
| Škálovací sady virtuálních počítačů Azure - agenty | Forma agentů v místním prostředí, kteří používají škálovací sady virtuálních počítačů Azure, a je možné je automaticky škálovat tak, aby splňovala požadavky. Pokud zvažujete použití automatického škálování samohostovaných fondů agentů, doporučujeme zvážit Spravované DevOps Fondy. Další informace naleznete v Porovnání spravovaných fondů DevOps s agenty Azure Virtual Machine Scale Sets a Přehled spravovaných fondů DevOps. |
Azure DevOps Services |
Úlohy můžete spouštět přímo na hostitelském počítači agenta nebo v kontejneru.
Agenti hostovaní Microsoftem
Pokud jsou vaše kanály ve službě Azure Pipelines, můžete úlohy pohodlně spouštět pomocí agenta hostovaného Microsoftem. S agenty hostovanými Microsoftem probíhá údržba a upgrady automaticky.
Vždy máte nejnovější verzi VM obrazu, kterou zadáte ve svém pipeline. Při každém spuštění pipeline dostanete nový virtuální počítač pro každou úlohu v pipeline. Virtuální počítač se zahodí po jedné úloze. Všechny změny, které úloha provede v systému souborů virtuálního počítače, jako je například vyžádání kódu, nejsou k dispozici v dalším úkolu.
Agenti hostovaní Microsoftem můžou spouštět úlohy přímo na virtuálním počítači nebo v kontejneru.
Azure Pipelines poskytuje předdefinovaný fond agentů s názvem Azure Pipelines s agenty hostovanými Microsoftem.
Pro mnoho týmů je tento proces nejjednodušším způsobem, jak spouštět úlohy. Nejprve to můžete vyzkoušet, abyste zjistili, jestli to funguje pro vaše sestavení nebo nasazení. Pokud ne, můžete použít agenty Virtual Machine Scale Sets nebo agenta v místním prostředí.
Doporučení
Agenta hostovaného Microsoftem můžete vyzkoušet bez poplatků.
Přečtěte si další informace o agentech hostovaných Microsoftem.
Agenti hostovaní lokálně
Agent s vlastním hostováním je agent, kterého konfigurujete pro spuštění úloh a spravujete sami. Agenty v místním prostředí můžete používat ve službě Azure Pipelines nebo Azure DevOps Serveru. Agenti v místním prostředí poskytují větší kontrolu nad instalací závislého softwaru, který potřebujete pro sestavení a nasazení. Mezipaměti a konfigurace na úrovni stroje se také zachovávají z jednoho spuštění na druhé, což může zvýšit rychlost.
I když na jeden počítač lze nainstalovat více agentů, důrazně doporučujeme nainstalovat pouze jednoho agenta na počítač. Pokud nainstalujete dva nebo více agentů, může to nepříznivě ovlivnit výkon a výsledky vašich pipelinů.
Doporučení
Než nainstalujete agenta v místním prostředí, možná budete chtít zjistit, jestli vám fond agentů hostovaných Microsoftem funguje. V mnoha případech je fond agentů hostovaný Microsoftem nejjednodušší způsob, jak začít. Zkuste to zkusit.
Agenta můžete nainstalovat na počítače s Linuxem, macOS a Windows. Agenta můžete nainstalovat také do kontejneru Dockeru. Další informace o instalaci samohostovaného agenta naleznete zde:
V systému macOS musíte odstranit speciální atribut u staženého archivu, abyste zabránili zobrazení ochrany Gatekeeper macOS pro každé sestavení v souboru TAR při spuštění ./config.sh. Následující příkaz vymaže rozšířený atribut souboru:
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 instalaci agenta na počítač můžete na tento počítač nainstalovat jakýkoli jiný software, který vaše úlohy vyžadují.
Poznámka:
Agenti jsou široce zpětně kompatibilní. Jakákoli verze agenta by měla být kompatibilní s jakoukoli verzí Azure DevOps, pokud Azure DevOps nevyžaduje vyšší verzi agenta.
Podporujeme pouze aktuální verzi agenta, protože je to jediná verze zaručeně obsahující všechny aktuální opravy a opravy chyb.
verze Node.js runneru
Agent se dodává s několika verzemi knihoven Node.js pro podporu cílových úloh, které používají různé obslužné rutiny Node.js.
Všechny oficiální úlohy Azure DevOps používají knihovnu Node.js 20 jako univerzální obslužnou rutinu. Zákazníci ale můžou i nadále používat vlastní úlohy, které používají koncovou podporu Node.js verzí. Autoři rozšíření/vlastních úloh by měli aktualizovat nebo testovat své úkoly s aktuálními verzemi Node.js.
Další informace o životním cyklu spouštěče Node.js ve službě Azure Pipelines najdete v tématuNode.js spouštěčů v agentu Azure Pipelines.
Agenti škálovacích sad virtuálních počítačů Azure
Agenti Škálovací sady virtuálních počítačů Azure představují formu agentů v místním prostředí, které je možné automaticky škálovat tak, aby splňovaly vaše požadavky. Tato elasticita snižuje potřebu provozovat vyhrazené agenty neustále. Na rozdíl od agentů hostovaných Microsoftem máte flexibilitu nad velikostí a imagí počítačů, na kterých agenti běží.
Azure Pipelines spravuje škálování vašich agentů za vás. Zadejte následující faktory:
- Sada škálování virtuálních strojů
- Počet agentů, kteří mají zůstat v pohotovostním režimu
- Maximální počet virtuálních počítačů ve škálovací sadě
Další informace naleznete v tématu Agenti škálovacích sad virtuálních počítačů Azure.
Agenti spravovaných skupin DevOps
Spravované fondy DevOps umožňují vývojovým týmům rychle a snadno aktivovat fondy agentů Azure DevOps, které jsou přizpůsobené konkrétním potřebám týmu.
Spravované fondy DevOps:
- Implementuje osvědčené postupy zabezpečení.
- Poskytuje způsoby vyvážení nákladů a výkonu.
- Poskytuje cesty pro nejběžnější scénáře.
- Výrazně zkracuje dobu potřebnou k vytvoření a údržbě vlastních fondů.
Spravované fondy DevOps jsou další fází ve vývoji fondů agentů Azure Virtual Machine Scale Sets. Zjednodušuje vytváření vlastních fondů ještě více tím, že vylepšuje škálovatelnost a spolehlivost vlastních fondů. Spravované fondy DevOps jsou plně spravovanou službou. Virtuální počítače nebo kontejnery, které pohánějí agenty, běží v předplatném služby Microsoft Azure a ne ve vašem vlastním předplatném Azure, podobně jako fondům agentů v Azure Virtual Machine Scale Sets. Další informace najdete v dokumentaci ke spravovaným fondům DevOps.
Paralelní úlohy
Koncept paralelních úloh představuje počet úloh, které můžete spustit současně ve vaší organizaci. Pokud má vaše organizace jednu paralelní úlohu, můžete v organizaci spustit jednu úlohu najednou. Všechny ostatní souběžné úlohy se zařadí do fronty, dokud není dokončena první úloha. Ke spuštění dvou úloh současně potřebujete dvě paralelní úlohy. Ve službě Azure Pipelines můžete spouštět paralelní úlohy v infrastruktuře hostované Microsoftem nebo ve vlastní (interně hostované) infrastruktuře.
Microsoft ve výchozím nastavení poskytuje bezplatnou úroveň služby v každé organizaci, která zahrnuje alespoň jednu paralelní úlohu. V závislosti na počtu souběžných kanálů, které potřebujete spustit, můžete potřebovat více paralelních úloh, abyste mohli současně používat více agentů hostovaných Microsoftem nebo agentů hostovaných v místním prostředí. Další informace o paralelních úlohách a různých úrovních free služby najdete v tématu Paralelní úlohy v Azure Pipelines.
Možná budete potřebovat více paralelních úloh, abyste mohli současně používat více agentů:
Důležité
Počínaje Azure DevOps Serverem 2019 neplatíte za souběžné úlohy, které jsou samostatně hostované v rámci vydání. Jste omezeni pouze počtem agentů, které máte.
Možnosti
Každý agent s vlastním hostováním má sadu schopností, které označují, co může dělat. Možnosti jsou páry názvů a hodnot, které mohou být:
- Možnosti, které software agenta zjistí, označované jako systémové funkce.
- Možnosti, které definujete, označované jako možnosti uživatelů.
Software agenta automaticky určuje různé systémové funkce. Mezi tyto funkce patří název počítače, typ operačního systému a verze určitého softwaru nainstalovaného na počítači. Proměnné prostředí definované v počítači se také automaticky zobrazí v seznamu systémových funkcí.
Při ukládání proměnných prostředí jako schopností se uložené hodnoty schopností použijí k nastavení proměnných prostředí při spuštění agenta. Když provedete nějaké změny proměnných prostředí během provozu agenta, tyto změny nejsou rozpoznány a využity žádným úkolem. Pokud nechcete, aby se citlivé proměnné prostředí, které se mění, ukládaly jako možnosti, můžete agenta nasměrovat, aby je ignoroval.
VSO_AGENT_IGNORE Nastavte proměnnou prostředí s čárkami odděleným seznamem proměnných, které chcete ignorovat. Je to například kritická proměnná, PATH kterou můžete chtít ignorovat, pokud instalujete software.
Při vytváření procesu zadáte určité požadavky agenta. Systém odešle úlohu pouze agentům, kteří mají funkce, které odpovídají požadavkům zadaným v kanálu. Díky tomu vám možnosti agenta umožňují směrovat úlohy na konkrétní agenty.
Požadavky a schopnosti jsou navrženy pro použití s agenty, které si sami hostujete, aby úlohy mohly být přiřazeny agentovi, který splňuje požadavky práce. Když používáte agenty hostované Microsoftem, vyberete image agenta, která odpovídá požadavkům úlohy. I když je možné přidat funkce do agenta hostovaného Microsoftem, nemusíte používat funkce s agenty hostovanými Microsoftem.
Konfigurace požadavků
Pro přidání požadavku do YAML sestavení přidejte řádek demands: do sekce pool.
pool:
name: Default
demands: SpecialSoftware # exists check for SpecialSoftware
Můžete zkontrolovat existenci funkce nebo provést porovnání s hodnotou schopnosti. Další informace naleznete v tématu YAML schéma – Požadavky.
Konfigurace možností agenta
Můžete zobrazit podrobnosti o agentech, včetně verzí a systémových funkcí a spravovat jeho uživatelské možnosti. Přejděte do fondů agentů a vyberte kartu Schopnosti požadovaného agenta.
Ve webovém prohlížeči přejděte do fondů agentů:
Přejděte na kartu Schopnosti :
Na kartě Fondy agentů vyberte požadovaný fond agentů.
Vyberte Agenty a zvolte požadovaného agenta.
Zvolte kartu Schopnosti.
Poznámka:
Agenti hostovaní Microsoftem nezobrazují systémové funkce. Seznam softwaru nainstalovaných na agentech hostovaných Microsoftem najdete v tématu Použití agenta hostovaného Microsoftem.
Na kartě Fondy agentů vyberte požadovaný fond.
Vyberte Agenty a zvolte požadovaného agenta.
Zvolte kartu Schopnosti.
Pokud chcete u agenta zaregistrovat novou funkci, vyberte Přidat novou funkci.
Doporučení
Po instalaci nového softwaru na agenta v místním prostředí je nutné restartovat agenta, aby se nová funkce zobrazila. Další informace najdete v tématu Restartování agenta systému Windows, restartování agenta Linuxu a restartování agenta systému Mac.
Komunikace
Komunikace s Azure Pipelines
Komunikace s Azure DevOps Serverem
Agent komunikuje se službou Azure Pipelines nebo Azure DevOps Serverem. Určuje, kterou úlohu je potřeba spustit, a hlásí protokoly a stav úlohy. Agent vždy zahájí tuto komunikaci.
Všechny zprávy agenta posílané službě Azure Pipelines nebo Azure DevOps Server používají protokol HTTP nebo HTTPS podle toho, jak je nakonfigurovaný agent. Tento model vyžádání změn umožňuje nakonfigurovat agenta na různé topologie, jak je znázorněno v následujících příkladech.
Tady je běžný komunikační model mezi agentem a Azure Pipelines nebo Azure DevOps Serverem:
Uživatel zaregistruje agenta ve službě Azure Pipelines nebo Azure DevOps Serveru tak, že ho přidá do fondu agentů. Pokud chcete zaregistrovat agenta v daném fondu agentů, musíte mít roli správce fondu agentů . Role správce fondu agentů je nutná pouze při registraci a není uložená u agenta. Nepoužívá se v žádné další komunikaci mezi agentem a Azure Pipelines nebo Azure DevOps Serverem.
Po dokončení registrace agent stáhne
listener OAuth tokena použije ho ke sledování fronty úloh.Agent naslouchá, zda je do fronty úloh ve službě Azure Pipelines nebo Azure DevOps Server zadána nová žádost o úlohu pomocí dlouhého dotazování HTTP. Pokud je úloha k dispozici, agent stáhne úlohu a
job-specific OAuth token. Azure Pipelines nebo Azure DevOps Server generují krátkodobý token pro vymezenou identitu zadanou v kanálu.Agent používá token pro přístup k prostředkům nebo k jejich úpravě na Azure Pipelines nebo Azure DevOps Serveru v rámci této úlohy. Používá například token pro přístup ke zdrojovému kódu nebo nahrání výsledků testu.
Agent po dokončení úlohy zahodí úlohový token
OAuth, a pak pomocí naslouchacího OAuth tokenu zkontroluje, jestli existuje nový požadavek na úlohu.
Datová část zpráv vyměňovaných mezi agentem a Azure Pipelines nebo Azure DevOps Serverem jsou zabezpečená pomocí asymetrického šifrování.
Každý agent má pár složený z veřejného a privátního klíče. Při registraci probíhá výměna veřejného klíče se serverem. Server používá veřejný klíč k zašifrování datové části úlohy předtím, než ji odešle agentu. Agent dešifruje obsah úlohy pomocí svého privátního klíče.
Tato metoda zabezpečuje tajné údaje uložené v potrubích nebo skupinách proměnných, když se vyměňují s agentem.
Poznámka:
Agent poskytuje podporu pro výstup kódování klienta UTF-8. Pokud ale váš systém nepoužívá kódování UTF-8, může dojít k problémům s výstupem protokolu. Protokoly můžou například obsahovat znaky, které kódování systému nerozpozná, takže se mohou zdát, že jsou zkomolené nebo chybějící symboly.
Komunikace při nasazení na cílové servery
Pokud agenta používáte k nasazení artefaktů na sadu serverů, musí mít přímé a nepřerušované spojení s těmito servery. Fondy agentů hostované Microsoftem mají ve výchozím nastavení připojení k webům a serverům Azure, které běží v Azure.
Pokud vaše prostředky Azure běží ve virtuální síti Azure, můžete získat rozsahy IP adres agenta , ve kterých jsou nasazeni agenti hostovaní Microsoftem. Pak můžete nakonfigurovat pravidla brány firewall pro virtuální síť Azure tak, aby povolovali přístup agentem.
Pokud vaše místní prostředí nemají připojení k fondu agentů spravovanému Microsoftem, což je obvykle případ kvůli zprostředkujícím firewallům, musíte ručně nakonfigurovat agenty hostované na místních počítačích. Agenti musí mít připojení k cílovým místním prostředím a přístup k internetu, aby se mohli připojit ke službě Azure Pipelines nebo Azure DevOps Serveru. Tento proces je ukázaný v následujícím schématu:
Ověřování
Pokud chcete zaregistrovat agenta, musíte být členem role administrátora ve fondu agentů. Identita správce fondu agentů je potřebná pouze v době registrace a není na agentu uchovávána. Nepoužívá se v žádné následné komunikaci mezi agentem a Azure Pipelines nebo Azure DevOps Serverem. Pokud chcete nakonfigurovat agenta, musíte být také místním správcem na serveru.
Při registraci agenta vyberte z následujících typů ověřování. Proces instalace agenta vás vyzve k zadání konkrétních dalších informací požadovaných pro každý typ ověřování. Další informace najdete v tématu Možnosti ověřování agenta v místním prostředí.
- Osobní přístupový token.
- Alternativní: Připojení k Azure DevOps Serveru pomocí základního ověřování Když vyberete Možnost Alternativní, zobrazí se výzva k zadání přihlašovacích údajů.
Agenti Windows mají navíc na Azure DevOps Serveru následující dvě možnosti ověřování.
- Negotiate: Připojte se k Azure DevOps Serveru jako uživatel jiný než přihlášený uživatel prostřednictvím schématu ověřování systému Windows (například New Technology LAN Manager (NTLM) nebo Kerberos. Po výběru možnosti Negotiate se zobrazí výzva k zadání přihlašovacích údajů.
- Integrované: (výchozí) Připojení agenta Windows k Azure DevOps Serveru pomocí přihlašovacích údajů přihlášeného uživatele prostřednictvím schématu ověřování Systému Windows (například NTLM nebo Kerberos). Po výběru této metody se nezobrazí výzva k zadání přihlašovacích údajů.
Důležité
Server musíte nakonfigurovat tak, aby podporoval metodu ověřování, která umožňuje použití alternativního, vyjednávání nebo integrovaného ověřování.
Metoda ověřování, kterou používáte k registraci agenta, se používá pouze během registrace agenta. Další informace o tom, jak agenti komunikují se službou Azure Pipelines po registraci, najdete v tématu Komunikace se službou Azure Pipelines nebo Azure DevOps Serverem.
Interaktivní proces nebo služba
Agenta v místním prostředí můžete spustit buď jako službu, nebo jako interaktivní proces.
Po nakonfigurování agenta doporučujeme, abyste ho nejdřív vyzkoušeli v interaktivním režimu, abyste měli jistotu, že funguje. Pro použití v produkčním prostředí doporučujeme spustit agenta v jednom z následujících režimů, aby spolehlivě zůstal ve spuštěném stavu. Tyto režimy také zajistí, že se v případě restartu počítače agent spustí automaticky.
Jako služba: Ke správě životního cyklu agenta můžete použít správce služeb operačního systému. Prostředí pro automatickou aktualizaci agenta je lepší, když agenta spustíte jako službu.
Jako interaktivní proces s povoleným automatickým přihlášením: V některých případech možná budete muset spustit agenta interaktivně pro produkční použití (například ke spouštění testů uživatelského rozhraní). Když nakonfigurujete agenta tak, aby běžel v tomto režimu, je spořič obrazovky zakázaný. Některé zásady domény vám můžou bránit v povolení automatického přihlášení nebo zakázání spořič obrazovky. V takových případech může být potřeba vyhledat výjimku ze zásad domény nebo spustit agenta na počítači pracovní skupiny, kde se zásady domény nevztahují.
Poznámka:
Existují bezpečnostní rizika, když povolíte automatické přihlášení nebo zakážete spořič obrazovky. Jiní uživatelé můžou mít přístup k počítači a používat účet, který se automaticky přihlásí. Pokud nakonfigurujete agenta tak, aby běžel tímto způsobem, musíte zajistit, aby byl počítač fyzicky chráněný (například umístěný v zabezpečeném zařízení).
Pokud používáte vzdálenou plochu pro přístup k počítači, na kterém běží agent s automatickým přihlášením, zavření vzdálené plochy způsobí, že se počítač uzamkne. Všechny testy uživatelského rozhraní, které běží na tomto agentu, můžou selhat. Chcete-li se tomuto problému vyhnout, použijte příkaz
tsconk odpojení od vzdálené plochy. Příklad:%windir%\System32\tscon.exe 1 /dest:console
Účet agenta
Bez ohledu na to, jestli agenta spouštíte jako službu nebo interaktivně, můžete zvolit, který účet počítače používáte ke spuštění agenta. Volba účtu pro agenta závisí výhradně na potřebách úloh běžících v procesech sestavení a nasazení.
Pokud například chcete spouštět úlohy pomocí ověřování systému Windows pro přístup k externí službě, musí agent běžet pomocí účtu s přístupem k této službě. Pokud ale spouštíte testy uživatelského rozhraní, jako jsou Selenium nebo programové testy uživatelského rozhraní, které vyžadují prohlížeč, prohlížeč se otevře v kontextu účtu agenta.
Ve Windows doporučujeme použít účet služby, jako je síťová služba nebo místní služba. Tato oprávnění účtů jsou omezená a jejich hesla nevyprší, takže agent v průběhu času vyžaduje menší správu.
Tyto přihlašovací údaje se liší od přihlašovacích údajů, které používáte při registraci agenta v Azure Pipelines nebo Azure DevOps Serveru.
Verze a upgrady agenta
Software agenta aktualizujeme každých několik týdnů v Azure Pipelines. Označujeme verzi agenta ve formátu {major}.{minor}. Například pokud je verze agenta 2.1, pak hlavní verze je 2 a podverze je 1.
Agenty hostované Microsoftem udržujeme v aktualizovaném stavu. Pokud se novější verze agenta liší pouze v podverzi, Azure Pipelines může automaticky aktualizovat agenty hostované lokálně. Výchozí nastavení je povolené. Toto nastavení můžete nakonfigurovat ve fondech agentů tak, že vyberete svého agenta a pak vyberete Nastavení. Vyžaduje se upgrade, když funkce platformy nebo jedna z úloh v potrubí potřebuje novější verzi agenta.
Pokud spouštíte agenta v místním prostředí interaktivně nebo pokud je k dispozici novější hlavní verze agenta, budete možná muset agenty upgradovat ručně. Agenty můžete upgradovat na kartě Fondy agentů ve vaší organizaci. Pipeliny nemohou běžet bez kompatibilního agenta.
"Aktualizace samo-hostovaných agentů"
Přejděte donastavení projektu>fondů agentů.
Vyberte fond agentů a pak vyberte Aktualizovat všechny agenty.
Agenty můžete aktualizovat také jednotlivě tak, že v nabídce ... vyberete aktualizačního agenta.
Vyberte Aktualizovat pro potvrzení.
Žádost o aktualizaci se zařadí do fronty pro každého agenta ve fondu a spustí se, když se dokončí některá z aktuálně spuštěných úloh. Upgrade obvykle trvá jen chvíli. Tato doba je dostatečná na stažení nejnovější verze softwaru agenta (přibližně 200 MB), rozbalení a restartování agenta s novou verzí. Stav agentů můžete monitorovat na kartě Agenti .
Software agenta aktualizujeme každou aktualizací Azure DevOps Serveru. Označujeme verzi agenta ve formátu {major}.{minor}. Například, pokud je verze agenta 2.1, pak je hlavní verze 2 a podverze 1.
Pokud má váš Azure DevOps Server novější verzi agenta a tento agent se liší pouze v podverzi, může být obvykle automaticky upgradován. Vyžádání upgradu se provádí, když funkce platformy nebo jedna z úloh, které používáte v potrubí, vyžaduje novější verzi agenta. Od Azure DevOps Serveru 2019 nemusíte čekat na novou verzi serveru. Do vrstvy aplikace můžete nahrát novou verzi agenta a tato verze se nabízí jako upgrade.
Pokud agenta spustíte interaktivně nebo pokud je k dispozici novější hlavní verze agenta, budete možná muset agenty upgradovat ručně. Agenta můžete snadno upgradovat z karty Fondy agentů v rámci kolekce projektů. Pipeliny nemohou běžet bez kompatibilního agenta.
Můžete zobrazit verzi agenta. Přejděte do fondů agentů a vyberte kartu Schopnosti požadovaného agenta, jak je popsáno v části Konfigurace možností agenta.
Pokud chcete aktivovat aktualizaci agenta prostřednictvím kódu programu, můžete použít rozhraní API aktualizace agenta, jak je popsáno v části Jak můžu aktivovat aktualizace agenta programově pro konkrétní fond agentů?
Pro servery bez přístupu k internetu ručně zkopírujte soubor ZIP agenta do následující složky, aby se používal jako místní soubor. Složku Agenti vytvořte, pokud není k dispozici:
- Windows:
%ProgramData%\Microsoft\Azure DevOps\Agents - Linux:
usr/share/Microsoft/Azure DevOps/Agents - macOS:
usr/share/Microsoft/Azure DevOps/Agents
Adresářová struktura agenta
Při spuštění úloh pipeline na agentech se vytvoří adresářová struktura pro ukládání zdrojového kódu, binárek a artefaktů.
Domovský adresář agenta je adresář, ve kterém je agent nainstalovaný. Adresář se obvykle nachází:
-
Agenti hostovaní Microsoftem:
C:\agents\<agent version>ve Windows,/Users/runner/runners/<agent version>v macOS a/home/vsts/agents/<agent version>Linuxu. -
Agenti v místním prostředí:
C:\agentve Windows,Users/<username>/agent(~/agent) v systému macOS a/home/vsts/agentv Linuxu.
Pracovní adresář agenta obsahuje pracovní prostor, ve kterém je uložený výstup zdroje a úloh. Pracovní adresář se obvykle nachází:
-
Agent hostovaný Microsoftem:
C:\ave Windows,/Users/runner/workv macOS a/home/vsts/workLinuxu. -
Agent v místním prostředí:
C:\agent\_workve Windows,~/agent/workv macOS a/home/agent/_workv Linuxu.
Struktura pracovního adresáře je:
- /work directory
- /1 build directory/pipeline workspace
- /s source/working directory
- /b binaries directory
- /a artifacts staging directory
- /TestResults Test results directory
| Adresář | Popis | Příklady | Předdefinované proměnné |
|---|---|---|---|
| Domovský adresář agenta | Kde je agent nainstalovaný. | Agent hostovaný Microsoftem: Windows: C:\agents\3.248.0Linux: /home/vsts/agents/3.248.0macOS: /Users/runner/runners/3.248.0Agent provozovaný na vlastním serveru Windows: C:\agentLinux: home/agent macOS: ~/agent |
Agent.HomeDirectory |
| Pracovní adresář | Kde agent ukládá zdrojový kód, binární soubory a artefakty. | Agent hostovaný Microsoftem: Windows: C:\aLinux: /home/vsts/workmacOS: /Users/runner/workAgent provozovaný na vlastním serveru Windows: C:\agent\_workLinux: /home/agent/_work macOS: ~/agent/work |
Agent.WorkFolderAgent.RootDirectory System.WorkFolder |
| Sestavení adresáře nebo pracovního prostoru | Kde běží úloha v potrubí. | Agent hostovaný Microsoftem: Windows: C:\a\1Linux: /home/vsts/work/1macOS: /Users/runner/work/1Agent provozovaný na vlastním serveru Windows: C:\agent\_work\1Linux: /home/agent/_work/1 macOS: ~/agent/work/1 |
Agent.BuildDirectoryPipeline.Workspace |
s – Zdrojový nebo pracovní adresář |
Obsahuje zdrojový kód vyzvednutý z úložiště. Pokud ve vaší úloze existuje více checkout kroků, zdrojový kód je stažen do adresářů pojmenovaných podle úložišť jako podsložky s. |
Agent hostovaný Microsoftem: Windows: C:\a\1\sLinux: /home/vsts/work/1/smacOS: /Users/runner/work/1/sAgent provozovaný na vlastním serveru Windows: C:\agent\_work\1\sLinux: /home/agent/_work/1/s macOS: ~/agent/work/1/s |
Build.SourcesDirectory Build.RepositoryLocalPathSystem.DefaultWorkingDirectory |
b – adresář binárních souborů |
Obsahuje výstupy sestavení. | Agent hostovaný Microsoftem: Windows: C:\a\1\bLinux: /home/vsts/work/1/bmacOS: /Users/runner/work/1/bAgent provozovaný na vlastním serveru Windows: C:\agent\_work\1\bLinux: /home/agent/_work/1/bmacOS: ~/agent/work/1/b |
Build.BinariesDirectory |
a – přípravný adresář artefaktů |
Obsahuje artefakty sestavení. Je vyčištěno mezi spuštěními na samo-hosovaných agentech. | Agent hostovaný Microsoftem: Windows: C:\a\1\aLinux: /home/vsts/work/1/amacOS: /Users/runner/work/1/aAgent provozovaný na vlastním serveru Windows: C:\agent\_work\1\aLinux: /home/agent/_work/1/a macOS: ~/agent/work/1/a |
Build.StagingDirectoryBuild.ArtifactStagingDirectory System.ArtifactsDirectory |
TestResults adresář |
Obsahuje výsledky testu. Je vyčištěno mezi spuštěními na samo-hosovaných agentech. | Agent hostovaný Microsoftem: Windows: C:\a\1\TestResultsLinux: /home/vsts/work/1/TestResultsmacOS: /Users/runner/work/1/TestResultsAgent provozovaný na vlastním serveru Windows: C:\agent\_work\1\TestResultsLinux: /home/agent/_work/1/TestResults macOS: ~/agent/work/1/TestResults |
Common.TestResultsDirectory |
U agentů hostovaných Microsoftem se při každém spuštění používá jiný agent, takže mezi spuštěními se nezachovává pracovní adresář. Na samohostovaných agentech se při každém spuštění jako výchozí možnost vyčistí pouze adresář úložiště artefaktů a adresáře výsledků testů. Další informace o možnosti vyčištění pracovního prostoru naleznete v tématu Pracovní prostor.
Další informace o předdefinovaných proměnných najdete v tématu předdefinované proměnné.
časté otázky
Jak se ujistím, že mám nejnovější verzi agenta?
Přejděte na kartu Fondy agentů :
Vyberte fond, který obsahuje agenta.
Ujistěte se, že je agent povolený.
Přejděte na kartu schopností:
Na kartě Fondy agentů vyberte požadovaný fond agentů.
Vyberte Agenty a zvolte požadovaného agenta.
Zvolte kartu Schopnosti.
Poznámka:
Agenti hostovaní Microsoftem nezobrazují systémové funkce. Seznam softwaru nainstalovaných na agentech hostovaných Microsoftem najdete v tématu Použití agenta hostovaného Microsoftem.
Na kartě Fondy agentů vyberte požadovaný fond.
Vyberte Agenty a zvolte požadovaného agenta.
Zvolte kartu Schopnosti.
Vyhledejte funkci
Agent.Version. Tuto hodnotu můžete porovnat s nejnovější publikovanou verzí agenta na stránce agenta Azure Pipelines .Každý agent se automaticky aktualizuje, když spustí úlohu, která vyžaduje novější verzi agenta. Pokud chcete některé agenty aktualizovat ručně, klikněte pravým tlačítkem myši na fond a pak vyberte Aktualizovat všechny agenty.
Můžu aktualizovat agenty, kteří jsou součástí fondu Azure DevOps Serveru?
Ano. Od Azure DevOps Serveru 2019 můžete nakonfigurovat server tak, aby hledal soubory balíčků agentů na místním disku. Tato konfigurace přepíše výchozí verzi, která byla součástí serveru v době vydání. Tento scénář platí také v případě, že server nemá přístup k internetu.
Z počítače s přístupem k internetu stáhněte nejnovější verzi souborů balíčku agenta (v .zip nebo .tar.gz formátu) ze stránky vydání agenta Azure Pipelines na GitHubu.
Přeneste stažené soubory balíčků do každé aplikační vrstvy serveru Azure DevOps pomocí zvolené metody (například usb disk, síťový přenos atd.). Umístěte soubory agenta
%ProgramData%\Microsoft\Azure DevOps\Agentsdo složky. Pokud není žádná složka s popiskem Agenti, vytvořte ji.Všechno je připravené. Váš Azure DevOps Server teď používá místní soubory při každé aktualizaci agentů. Každý agent se automaticky aktualizuje, když spustí úlohu, která vyžaduje novější verzi agenta. Pokud ale chcete některé agenty aktualizovat ručně, klikněte pravým tlačítkem na fond a pak zvolte Aktualizovat všechny agenty.
Mají agenti v místním prostředí nějaké výhody výkonu oproti agentům hostovaným Microsoftem?
Většinou ano. Pokud používáte vlastního hostovaného agenta, můžete spouštět přírůstková sestavení. Pokud například definujete potok, který nevyčistí úložiště a neprovádí čistou kompilaci, vaše kompilace obvykle běží rychleji. Tyto výhody nemáte u agenta hostovaného Microsoftem, pokud nepoužíváte funkce, jako je ukládání do mezipaměti, protože agent se po dokončení pipeline zničí.
Spuštění sestavení může zabrat více času u agenta hostovaného Microsoftem. I když přiřazení vaší úlohy agentovi hostovaným Microsoftem často trvá jen pár sekund, v závislosti na zatížení našeho systému může někdy trvat několik minut, než se agent přidělí.
Mohu na stejný počítač nainstalovat několik samoobslužných agentů?
Ano. Tento přístup může být účinný pro agenty, kteří spouštějí úlohy, jež nespotřebovávají mnoho sdílených prostředků. Například to můžete vyzkoušet pro agenty, kteří spouštějí verze, které většinou orchestrují nasazení a na samotném agentovi nevykonávají příliš práce.
Možná zjistíte, že v jiných případech nezískáte velkou efektivitu spuštěním více agentů na stejném počítači. Například nemusí být užitečné pro agenty, kteří spouštějí sestavení, která spotřebovávají velké množství místa na disku a vstupní/výstupní prostředky.
Můžete také narazit na problémy, pokud paralelní úlohy sestavení používají stejné nasazení jednoho nástroje (například balíčky npm). Jedno sestavení může aktualizovat závislost, zatímco jiné sestavení ji používá, což může způsobit nespolehlivé výsledky a chyby.
Co dělají agenti, když jsou zrušeny úlohy potrubí?
U agentů hostovaných Microsoftem budou agenti ukončeni a vráceni do fondu Azure Pipelines.
Samohostovaní agenti:
- Když je pipeline zrušena, agent odešle posloupnost příkazů procesu, který právě provádí aktuální krok.
- První příkaz se odešle s časovým limitem 7,5 sekund.
- Pokud se proces neukončí, odešle se druhý příkaz s vypršením časového limitu 2,5 sekundy.
- Pokud se proces neukončí, agent ho nařídí ukončit.
- Pokud proces ignoruje dvě počáteční žádosti o ukončení, je vynuceně ukončen.
Doba od počátečního požadavku na ukončení je přibližně 10 sekund.
Příkazy vydané k procesu zrušení pipeline se liší v závislosti na operačním systému agenta:
- macOS a Linux: Odeslané příkazy jsou
SIGINT, následovanéSIGTERM, následovanéSIGKILL. - Windows: Příkazy odeslané do procesu jsou
Ctrl+C, následovanéCtrl+Breaka potéProcess.Kill.
Jak můžu aktivovat aktualizace agenta prostřednictvím kódu programu pro konkrétní fond agentů?
Můžete spustit aktualizace agenta pro fond pomocí následujícího rozhraní API:
POST https://dev.azure.com/{organization}/_apis/distributedtask/pools/{poolId}/messages?agentId={agentId}&api-version=6.0
POST https://{server url}/tfs/{collection}/_apis/distributedtask/pools/{poolId}/messages?agentId={agentId}&api-version=6.0
Poznámka:
Další informace najdete v tématu Rozhraní API a mapování verzí Azure DevOps Serveru.
Parametry identifikátoru URI
| Název | V | Požaduje se | Typ | Popis |
|---|---|---|---|---|
agentId |
dotaz | False |
řetězec | Agent, který se má aktualizovat. Pokud není zadaný, aktivuje se aktualizace pro všechny agenty. |
organization |
cesta | True |
řetězec | Název organizace Azure DevOps. |
poolId |
cesta | True |
celé číslo typu int32 | Fond agentů, který se má použít. |
api-version |
dotaz | False |
řetězec | Verze rozhraní API, která se má použít. Pokud chcete použít tuto verzi rozhraní API, měla by být hodnota nastavena na 6.0. |
Pokud chcete aktivovat aktualizaci agenta, text požadavku by měl být prázdný.
Agent Azure Pipelines je open source na GitHubu.
Související obsah
Další informace o agentech najdete v následujících modulech z výukové cesty Build applications with Azure DevOps: