Agenti Linuxu v místním prostředí (2.x)

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Důležité

Tento článek obsahuje pokyny k používání softwaru agenta verze 2.x se serverem Azure DevOps a sadou TFS. Pokud používáte Azure DevOps Services, podívejte se na agenty Linuxu v místním prostředí.

Upozornění

Tento článek odkazuje na CentOS, linuxovou distribuci, která se blíží stavu Konec životnosti (EOL). Zvažte své použití a plánování odpovídajícím způsobem. Další informace najdete v doprovodných materiálech CentOS End Of Life.

Ke spuštění úloh budete potřebovat aspoň jednoho agenta. Agent pro Linux může sestavovat a nasazovat různé druhy aplikací, včetně aplikací v Javě a Androidu. Podporujeme Ubuntu, Red Hat a CentOS.

Než začnete:

  • Pokud jsou vaše kanály v Azure Pipelines a agent hostovaný Microsoftem splňuje vaše potřeby, můžete přeskočit nastavení privátního agenta Linuxu.
  • Jinak jste přišli na správné místo pro nastavení agenta v Linuxu. Pokračujte k další části.

Informace o agentech

Pokud už víte, co je agent a jak funguje, můžete přejít přímo do následujících částí. Pokud byste ale chtěli další informace o tom, co dělají a jak fungují, podívejte se na agenty Azure Pipelines.

Kontrola požadavků

Agent je založený na .NET Core 3.1. Tento agent můžete spustit v několika distribucích Linuxu. Podporujeme následující podmnožinu podporovaných distribucí .NET Core:

  • x64
    • CentOS 7, 6 (viz poznámka 1)
    • Debian 9
    • Fedora 30, 29
    • Linux Mint 18, 17
    • openSUSE 42.3 nebo novější
    • Oracle Linux 8, 7
    • Red Hat Enterprise Linux 8, 7, 6 (viz poznámka 1)
    • SUSE Enterprise Linux 12 SP2 nebo novější
    • Ubuntu 20.04, 18.04, 16.04
    • Azure Linux 1.0 (viz poznámka 3)
  • ARM32 (viz poznámka 2)
    • Debian 9
    • Ubuntu 18.04
  • ARM64
    • Debian 9
    • Ubuntu 21.04, 20.04, 18.04

Poznámka:

Poznámka 1: RHEL 6 a CentOS 6 vyžadují instalaci specializované rhel.6-x64 verze agenta.

Důležité

Od února 2023 už žádné další verze agenta nepodporují RHEL 6. Další informace najdete v tématu Zákazníci používající Red Hat Enterprise Linux (RHEL) 6 by měli upgradovat operační systém na agentech v místním prostředí.

Poznámka:

Poznámka 2: Vyžaduje se instrukční sada ARM ARMv7 nebo vyšší. Spuštěním uname -a zobrazíte instrukční sadu distribucí Linuxu.

Poznámka:

Distribuce operačního systému Azure s Linuxem má v současné době částečnou podporu od agenta Azure DevOps. Poskytujeme mechanismus pro detekci této distribuce operačního systému ve installdependencies.sh skriptu, ale kvůli nedostatku podpory na straně .Net Core jsme nemohli zaručit plnou funkčnost všech funkcí agenta při spuštění v této distribuci operačního systému.

Bez ohledu na vaši platformu budete muset nainstalovat Git 2.9.0 nebo vyšší. Důrazně doporučujeme nainstalovat nejnovější verzi Gitu.

Poznámka:

Instalační program agenta ví, jak zkontrolovat další závislosti. Tyto závislosti můžete nainstalovat na podporované linuxové platformy spuštěním ./bin/installdependencies.sh v adresáři agenta.

Mějte na paměti, že některé z těchto závislostí vyžadovaných rozhraním .NET Core se načítají z webů třetích stran, například packages.efficios.com. installdependencies.sh Před spuštěním skriptu zkontrolujte skript a ujistěte se, že všechny odkazované weby třetích stran jsou přístupné z počítače s Linuxem.

Ujistěte se také, že jsou všechna požadovaná úložiště připojená k příslušnému správci balíčků používanému ve installdependencies.sh (napříkladapt).zypper

V případě problémů s instalací závislostí (například závislost nebyla nalezena v úložišti nebo při načítání souboru indexu úložiště) můžete kontaktovat vlastníka distribuce a požádat ho o další podporu.

Subversion

Pokud vytváříte z úložiště Subversion, musíte na počítač nainstalovat klienta Subversion.

Při prvním spuštění instalace agenta byste měli spustit ručně. Jakmile zjistíte, jak agenti fungují, nebo pokud chcete automatizovat nastavení mnoha agentů, zvažte použití bezobslužné konfigurace.

TFVC

Pokud budete používat TFVC, budete potřebovat také sadu Oracle Java JDK 1.6 nebo vyšší. (Oracle JRE a OpenJDK pro tento účel nestačí.)

Modul plug-in TEE se používá pro funkce TFVC. Má smlouvu EULA, kterou budete muset přijmout během konfigurace, pokud plánujete pracovat s TFVC.

Vzhledem k tomu, že modul plug-in TEE už není udržovaný a obsahuje některé zastaralé závislosti Java, od agenta 2.198.0 už není součástí distribuce agenta. Modul plug-in TEE se ale stáhne během provádění úlohy rezervace, pokud si rezervovat úložiště TFVC. Modul plug-in TEE se po spuštění úlohy odebere.

Poznámka:

Poznámka: Vzhledem k tomuto mechanismu stahování si můžete všimnout, že úloha rezervace trvá dlouhou dobu.

Pokud je agent spuštěný za proxy serverem nebo bránou firewall, budete muset zajistit přístup k následující lokalitě: https://vstsagenttools.blob.core.windows.net/ Z této adresy se stáhne modul plug-in TEE.

Pokud používáte agenta v místním prostředí a dochází k problémům se stahováním TEE, můžete TEE nainstalovat ručně:

  1. Nastavte DISABLE_TEE_PLUGIN_REMOVAL prostředí nebo proměnnou kanálu na truehodnotu . Tato proměnná brání agentu v odebrání modulu plug-in TEE po rezervaci úložiště TFVC.
  2. Stáhněte si TEE-CLC verze 14.135.0 ručně z Team Exploreru všude na GitHubu.
  3. Extrahujte obsah TEE-CLC-14.135.0 složky do <agent_directory>/externals/teesložky .

Příprava oprávnění

Zabezpečení informací pro agenty v místním prostředí

Uživatel, který konfiguruje agenta, potřebuje oprávnění správce fondu, ale uživatel, který agent spouští, ne.

Složky řízené agentem by měly být omezeny na co nejvíce uživatelů a obsahují tajné kódy, které by mohly být dešifrovány nebo exfiltrovány.

Agent Azure Pipelines je softwarový produkt navržený ke spuštění kódu, který stáhne z externích zdrojů. Ze své podstaty může být cílem útoků RCE (Remote Code Execution).

Proto je důležité vzít v úvahu model hrozeb, který obklopuje každé individuální použití agentů Pipelines, k provádění práce a rozhodnout, jaká jsou minimální oprávnění, která by mohla být udělena uživateli, na kterém běží agent, pro uživatele, kteří mají oprávnění k definici kanálu, úložiště Git, kde je yaml uložený, nebo skupinu uživatelů, kteří řídí přístup k fondu pro nové kanály.

Osvědčeným postupem je, aby identita spuštěná agenta byla jiná než identita s oprávněními pro připojení agenta k fondu. Uživatel, který generuje přihlašovací údaje (a další soubory související s agenty), se liší od uživatele, který je potřebuje přečíst. Proto je bezpečnější pečlivě zvážit přístup udělený samotnému počítači agenta a složky agentů, které obsahují citlivé soubory, jako jsou protokoly a artefakty.

Dává smysl udělit přístup ke složce agenta pouze správcům DevOps a identitě uživatele, která spouští proces agenta. Správa istrátory možná budou muset prozkoumat systém souborů, aby porozuměli chybám sestavení nebo získali soubory protokolu, aby bylo možné hlásit selhání Azure DevOps.

Rozhodněte se, kterého uživatele použijete.

Jako jednorázový krok musíte agenta zaregistrovat. Tento postup musí provést někdo s oprávněním ke správě fronty agentů. Agent nebude používat přihlašovací údaje této osoby v každodenní operaci, ale musí dokončit registraci. Přečtěte si další informace o tom, jak agenti komunikují.

Ověřování pomocí tokenu PAT

  1. Přihlaste se pomocí uživatelského účtu, který plánujete použít na webovém portálu Azure DevOps Serveru (https://{your-server}/DefaultCollection/).
  1. Přihlaste se pomocí uživatelského účtu, který plánujete použít ve vaší organizaci Azure DevOps (https://dev.azure.com/{your_organization}).
  1. Na domovské stránce otevřete svůj profil. Přejděte na podrobnosti o zabezpečení.

    Přejděte na podrobnosti o zabezpečení.

  2. Vytvořte osobní přístupový token.

    Vytvořte osobní přístupový token.

    Poznámka:

    Pokud konfigurujete agenta skupiny nasazení nebo pokud se při registraci prostředku prostředí virtuálního počítače zobrazí chyba, musíte nastavit obor PAT na všechny přístupné organizace. Snímek obrazovky s nastavením oboru PAT pro všechny přístupné organizace

  1. Na domovské stránce otevřete nastavení uživatele a pak vyberte Osobní přístupové tokeny.

    Přejděte na podrobnosti o zabezpečení.

  2. Vytvořte osobní přístupový token.

    Vytvořte osobní přístupový token.

  1. Pro obor vyberte Fondy agentů (číst, spravovat) a ujistěte se, že jsou všechna ostatní pole nezaškrtnutá. Pokud se jedná o agenta skupiny nasazení, vyberte pro obor skupinu nasazení (čtení, správu) a ujistěte se, že jsou všechna ostatní pole nezaškrtnutá.

    Výběrem možnosti Zobrazit všechny obory v dolní části okna Pro vytvoření nového okna tokenu patu zobrazíte úplný seznam oborů.

  2. Zkopírujte token. Tento token použijete při konfiguraci agenta.

Potvrzení, že má uživatel oprávnění

Ujistěte se, že uživatelský účet, který budete používat, má oprávnění k registraci agenta.

Je uživatel vlastníkem organizace Azure DevOps nebo správcem TFS nebo Azure DevOps Serveru? Přestaňte tady, máte oprávnění.

Jinak:

  1. Otevřete prohlížeč a přejděte na kartu Fondy agentů pro vaši organizaci Azure Pipelines nebo Azure DevOps Server nebo server TFS:

    1. Přihlaste se ke své organizaci (https://dev.azure.com/{yourorganization}).

    2. Zvolte Azure DevOps, nastavení organizace.

      Zvolte nastavení organizace.

    3. Zvolte fondy agentů.

      Zvolte kartu Fondy agentů.

    1. Přihlaste se ke své kolekci projektů (http://your-server/DefaultCollection).

    2. Zvolte Azure DevOps, nastavení kolekce.

      Zvolte nastavení kolekce.

    3. Zvolte fondy agentů.

      Zvolte fondy agentů.

    1. Zvolte Azure DevOps, nastavení kolekce.

      Nastavení kolekce, 2019.

    2. Zvolte fondy agentů.

      Zvolte fondy agentů, 2019.

  2. Vyberte fond na pravé straně stránky a potom klikněte na Zabezpečení.

  3. Pokud se uživatelský účet, který budete používat, nezobrazuje, získejte správce, aby ho přidal. Správcem může být správce fondu agentů, vlastník organizace Azure DevOps nebo správce TFS nebo Azure DevOps Serveru.

    Pokud se jedná o agenta skupiny nasazení, může být správcem skupiny nasazení, vlastníkem organizace Azure DevOps nebo správcem TFS nebo Azure DevOps Serveru.

    Uživatele můžete přidat do role správce skupiny nasazení na kartě Zabezpečení na stránce Skupiny nasazení v Azure Pipelines.

Poznámka:

Pokud se zobrazí podobná zpráva: Omlouváme se, ale identitu se nám nepovedlo přidat. Zkuste jinou identitu. Pravděpodobně jste postupovali podle výše uvedených kroků pro vlastníka organizace, TFS nebo správce Serveru Azure DevOps. Nemusíte dělat nic. už máte oprávnění ke správě fronty agentů.

Stažení a konfigurace agenta

Azure Pipelines

  1. Přihlaste se k počítači pomocí účtu, pro který jste připravili oprávnění, jak je vysvětleno výše.

  2. Ve webovém prohlížeči se přihlaste ke službě Azure Pipelines a přejděte na kartu Fondy agentů:

    1. Přihlaste se ke své organizaci (https://dev.azure.com/{yourorganization}).

    2. Zvolte Azure DevOps, nastavení organizace.

      Zvolte nastavení organizace.

    3. Zvolte fondy agentů.

      Zvolte kartu Fondy agentů.

    1. Přihlaste se ke své kolekci projektů (http://your-server/DefaultCollection).

    2. Zvolte Azure DevOps, nastavení kolekce.

      Zvolte nastavení kolekce.

    3. Zvolte fondy agentů.

      Zvolte fondy agentů.

    1. Zvolte Azure DevOps, nastavení kolekce.

      Nastavení kolekce, 2019.

    2. Zvolte fondy agentů.

      Zvolte fondy agentů, 2019.

  3. Vyberte výchozí fond, vyberte kartu Agenti a zvolte Nový agent.

  4. V dialogovém okně Získat agenta klikněte na Linux.

  5. V levém podokně vyberte konkrétní příchuť. Pro většinu linuxových distribucí nabízíme x64 nebo ARM.

  6. V pravém podokně klikněte na tlačítko Stáhnout .

  7. Postupujte podle pokynů na stránce.

  8. Rozbalte agenta do libovolného adresáře. cd do daného adresáře a spusťte ./config.sh.

Azure DevOps Server 2019 a Azure DevOps Server 2020

  1. Přihlaste se k počítači pomocí účtu, pro který jste připravili oprávnění, jak je vysvětleno výše.

  2. Ve webovém prohlížeči se přihlaste k Azure DevOps Serveru 2019 a přejděte na kartu Fondy agentů:

    1. Přihlaste se ke své organizaci (https://dev.azure.com/{yourorganization}).

    2. Zvolte Azure DevOps, nastavení organizace.

      Zvolte nastavení organizace.

    3. Zvolte fondy agentů.

      Zvolte kartu Fondy agentů.

    1. Přihlaste se ke své kolekci projektů (http://your-server/DefaultCollection).

    2. Zvolte Azure DevOps, nastavení kolekce.

      Zvolte nastavení kolekce.

    3. Zvolte fondy agentů.

      Zvolte fondy agentů.

    1. Zvolte Azure DevOps, nastavení kolekce.

      Nastavení kolekce, 2019.

    2. Zvolte fondy agentů.

      Zvolte fondy agentů, 2019.

  3. Klikněte na Stáhnout agenta.

  4. V dialogovém okně Získat agenta klikněte na Linux.

  5. V levém podokně vyberte konkrétní příchuť. Pro většinu linuxových distribucí nabízíme x64 nebo ARM.

  6. V pravém podokně klikněte na tlačítko Stáhnout .

  7. Postupujte podle pokynů na stránce.

  8. Rozbalte agenta do libovolného adresáře. cd do daného adresáře a spusťte ./config.sh.

Adresa URL serveru

Azure Pipelines: https://dev.azure.com/{your-organization}

Azure DevOps Server 2019: https://{your_server}/DefaultCollection

Authentication type

Azure Pipelines

Zvolte PAT a vložte token PAT, který jste vytvořili , do okna příkazového řádku.

Poznámka:

Při použití pat jako metody ověřování se token PAT používá pouze pro počáteční konfiguraci agenta. Přečtěte si další informace o komunikaci se službou Azure Pipelines nebo TFS.

TFS nebo Azure DevOps Server

Důležité

Ujistěte se, že je server nakonfigurovaný tak, aby podporoval metodu ověřování, kterou chcete použít.

Když nakonfigurujete agenta pro připojení k TFS, máte následující možnosti:

  • Alternativní Připojení k TFS nebo Azure DevOps Serveru pomocí základního ověřování. Po výběru možnosti Alternativní se zobrazí výzva k zadání přihlašovacích údajů.

  • Integrované není podporováno v systému macOS nebo Linux.

  • Vyjednat (výchozí) Připojení k TFS nebo Azure DevOps Serveru jako uživatel jiný než přihlášený uživatel prostřednictvím schématu ověřování Systému Windows, jako je NTLM nebo Kerberos. Po výběru možnosti Negotiate se zobrazí výzva k zadání přihlašovacích údajů.

  • Pat se podporuje jenom v Azure Pipelines a TFS 2017 a novějších. Po výběru pat vložte token PAT, který jste vytvořili , do okna příkazového řádku. Pokud váš Azure DevOps Server nebo instance TFS a počítač agenta není v důvěryhodné doméně, použijte token PAT. Ověřování PAT zpracovává váš Azure DevOps Server nebo instance TFS místo řadiče domény.

Poznámka:

Při použití pat jako metody ověřování se token PAT používá pouze pro počáteční konfiguraci agenta na Azure DevOps Serveru a novějších verzích TFS. Přečtěte si další informace o komunikaci se službou Azure Pipelines nebo TFS.

Interaktivní spuštění

Pokyny ke spuštění agenta v interaktivním režimu nebo jako službě najdete v tématu Agenti: Interactive vs.

Interaktivní spuštění agenta:

  1. Pokud jste agenta spustili jako službu, odinstalujte ji.

  2. Spusťte agenta.

    ./run.sh
    

Pokud chcete agenta restartovat, stiskněte Ctrl+C a spusťte ho a restartujte run.sh ho.

Pokud chcete použít svého agenta, spusťte úlohu pomocí fondu agenta. Pokud jste nevybrali jiný fond, váš agent bude ve výchozím fondu.

Spustit jednou

Pro agenty nakonfigurované tak, aby běželi interaktivně, můžete se rozhodnout, že agent přijme jenom jednu úlohu. Spuštění v této konfiguraci:

./run.sh --once

Agenti v tomto režimu přijmou pouze jednu úlohu a pak se plynule zprovozní (užitečné pro spuštění v Dockeru ve službě, jako je Azure Container Instances).

Spustit jako systémovou službu

Pokud je váš agent spuštěný v těchto operačních systémech, můžete agenta spustit jako systemd službu:

  • Ubuntu 16 LTS nebo novější
  • Red Hat 7.1 nebo novější

Poskytujeme ukázkový ./svc.sh skript pro spuštění a správu agenta jako systemd služby. Tento skript se vygeneruje po konfiguraci agenta. Doporučujeme, abyste skript před spuštěním zkontrolovali a v případě potřeby ho aktualizovali.

Některé důležité upozornění:

  • Pokud agenta spustíte jako službu, nemůžete ji spustit jako root uživatele.
  • Uživatelé se systémem SELinux nahlásili potíže se zadaným svc.sh skriptem. Jako výchozí bod se podívejte na tento problém s agentem. SELinux není oficiálně podporovaná konfigurace.

Poznámka:

Pokud máte jinou distribuci nebo pokud dáváte přednost jiným přístupům, můžete použít jakýkoli druh mechanismu služby, který dáváte přednost. Viz Soubory služby.

Příkazy

Změna do adresáře agenta

Pokud jste například nainstalovali podsložku myagent domovského adresáře:

cd ~/myagent$

Instalace

Příkaz:

sudo ./svc.sh install [username]

Tento příkaz vytvoří soubor služby, který odkazuje na ./runsvc.sh. Tento skript nastaví prostředí (další podrobnosti níže) a spustí hostitele agentů. Pokud username parametr není zadán, uživatelské jméno se převezme z proměnné prostředí $SUDO_USER, která je nastavena příkazem sudo. Tato proměnná se vždy rovná jménu uživatele, který příkaz vyvolal sudo .

Spustit

sudo ./svc.sh start

Stav

sudo ./svc.sh status

Zastavit

sudo ./svc.sh stop

Odinstalace produktu

Před odinstalací byste měli přestat.

sudo ./svc.sh uninstall

Aktualizace proměnných prostředí

Když službu nakonfigurujete, pořídí snímek některých užitečných proměnných prostředí pro aktuálního přihlašovacího uživatele, jako je PATH, LANG, JAVA_HOME, ANT_HOME a MYSQL_PATH. Pokud potřebujete aktualizovat proměnné (například po instalaci nového softwaru):

./env.sh
sudo ./svc.sh stop
sudo ./svc.sh start

Snímek proměnných prostředí je uložený v .env souboru (PATH je uložen v ) v .pathkořenovém adresáři agenta. Tyto soubory můžete také změnit přímo tak, aby se změny proměnných prostředí použily.

Před spuštěním služby spusťte pokyny.

Můžete také spustit vlastní pokyny a příkazy, které se spustí při spuštění služby. Můžete například nastavit prostředí nebo volat skripty.

  1. Upravit runsvc.sh.

  2. Nahraďte následující řádek pokyny:

    # insert anything to setup env when running as a service
    

Soubory služeb

Při instalaci služby se nasadí některé soubory služby.

systémový soubor služby

Vytvoří se systémový soubor služby:

/etc/systemd/system/vsts.agent.{tfs-name}.{agent-name}.service

Například jste nakonfigurovali agenta (viz výše) s názvem our-linux-agent. Soubor služby bude následující:

  • Azure Pipelines: název vaší organizace. Pokud se například připojíte, https://dev.azure.com/fabrikamnázev služby by byl /etc/systemd/system/vsts.agent.fabrikam.our-linux-agent.service

  • TFS nebo Azure DevOps Server: název místního serveru. Pokud se například připojíte, http://our-server:8080/tfsnázev služby by byl /etc/systemd/system/vsts.agent.our-server.our-linux-agent.service

sudo ./svc.sh install vygeneruje tento soubor z této šablony: ./bin/vsts.agent.service.template

Soubor .service

sudo ./svc.sh start vyhledá službu čtením .service souboru, který obsahuje název souboru systémové služby popsaného výše.

Alternativní mechanismy služeb

Tento skript poskytujeme ./svc.sh pohodlný způsob, jak spustit a spravovat agenta jako systémovou službu. Můžete ale použít jakýkoli druh mechanismu služby, který dáváte přednost (například inicializaci nebo upstart).

Pomocí výše popsané šablony můžete usnadnit generování dalších typů souborů služby.

Použití cgroup k zabránění selhání agenta

Je důležité se vyhnout situacím, kdy agent selže nebo se stane nepoužitelným, protože jinak agent nemůže streamovat protokoly kanálu nebo hlásit stav kanálu zpět na server. Můžete zmírnit riziko tohoto druhu problému způsobené vysokým zatížením paměti pomocí cgroups a nižší oom_score_adj. Jakmile to uděláte, Linux uvolní systémovou paměť z procesů úloh kanálu před uvolněním paměti z procesu agenta. Zjistěte, jak nakonfigurovat skupiny cgroup a skóre OOM.

Nahrazení agenta

Pokud chcete nahradit agenta, postupujte podle pokynů ke stažení a konfiguraci kroků agenta znovu.

Když nakonfigurujete agenta se stejným názvem jako agent, který už existuje, zobrazí se dotaz, jestli chcete nahradit existujícího agenta. Pokud odpovíte Y, ujistěte se, že agenta odeberete (viz níže), který nahrazujete. Jinak se po několika minutách konfliktů jeden z agentů vypne.

Odebrání a opětovné konfigurace agenta

Odebrání agenta:

  1. Zastavte a odinstalujte službu, jak je vysvětleno výše.

  2. Odeberte agenta.

    ./config.sh remove
    
  3. Zadejte vaše pověření.

Po odebrání agenta ho můžete znovu nakonfigurovat.

Bezobslužná konfigurace

Agenta je možné nastavit ze skriptu bez zásahu člověka. Musíte předat --unattended odpovědi na všechny otázky.

Pokud chcete nakonfigurovat agenta, musí znát adresu URL vaší organizace nebo kolekce a přihlašovací údaje někoho, kdo má oprávnění k nastavení agentů. Všechny ostatní odpovědi jsou volitelné. Libovolný parametr příkazového řádku lze místo toho zadat pomocí proměnné prostředí: zadejte jeho název velkým a předpřipraveným VSTS_AGENT_INPUT_. Například VSTS_AGENT_INPUT_PASSWORD místo zadávání --password.

Požadované možnosti

  • --unattended – Instalace agenta nezobrazí výzvu k zadání informací a všechna nastavení musí být k dispozici na příkazovém řádku.
  • --url <url> - Adresa URL serveru. Příklad: https://dev.azure.com/myorganization nebo http://my-azure-devops-server:8080/tfs
  • --auth <type> – typ ověřování. Platné hodnoty jsou:
    • pat (Token pat) – PAT je jediné schéma, které funguje s Azure DevOps Services.
    • negotiate (Kerberos nebo NTLM)
    • alt (Základní ověřování)
    • integrated (Výchozí přihlašovací údaje windows)

Možnosti ověřování

  • Pokud jste zvolili --auth pat:
    • --token <token> – určuje váš osobní přístupový token.
    • PAT je jediné schéma, které funguje s Azure DevOps Services.
  • Pokud jste zvolili --auth negotiate nebo --auth alt:
    • --userName <userName> – určuje uživatelské jméno systému Windows ve formátu domain\userName nebo userName@domain.com
    • --password <password> – určuje heslo.

Názvy fondů a agentů

  • --pool <pool> – název fondu pro agenta, který se má připojit
  • --agent <agent> – název agenta
  • --replace - nahraďte agenta ve fondu. Pokud jiný agent naslouchá stejným názvem, začne selhává s konfliktem.

Nastavení agenta

  • --work <workDirectory> – pracovní adresář, ve kterém jsou uložena data úlohy. Výchozí hodnota je _work pod kořenem adresáře agenta. Pracovní adresář vlastní daný agent a neměl by být sdílen mezi několika agenty.
  • --acceptTeeEula – přijměte Licenční smlouvu team Exploreru pro všechny koncové uživatele (jenom macOS a Linux).
  • --disableloguploads – streamujte ani neodesílejte výstup protokolu konzoly na server. Místo toho je můžete po dokončení úlohy načíst ze systému souborů hostitele agenta.

Spuštění jen pro Windows

  • --runAsService – nakonfigurujte agenta tak, aby běžel jako služba Systému Windows (vyžaduje oprávnění správce).
  • --runAsAutoLogon – konfigurace automatického přihlášení a spuštění agenta při spuštění (vyžaduje oprávnění správce)
  • --windowsLogonAccount <account> - používá se nebo --runAsService--runAsAutoLogon k určení uživatelského jména systému Windows ve formátu domain\userName nebo userName@domain.com
  • --windowsLogonPassword <password> – používá se s přihlašovacím heslem --runAsService systému --runAsAutoLogon Windows (nevyžaduje se pro účty spravované služby skupiny a předdefinované účty systému Windows, jako je NT AUTHORITY\NETWORK SERVICE).
  • --enableservicesidtypeunrestricted – používá se --runAsService ke konfiguraci agenta s typem SID služby jako SERVICE_SID_TYPE_UNRESTRICTED (vyžaduje oprávnění správce).
  • --overwriteAutoLogon - používá se --runAsAutoLogon k přepsání existujícího automatického přihlášení na počítači.
  • --noRestart – používá se --runAsAutoLogon k zastavení restartování hostitele po dokončení konfigurace agenta.

Řešení potíží s konfigurací agenta runAsAutoLogon s možností

Konfigurace agenta s runAsAutoLogon možností spustí agenta pokaždé po restartování počítače. Pokud se agent po restartování počítače nespustí, proveďte další kroky.

Pokud už byl agent na počítači nakonfigurovaný

Před změnou konfigurace agenta je nutné odebrat starou konfiguraci agenta, takže zkuste spustit tento příkaz ze složky agenta:

.\config.cmd remove --auth 'PAT' --token '<token>'

Po spuštění příkazu zkontrolujte, jestli se agent odebral z fondu agentů:

<Azure DevOps organization> / <Project> / Settings / Agent pools / <Agent Pool> / Agents

Pokud agenta neodebrali, odeberte ho z fondu agentů ručně spuštěním příkazu.

Potom zkuste agenta překonfigurovat spuštěním tohoto příkazu ze složky 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>'

Zadejte název agenta (libovolný konkrétní jedinečný název) a zkontrolujte, jestli se tento agent po změně konfigurace zobrazil ve vašem fondu agentů.

Bude mnohem lepší rozbalit archiv agenta (který lze stáhnout zde) a spustit tento příkaz z nové rozbalené složky agenta.

Zkontrolujte, jestli je klíč registru Windows nahraný a správně uložený.

Spuštěním whoami /user příkazu získejte .<sid> Otevřete Registry Editor a postupujte podle cesty:

Computer\HKEY_USERS\<sid>\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

Zkontrolujte, jestli klíč neexistuje VSTSAgent . Odstraňte tento klíč, pokud existuje, zavřete Registry Editor a nakonfigurujte agenta spuštěním .\config.cmd příkazu (bez args) ze složky agenta. Před zodpovězením otázky Enter Restart the machine at a later time?znovu otevřete Registry Editor a zkontrolujte, jestli VSTSAgent se klíč zobrazil. Stisknutím klávesy Enter odpovězte na otázku a zkontrolujte, jestli VSTSAgent po restartování počítače zůstane na svém místě.

Zkontrolujte, jestli klíče registru Windows na vašem počítači fungují správně.

Vytvořte autorun.cmd soubor, který obsahuje následující řádek: echo "Hello from AutoRun!". Otevřete Registry Editor a vytvořte v cestě nad novou dvojicí klíč-hodnota s klíčem AutoRun a hodnotou.

C:\windows\system32\cmd.exe /D /S /C start "AutoRun" "D:\path\to\autorun.cmd"

Restartujte počítač. Máte problém s klíči registru Systému Windows, pokud se zpráva nezobrazí v okně konzoly Hello from AutoRun! .

Pouze skupina nasazení

  • --deploymentGroup – nakonfigurujte agenta jako agenta skupiny nasazení.
  • --deploymentGroupName <name> – používá se --deploymentGroup k určení skupiny nasazení, ke které se má agent připojit.
  • --projectName <name> – používá se --deploymentGroup k nastavení názvu projektu.
  • --addDeploymentGroupTags – používá se --deploymentGroup k označení, že by měly být přidány značky skupiny nasazení.
  • --deploymentGroupTags <tags> – používá se --addDeploymentGroupTags k zadání čárkami odděleného seznamu značek pro agenta skupiny nasazení – například "web, db".

Pouze prostředí

  • --addvirtualmachineresourcetags – používá se k označení, že by měly být přidány značky prostředků prostředí.
  • --virtualmachineresourcetags <tags> – používá se --addvirtualmachineresourcetags k určení čárkami odděleného seznamu značek pro agenta prostředků prostředí – například "web, db".

./config.sh --help vždy uvádí nejnovější požadované a volitelné odpovědi.

Diagnostika

Pokud máte potíže s místním agentem, můžete zkusit spustit diagnostiku. Po konfiguraci agenta:

./run.sh --diagnostics

Tím se projde diagnostická sada, která vám může pomoct s řešením tohoto problému. Funkce diagnostiky je dostupná od verze agenta 2.165.0.

Nápověda k dalším možnostem

Další informace o dalších možnostech:

./config.sh --help

Nápověda poskytuje informace o alternativách ověřování a bezobslužné konfiguraci.

Možnosti

Možnosti vašeho agenta se katalogují a inzerují ve fondu, aby se k němu přiřadily jenom buildy a vydané verze. Viz možnosti agenta sestavení a vydání.

V mnoha případech budete muset po nasazení agenta nainstalovat software nebo nástroje. Obecně byste měli na agenty nainstalovat jakýkoli software a nástroje, které používáte na vývojovém počítači.

Pokud například sestavení obsahuje úlohu npm, sestavení se nespustí, pokud ve fondu není nainstalovaný agent sestavení.

Důležité

Možnosti zahrnují všechny proměnné prostředí a hodnoty, které jsou nastavené při spuštění agenta. Pokud se některá z těchto hodnot v době, kdy je agent spuštěný, musí být restartován, aby se nové hodnoty vybraly. Po instalaci nového softwaru do agenta je nutné restartovat agenta, aby se nová funkce zobrazila ve fondu, aby bylo možné sestavení spustit.

Pokud chcete vyloučit proměnné prostředí jako možnosti, můžete je určit nastavením proměnné VSO_AGENT_IGNORE prostředí se seznamem proměnných oddělených čárkami, které chcete ignorovat.

Často kladené dotazy

Návody se ujistěte, že mám nejnovější verzi agenta?

  1. Přejděte na kartu Fondy agentů:

    1. Přihlaste se ke své organizaci (https://dev.azure.com/{yourorganization}).

    2. Zvolte Azure DevOps, nastavení organizace.

      Zvolte nastavení organizace.

    3. Zvolte fondy agentů.

      Zvolte kartu Fondy agentů.

    1. Přihlaste se ke své kolekci projektů (http://your-server/DefaultCollection).

    2. Zvolte Azure DevOps, nastavení kolekce.

      Zvolte nastavení kolekce.

    3. Zvolte fondy agentů.

      Zvolte fondy agentů.

    1. Zvolte Azure DevOps, nastavení kolekce.

      Nastavení kolekce, 2019.

    2. Zvolte fondy agentů.

      Zvolte fondy agentů, 2019.

  2. Klikněte na fond, který obsahuje agenta.

  3. Ujistěte se, že je agent povolený.

  4. Přejděte na kartu schopností:

    1. Na kartě Fondy agentů vyberte požadovaný fond agentů.

      Ve fondech agentů vyberte požadovaný fond agentů.

    2. Vyberte Agenty a zvolte požadovaného agenta.

      Vyberte Agenty a zvolte agenta.

    3. Zvolte kartu Schopnosti.

      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.

    1. Na kartě Fondy agentů vyberte požadovaný fond.

      Vyberte požadovaný fond.

    2. Vyberte Agenty a zvolte požadovaného agenta.

      Vyberte Agenty a zvolte požadovaného agenta.

    3. Zvolte kartu Schopnosti.

      Karta Možnosti agenta

    1. Na kartě Fondy agentů vyberte požadovaný fond.

      Vyberte požadovanou kartu 2019.

    2. Vyberte Agenty a zvolte požadovaného agenta.

      Zvolte požadovaného agenta 2019.

    3. Zvolte kartu Schopnosti.

      Zvolte kartu Možnosti, 2019.

  5. Agent.Version Vyhledejte možnost. Tuto hodnotu můžete zkontrolovat u nejnovější publikované verze agenta. Podívejte se na agenta Azure Pipelines a podívejte se na stránku s nejvyšším uvedeným číslem verze.

  6. 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 na fond a 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.

  1. Z počítače s přístupem k internetu stáhněte nejnovější verzi souborů balíčku agenta (v .zip nebo .tar.gz formuláři) ze stránky vydání agenta Azure Pipelines Na GitHubu.

  2. Přeneste stažené soubory balíčků do každé aplikační vrstvy serveru Azure DevOps pomocí zvolené metody (jako je usb disk, síťový přenos atd.). Soubory agenta umístěte do následující složky:

  • Windows: %ProgramData%\Microsoft\Azure DevOps\Agents
  • Linux: usr/share/Microsoft/Azure DevOps/Agents
  • Macos: usr/share/Microsoft/Azure DevOps/Agents

Vytvořte složku Agenti, pokud není k dispozici.

  1. Všechno je připravené. Váš Azure DevOps Server teď použije 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.

Návody se ujistěte, že mám nejnovější verzi agenta v2?

  1. Přejděte na kartu Fondy agentů:

    1. Přihlaste se ke své organizaci (https://dev.azure.com/{yourorganization}).

    2. Zvolte Azure DevOps, nastavení organizace.

      Zvolte nastavení organizace.

    3. Zvolte fondy agentů.

      Zvolte kartu Fondy agentů.

    1. Přihlaste se ke své kolekci projektů (http://your-server/DefaultCollection).

    2. Zvolte Azure DevOps, nastavení kolekce.

      Zvolte nastavení kolekce.

    3. Zvolte fondy agentů.

      Zvolte fondy agentů.

    1. Zvolte Azure DevOps, nastavení kolekce.

      Nastavení kolekce, 2019.

    2. Zvolte fondy agentů.

      Zvolte fondy agentů, 2019.

  2. Klikněte na fond, který obsahuje agenta.

  3. Ujistěte se, že je agent povolený.

  4. Přejděte na kartu schopností:

    1. Na kartě Fondy agentů vyberte požadovaný fond agentů.

      Ve fondech agentů vyberte požadovaný fond agentů.

    2. Vyberte Agenty a zvolte požadovaného agenta.

      Vyberte Agenty a zvolte agenta.

    3. Zvolte kartu Schopnosti.

      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.

    1. Na kartě Fondy agentů vyberte požadovaný fond.

      Vyberte požadovaný fond.

    2. Vyberte Agenty a zvolte požadovaného agenta.

      Vyberte Agenty a zvolte požadovaného agenta.

    3. Zvolte kartu Schopnosti.

      Karta Možnosti agenta

    1. Na kartě Fondy agentů vyberte požadovaný fond.

      Vyberte požadovanou kartu 2019.

    2. Vyberte Agenty a zvolte požadovaného agenta.

      Zvolte požadovaného agenta 2019.

    3. Zvolte kartu Schopnosti.

      Zvolte kartu Možnosti, 2019.

  5. Agent.Version Vyhledejte možnost. Tuto hodnotu můžete zkontrolovat u nejnovější publikované verze agenta. Podívejte se na agenta Azure Pipelines a podívejte se na stránku s nejvyšším uvedeným číslem verze.

  6. 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 na fond a vyberte Aktualizovat všechny agenty.

Můžu aktualizovat agenty v2, 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.

  1. Z počítače s přístupem k internetu stáhněte nejnovější verzi souborů balíčku agenta (v .zip nebo .tar.gz formuláři) ze stránky vydání agenta Azure Pipelines Na GitHubu.

  2. Přeneste stažené soubory balíčků do každé aplikační vrstvy serveru Azure DevOps pomocí zvolené metody (jako je usb disk, síťový přenos atd.). Umístěte soubory agenta %ProgramData%\Microsoft\Azure DevOps\Agents do složky. Vytvořte složku Agenti, pokud není k dispozici.

  3. Všechno je připravené. Váš Azure DevOps Server teď použije 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.

Proč je ke spuštění příkazů služby potřeba sudo?

./svc.sh používá systemctl, který vyžaduje sudo.

Zdrojový kód: systemd.svc.sh.template na GitHubu

Používám bránu firewall a kód je v Azure Repos. S jakými adresami URL musí agent komunikovat?

Pokud používáte agenta v zabezpečené síti za bránou firewall, ujistěte se, že agent může zahájit komunikaci s následujícími adresami URL a IP adresami.

Domain URL (Adresa URL domény) Popis
https://{organization_name}.pkgs.visualstudio.com Rozhraní API pro balení Azure DevOps pro organizace používající {organization_name}.visualstudio.com doménu
https://{organization_name}.visualstudio.com Pro organizace používající {organization_name}.visualstudio.com doménu
https://{organization_name}.vsblob.visualstudio.com Telemetrie Azure DevOps pro organizace používající {organization_name}.visualstudio.com doménu
https://{organization_name}.vsrm.visualstudio.com Release Management Services pro organizace používající {organization_name}.visualstudio.com doménu
https://{organization_name}.vssps.visualstudio.com Azure DevOps Platform Services pro organizace používající {organization_name}.visualstudio.com doménu
https://{organization_name}.vstmr.visualstudio.com Azure DevOps Test Management Services pro organizace používající {organization_name}.visualstudio.com doménu
https://*.blob.core.windows.net Azure Artifacts
https://*.dev.azure.com Pro organizace používající dev.azure.com doménu
https://*.vsassets.io Azure Artifacts přes CDN
https://*.vsblob.visualstudio.com Telemetrie Azure DevOps pro organizace používající dev.azure.com doménu
https://*.vssps.visualstudio.com Azure DevOps Platform Services pro organizace používající dev.azure.com doménu
https://*.vstmr.visualstudio.com Azure DevOps Test Management Services pro organizace používající dev.azure.com doménu
https://app.vssps.visualstudio.com Pro organizace používající {organization_name}.visualstudio.com doménu
https://dev.azure.com Pro organizace používající dev.azure.com doménu
https://login.microsoftonline.com Přihlášení k Microsoft Entra
https://management.core.windows.net Rozhraní API služby Azure Management
https://vstsagentpackage.azureedge.net Balíček agenta

Pokud chcete zajistit, aby vaše organizace fungovala se všemi existujícími omezeními brány firewall nebo IP adresy, ujistěte se, že dev.azure.com jsou otevřené a *dev.azure.com aktualizujte ip adresy uvedené v seznamu povolených tak, aby obsahovaly následující IP adresy na základě vaší verze IP adresy. Pokud aktuálně seznam povolených 13.107.6.183 a 13.107.9.183 IP adres povolujete, ponechte je na místě, protože je nemusíte odebírat.

Rozsahy IPv4

  • 13.107.6.0/24
  • 13.107.9.0/24
  • 13.107.42.0/24
  • 13.107.43.0/24

Rozsahy IPv6

  • 2620:1ec:4::/48
  • 2620:1ec:a92::/48
  • 2620:1ec:21::/48
  • 2620:1ec:22::/48

Poznámka:

Další informace o povolených adresách najdete v tématu Povolené seznamy adres a síťová připojení.

Návody spustit agenta s certifikátem podepsaným svým držitelem?

Spuštění agenta s certifikátem podepsaným svým držitelem

Návody spustit agenta za webovým proxy serverem?

Spuštění agenta za webovým proxy serverem

Návody restartování agenta

Pokud agenta spouštíte interaktivně, přečtěte si pokyny k restartování v interaktivním spuštění. Pokud agenta spouštíte jako systémovou službu, postupujte podle pokynů k zastavení a spuštění agenta.

Návody nakonfigurovat agenta tak, aby obešel webový proxy server a připojil se ke službě Azure Pipelines?

Pokud chcete, aby agent vynechal proxy server a připojil se přímo ke službě Azure Pipelines, měli byste nakonfigurovat webový proxy server tak, aby agent měl přístup k následujícím adresám URL.

Pro organizace používající *.visualstudio.com doménu:

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

Pro organizace používající dev.azure.com doménu:

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

Pokud chcete zajistit, aby vaše organizace fungovala se všemi existujícími omezeními brány firewall nebo IP adresy, ujistěte se, že dev.azure.com jsou otevřené a *dev.azure.com aktualizujte ip adresy uvedené v seznamu povolených tak, aby obsahovaly následující IP adresy na základě vaší verze IP adresy. Pokud aktuálně seznam povolených 13.107.6.183 a 13.107.9.183 IP adres povolujete, ponechte je na místě, protože je nemusíte odebírat.

Rozsahy IPv4

  • 13.107.6.0/24
  • 13.107.9.0/24
  • 13.107.42.0/24
  • 13.107.43.0/24

Rozsahy IPv6

  • 2620:1ec:4::/48
  • 2620:1ec:a92::/48
  • 2620:1ec:21::/48
  • 2620:1ec:22::/48

Poznámka:

Tento postup umožňuje agentu obejít webový proxy server. Kanál buildu a skripty musí stále zpracovávat obejití webového proxy serveru pro každou úlohu a nástroj, který spouštíte v sestavení.

Pokud například používáte úlohu NuGet, musíte nakonfigurovat webový proxy server tak, aby podporoval obejití adresy URL serveru, který je hostitelem kanálu NuGet, který používáte.

Používám TFS a adresy URL v oddílech výše nefungují pro mě. Kde získám pomoc?

Nastavení a zabezpečení webu

Používám místně TFS a některé z těchto funkcí nevidím. Proč ne?

Některé z těchto funkcí jsou dostupné jenom v Azure Pipelines a zatím nejsou dostupné místně. Některé funkce jsou dostupné místně, pokud jste upgradovali na nejnovější verzi TFS.