Zřizování agentů pro skupiny nasazení
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Skupina nasazení je logická skupina cílových počítačů nasazení pro kanály verze Classic v Azure Pipelines. Každý cílový server ve skupině nasazení vyžaduje nainstalovaného agenta nasazení. Tento článek vysvětluje, jak nainstalovat a zřídit agenta nasazení na každém fyzickém nebo virtuálním počítači ve skupině nasazení.
Agenta můžete nainstalovat na cílový počítač některým z následujících způsobů:
- Spusťte skript, který se vygeneruje při vytváření skupiny nasazení.
- Nainstalujte na virtuální počítač rozšíření Azure Pipelines Agent Azure.
- Pomocí úlohy AzureResourceGroupDeploymentV2 v kanálu verze můžete dynamicky vytvořit skupinu nasazení a zřizovat agenty.
Následující části obsahují kroky pro implementaci jednotlivých metod.
Požadavky
- Organizace a projekt Azure DevOps Pokud chcete vytvořit organizaci nebo projekt, přečtěte si téma Vytvoření nové organizace nebo vytvoření projektu v Azure DevOps.
- Přístup k alespoň jednomu cílovému počítači s Windows nebo Linuxem s příslušnými oprávněními.
- Pro metody instalace agenta Azure Pipelines účet Azure a předplatné s oprávněními k vytváření a správě virtuálních počítačů Azure. Pokud nemáte účet Azure, zaregistrujte si bezplatný účet.
Spuštění instalačního skriptu na cílových serverech
Když vytvoříte skupinu nasazení, vygeneruje se skript, který můžete spustit na každém cílovém počítači a zaregistrovat server a nainstalovat agenta. Instalace agenta pomocí vygenerovaného registračního skriptu:
V projektu Azure DevOps vyberte skupiny nasazení Pipelines>.
Na obrazovce Skupiny nasazení vyberte Nový nebo vyberte Přidat skupinu nasazení, pokud je tato skupina nasazení první v projektu.
Zadejte název skupiny nasazení a volitelný popis a pak vyberte Vytvořit.
Na další obrazovce vyberte Windows nebo Linux pro typ cíle, který chcete zaregistrovat. Vygeneruje se registrační skript.
Vyberte Použít ve skriptu token PAT k ověřování. Další informace naleznete v tématu Použití osobních přístupových tokenů.
Vyberte Kopírovat skript do schránky.
Na každém cílovém počítači se přihlaste pomocí účtu s oprávněními správce.
Spuštěním zkopírovaného skriptu zaregistrujte počítač a nainstalujte agenta. Pro počítače s Windows použijte příkazový řádek PowerShellu se zvýšenými oprávněními.
Při spuštění skriptu:
Pokud chcete přiřadit značky, které umožňují omezit nasazení na určité servery v úloze skupiny nasazení, zadejte po zobrazení výzvy k zadání značek Y a zadejte značku nebo značky pro tento virtuální počítač.
Značky jsou omezené na 256 znaků, nerozlišují malá a velká písmena a počet značek, které můžete použít, není nijak omezený.
Po zobrazení výzvy k zadání uživatelského účtu přijměte výchozí hodnoty.
Poznámka:
Pokud se při spuštění skriptu, který se nepodařilo vytvořit zabezpečený kanál, zobrazí se chyba, spusťte na příkazovém řádku PowerShellu správce následující příkaz:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Po nastavení každého cílového serveru by měl skript vrátit zprávu Service vstsagent.{organization-name}.{computer-name} started successfully
.
Na kartě Cíle na stránce Skupiny nasazení Azure Pipelines můžete ověřit, jestli je agent spuštěný. V případě potřeby stránku aktualizujte.
Instalace rozšíření Azure Pipelines Agent Azure
Pokud jako počítače pro nasazení používáte virtuální počítače Azure, můžete na každý virtuální počítač nainstalovat rozšíření agenta Azure Pipelines. Rozšíření automaticky zaregistruje agenta v zadané skupině nasazení v projektu Azure DevOps.
Pokud chcete agenta nainstalovat pomocí rozšíření, nejprve vytvořte skupinu nasazení:
- V projektu Azure DevOps vyberte skupiny nasazení Pipelines>.
- Na obrazovce Skupiny nasazení vyberte Nový nebo vyberte Přidat skupinu nasazení, pokud je tato skupina nasazení první v projektu.
- Zadejte název skupiny nasazení a volitelný popis a pak vyberte Vytvořit.
Na webu Azure Portal nainstalujte na každý cílový virtuální počítač rozšíření agenta Azure Pipelines:
Na stránce virtuálního počítače vyberte v levém navigačním panelu nastavení Rozšíření>a aplikace.
Na kartě Rozšíření vyberte Přidat.
Na stránce Instalace rozšíření vyhledejte a vyberte agenta Azure Pipelines a pak vyberte Další.
Na obrazovce Konfigurace rozšíření agenta Azure Pipelines zadejte následující informace:
- Adresa URL organizace Azure DevOps: Zadejte adresu URL vaší organizace Azure DevOps, například
https://dev.azure.com/contoso
. - Týmový projekt: Zadejte název projektu, například myProject.
- Skupina nasazení: Zadejte název skupiny nasazení, kterou jste vytvořili.
- Název agenta: Volitelně zadejte název agenta. Pokud nic nezadáte, agent se pojmenuje názvem virtuálního počítače, ke kterým se připojí
-DG
. - Osobní přístupový token: Zadejte token PAT (Personal Access Token), který se má použít k ověřování ve službě Azure Pipelines.
- Značky: Volitelně můžete zadat čárkami oddělený seznam značek, které se mají nakonfigurovat pro agenta. Značky jsou omezené na 256 znaků, nerozlišují malá a velká písmena a počet značek, které můžete použít, není nijak omezený.
- Adresa URL organizace Azure DevOps: Zadejte adresu URL vaší organizace Azure DevOps, například
Vyberte Zkontrolovat a vytvořit a po ověření vyberte Vytvořit.
Použití úlohy AzureResourceGroupDeploymentV2
K nasazení šablony Azure Resource Manageru (ARM) můžete použít úlohu AzureResourceGroupDeploymentV2. Šablona může během vytváření virtuálního počítače Azure nainstalovat rozšíření agenta Azure Pipelines nebo může skupinu prostředků aktualizovat tak, aby po vytvoření virtuálního počítače použila rozšíření.
Případně můžete k nasazení agenta použít pokročilé možnosti nasazení úlohy AzureResourceGroupDeployment.
Vytvoření skupiny nasazení
Nejprve vytvořte skupinu nasazení:
- V projektu Azure DevOps vyberte skupiny nasazení Pipelines>.
- Na obrazovce Skupiny nasazení vyberte Nový nebo vyberte Přidat skupinu nasazení, pokud je tato skupina nasazení první v projektu.
- Zadejte název skupiny nasazení a volitelný popis a pak vyberte Vytvořit.
Instalace agenta pomocí šablony ARM
Šablona ARM je soubor JSON, který deklarativní definuje sadu prostředků Azure. Azure automaticky přečte šablonu a zřídí prostředky. V jedné šabloně můžete nasadit více služeb a jejich závislosti.
Pokud chcete agenta nasazení zaregistrovat a nainstalovat pomocí šablony ARM, přidejte do Microsoft.Compute/virtualMachine
prostředku prvek prostředků, jak je znázorněno v následujícím kódu.
"resources": [
{
"name": "[concat(parameters('vmNamePrefix'),copyIndex(),'/TeamServicesAgent')]",
"type": "Microsoft.Compute/virtualMachines/extensions",
"location": "[parameters('location')]",
"apiVersion": "2015-06-15",
"dependsOn": [
"[resourceId('Microsoft.Compute/virtualMachines/',
concat(parameters('vmNamePrefix'),copyindex()))]"
],
"properties": {
"publisher": "Microsoft.VisualStudio.Services",
"type": "TeamServicesAgent",
"typeHandlerVersion": "1.0",
"autoUpgradeMinorVersion": true,
"settings": {
"VSTSAccountName": "[parameters('VSTSAccountName')]",
"TeamProject": "[parameters('TeamProject')]",
"DeploymentGroup": "[parameters('DeploymentGroup')]",
"AgentName": "[parameters('AgentName')]",
"AgentMajorVersion": "auto|2|3",
"Tags": "[parameters('Tags')]"
},
"protectedSettings": {
"PATToken": "[parameters('PATToken')]"
}
}
}
]
Poznámka:
Pro virtuální type
počítač s Linuxem by měl být TeamServicesAgentLinux
parametr properties
v kódu .
Poznámka:
V Azure DevOps Serveru 2022.1 a novějším jsou auto|2|3
povolené hodnoty AgentMajorVersion
. V Azure DevOps Serveru 2022.0 a starších verzích jsou auto|N
povolené hodnoty AgentMajorVersion
.
"resources": [
{
"name": "[concat(parameters('vmNamePrefix'),copyIndex(),'/TeamServicesAgent')]",
"type": "Microsoft.Compute/virtualMachines/extensions",
"location": "[parameters('location')]",
"apiVersion": "2015-06-15",
"dependsOn": [
"[resourceId('Microsoft.Compute/virtualMachines/',
concat(parameters('vmNamePrefix'),copyindex()))]"
],
"properties": {
"publisher": "Microsoft.VisualStudio.Services",
"type": "TeamServicesAgent",
"typeHandlerVersion": "1.0",
"autoUpgradeMinorVersion": true,
"settings": {
"VSTSAccountName": "[parameters('VSTSAccountName')]",
"TeamProject": "[parameters('TeamProject')]",
"DeploymentGroup": "[parameters('DeploymentGroup')]",
"AgentName": "[parameters('AgentName')]",
"AgentMajorVersion": "auto|N",
"Tags": "[parameters('Tags')]"
},
"protectedSettings": {
"PATToken": "[parameters('PATToken')]"
}
}
}
]
V předchozím kódu:
VSTSAccountName
je požadovaná organizace Azure Pipelines, která se má použít. Pokud je například adresa URLhttps://dev.azure.com/contoso
Azure DevOps , stačí zadatcontoso
TeamProject
je požadovaný projekt, který má v ní definovanou skupinu nasazení.DeploymentGroup
je požadovaná skupina nasazení k registraci agenta.AgentName
je volitelný název agenta. Pokud není zadaný, agent dostane název virtuálního počítače s připojeným-DG
názvem.Tags
je volitelný seznam značek oddělených čárkami, které se mají nastavit v agentovi. Značky jsou omezené na 256 znaků, nerozlišují malá a velká písmena a počet značek, které můžete použít, není nijak omezený.PATToken
je požadovaný pat pro ověření ve službě Azure Pipelines pro stahování a konfiguraci agenta.
Další informace o šablonách ARM najdete v tématu Definování prostředků v šablonách Azure Resource Manageru.
Použití šablony v kanálu verze
Vytvoření kanálu verze:
- V nabídce vlevo vyberte Kanály vydaných>verzí a pak vyberte Nový>kanál verze.
- Na kartě Vydané verze ve službě Azure Pipelines vytvořte kanál verze s fází, která obsahuje úlohu nasazení šablony ARM.
- Tato šablona používá verzi 2 úlohy, takže na obrazovce nastavení nasazení skupiny prostředků Azure změňte verzi úlohy z 3.* na 2.*.
- Zadejte parametry požadované pro úlohu, jako je předplatné Azure, název skupiny prostředků, umístění, informace o šabloně a akce, které se mají provést.
- Uložte kanál verze a vytvořte z kanálu verzi pro instalaci agentů.
Instalace agentů pomocí rozšířených možností nasazení
Případně můžete agenta nainstalovat pomocí rozšířených možností nasazení. Postupujte podle předchozích kroků, ale na obrazovce nastavení nasazení skupiny prostředků Azure rozbalte část Upřesnit možnosti nasazení pro virtuální počítače .
V části Povolit požadavky vyberte Konfigurovat s agentem skupiny nasazení.
Zadejte následující požadované parametry a nastavení:
Připojení služby Azure Pipelines: Vyberte existující připojení služby, které odkazuje na váš cíl.
Pokud nemáte existující připojení ke službě, vyberte Nový a vytvořte ho. Další informace najdete v tématu Vytvoření připojení služby. Nakonfigurujte připojení služby tak, aby používalo PAT s oborem omezeným na skupinu nasazení.
Týmový projekt: Vyberte projekt, který obsahuje skupinu nasazení.
Skupina nasazení: Vyberte skupinu nasazení, do které chcete agenty zaregistrovat.
Výběrem možnosti Kopírovat značky virtuálních počítačů Azure do agentů zkopírujte všechny značky, které jsou na virtuálním počítači Azure nakonfigurované, do odpovídajícího agenta skupiny nasazení.
Ve výchozím nastavení se všechny značky Azure zkopírují pomocí
Key: Value
formátu, napříkladRole: Web
.
Uložte kanál a vytvořte verzi pro instalaci agentů.
Řešení potíží s rozšířením
Existují některé známé problémy s rozšířením agenta Azure Pipelines.
Stavový soubor je příliš velký
K tomuto problému může dojít na virtuálních počítačích s Windows. Stavový soubor obsahuje objekt JSON, který popisuje aktuální stav rozšíření. Objekt je zástupný symbol pro výpis dosud provedených operací.
Azure přečte tento stavový soubor a předá objekt stavu jako odpověď na požadavky rozhraní API. Soubor má maximální povolenou velikost. Pokud velikost překročí maximum, Azure ji nemůže úplně přečíst a zobrazí chybu stavu.
I když se rozšíření může na začátku nainstalovat, pokaždé, když se počítač restartuje, provede některé operace, které připojují ke stavovém souboru. Pokud se počítač mnohokrát restartuje, velikost stavového souboru může překročit prahovou hodnotu, což způsobí chybu Handler Microsoft.VisualStudio.Services.TeamServicesAgent:1.27.0.2 status file 0.status size xxxxxx bytes is too big. Max Limit allowed: 131072 bytes
. I když instalace rozšíření může být úspěšná, tato chyba skryje skutečný stav rozšíření.
Tento problém s restartováním počítače je opravený od verze 1.27.0.2
rozšíření Windows a 1.21.0.1
pro linuxové rozšíření. Restartování teď do stavového souboru nic nesčte. Pokud jste ale měli tento problém se starší verzí rozšíření a vaše rozšíření bylo automaticky aktualizováno na opravenou verzi, může problém trvat. Novější verze rozšíření stále můžou pracovat se starším stavovým souborem.
K tomuto problému můžete dojít, pokud používáte starší verzi rozšíření s příznakem k vypnutí automatických aktualizací podverze nebo pokud se velký stavový soubor přenesl z dřívější verze do opravené verze. Pokud ano, můžete problém vyřešit odinstalací a opětovnou instalací rozšíření. Odinstalace rozšíření vyčistí celý adresář rozšíření a vytvoří nový stavový soubor pro novou instalaci nejnovější verze.
Problém s vlastními daty
Python 2 je zastaralý a rozšíření agenta Azure Pipelines funguje s Pythonem 3. Pokud stále používáte verze operačního systému, které nemají ve výchozím nastavení nainstalovaný Python 3, měli byste nainstalovat Python 3 na virtuální počítač nebo přepnout na verzi operačního systému, ve které je ve výchozím nastavení nainstalovaný Python 3. Jinak může dojít k nejasnostem ohledně vlastního umístění dat na virtuálním počítači při přepínání verzí operačního systému.
Na virtuálních počítačích s Linuxem vlastní datové kopie do /var/lib/waagent/ovf-env.xml pro starší verze agenta a do /var/lib/waagent/CustomData pro novější verze. Pokud pevně zakódujete jenom jednu z těchto dvou cest, může dojít k problémům při přepínání verzí operačního systému, protože jedna z cest v nové verzi operačního systému neexistuje, i když existuje druhá cesta. Pokud se chcete vyhnout narušení zřizování virtuálních počítačů, zvažte použití obou cest v šabloně, aby v případě selhání měly být úspěšné.
Nápověda a podpora
- Projděte si tipy pro řešení potíží.
- Získejte rady o Stack Overflow.
- Zveřejněte své otázky, vyhledejte odpovědi nebo navrhněte funkci v komunitě vývojářů Azure DevOps.
- Získejte podporu pro Azure DevOps.