Principy Azure Pipelines
Kroky v procesu nasazení můžete automatizovat pomocí kanálu. Pokaždé, když provedete změnu kódu a potvrdíte změnu do úložiště Git, kanál spustí předdefinovaný proces. Kanál může ověřit, že kód Bicep splňuje vaše standardy kvality, a pak automatizuje kroky nasazení vašich prostředků do Azure. Proces je definován v definici kanálu, kterou vytvoříte.
Azure Pipelines je funkce služby Azure DevOps. Azure DevOps také zahrnuje Azure Repos, která hostuje úložiště Git, která používáte k ukládání a sdílení kódu se spolupracovníky. Když uložíte kód Bicep do Gitu, azure Pipelines má přístup k vašemu kódu a automatizovat procesy nasazení. V této lekci se seznámíte se službou Azure Pipelines.
Co je kanál?
Kanál je opakovatelný proces, který používáte k otestování a nasazení kódu definovaného v konfiguračním souboru. Kanál obsahuje všechny kroky, které chcete spustit a v jakém pořadí.
Při práci se službou Azure Pipelines definujete svůj kanál v souboru YAML. Soubor YAML je strukturovaný textový soubor, podobně jako bicep je strukturovaný textový soubor. Soubory YAML můžete vytvářet a upravovat pomocí libovolného textového editoru. V tomto modulu použijete Visual Studio Code. Visual Studio Code nabízí rozšíření, které usnadňuje úpravy souborů kanálů YAML v Azure DevOps. Webové rozhraní Azure DevOps také poskytuje některé nástroje, které můžete použít k zobrazení a úpravě souborů YAML kanálu.
Poznámka:
Azure Pipelines zahrnuje klasické kanály, dřívější verzi funkce kanálů. Kanály založené na YAML nahradily klasické kanály. V tomto modulu probereme pouze kanály YAML. Doporučujeme používat kanály YAML.
Protože soubor YAML kanálu je soubor s kódem, soubor se uloží s kódem Bicep v úložišti Git. Funkce Gitu slouží ke spolupráci na definici kanálu. Různé verze souboru kanálu můžete spravovat pomocí potvrzení a větví. V dalším modulu se také dozvíte o dalších pokročilých funkcích kanálů, jako jsou šablony. Šablony usnadňují opakované použití definic kanálů.
Agenti a fondy
Doteď jste nasadili soubory Bicep z místního počítače. Po napsání šablony Bicep ji nasadíte do Azure pomocí Azure CLI nebo Azure PowerShellu. Tyto nástroje používají prostředky počítače k odeslání šablony do Azure. Používají vaši osobní identitu k ověření v Azure a k ověření, že máte oprávnění k nasazení prostředků.
Kanál také potřebuje přístup k počítači, aby mohl provést kroky nasazení. Azure Pipelines používá počítač označovaný jako agent. Agent je počítač, který je nakonfigurovaný tak, aby spouštět kroky nasazení kanálu. Každý agent už má nástroje Bicep a Azure, které jste použili v předchozích modulech, takže může dělat totéž, co děláte z vlastního počítače. Místo příkazů, které spouští člověk, služba Azure Pipelines dává agentovi pokyn, aby spustil kroky, které jste definovali v souboru YAML.
Azure Pipelines poskytuje více typů agentů pro různé operační systémy, jako je Ubuntu nebo Windows, a různé sady nástrojů. Microsoft tyto agenty spouští, takže pro agenty nemusíte udržovat žádnou výpočetní infrastrukturu. Agenti se někdy nazývají agenti hostovaní Microsoftem nebo hostovaní agenti , protože jsou hostovaní vaším jménem. Po spuštění kanálu se automaticky vytvoří hostovaný agent. Po dokončení spuštění kanálu se hostovaný agent automaticky odstraní. K hostovaným agentům nemáte přímý přístup, takže je důležité, aby váš kanál obsahoval všechny kroky potřebné k nasazení řešení.
Fond agentů obsahuje více agentů stejného typu. Při vytváření kanálu sdělíte službě Azure Pipelines, který fond agentů se má použít ke spuštění jednotlivých kroků. Když se kanál spustí, počká, až bude agent z fondu dostupný, a pak ho vyzve ke spuštění kroků nasazení. Ke spuštění kanálu může být přiřazený jakýkoli agent ve fondu.
Poznámka:
Máte možnost vytvořit vlastního agenta, který se nazývá agent v místním prostředí. Agenta v místním prostředí můžete vytvořit, pokud máte konkrétní software, který potřebujete spustit jako součást kanálu, nebo pokud potřebujete přesně řídit, jak je agent nakonfigurovaný. V tomto modulu neprobíráme agenty v místním prostředí, ale poskytujeme odkaz na další informace v souhrnu.
Aktivační události
Pokud chcete službě Azure Pipelines dát pokyn, kdy má kanál spustit, vytvořte trigger. Můžete si vybrat z několika typů triggerů. Prozatím použijete ruční trigger. Ručně sdělíte službě Azure Pipelines, kdy se má kanál spustit. Později v tomto modulu se dozvíte více o dalších typech triggerů.
Kroky
Krok představuje jednu operaci, kterou kanál provádí. Krok se podobá jednotlivému příkazu, který spustíte v prostředí Bash nebo PowerShellu. U většiny nasazení provedete několik kroků v posloupnosti. Definujete sekvenci a všechny podrobnosti o jednotlivých krocích v souboru YAML kanálu.
Azure Pipelines nabízí dva typy kroků:
- Skripty: Pomocí kroku skriptu spusťte jeden příkaz nebo posloupnost příkazů v prostředí Bash, PowerShell nebo příkazovém prostředí Windows.
- Úkoly. Úkol je pohodlný způsob, jak získat přístup k mnoha různým možnostem bez psaní příkazů skriptu. Například předdefinovaná úloha může spustit Azure CLI a rutiny Azure PowerShellu k otestování kódu nebo nahrání souborů na server FTP. Každý může napsat úkol a sdílet ho s ostatními uživateli tak, že úkol publikuje na Webu Visual Studio Marketplace. K dispozici je velká sada komerčních a opensourcových úloh.
Někteří lidé raději místo předdefinovaných úloh používají příkazy skriptu, protože nabízejí větší kontrolu nad tím, co se spustí. Jiní lidé raději používají úkoly, aby nemuseli psát a spravovat skripty. V tomto modulu používáme kombinaci obou přístupů.
Úlohy
V Azure Pipelines představuje úloha seřazenou sadu kroků. Vždy máte v kanálu alespoň jednu úlohu a při vytváření složitých nasazení je běžné mít více než jednu úlohu.
Poznámka:
Každou úlohu můžete nastavit tak, aby běžela v jiném fondu agentů. Spouštění úloh v různých fondech agentů je užitečné při sestavování a nasazování řešení, která potřebují používat různé operační systémy v různých částech kanálu úlohy.
Předpokládejme například, že vytváříte aplikaci pro iOS a back-endovou službu aplikace. Můžete mít jednu úlohu, která běží ve fondu agentů macOS pro sestavení aplikace pro iOS a další úlohy, která běží ve fondu agentů Ubuntu nebo Windows pro sestavení back-endu. Dokonce můžete kanálu říct, aby spouštět obě úlohy současně, což zrychluje provádění kanálu.
V tomto modulu deklarujeme fond agentů v kořenovém adresáři definičních souborů kanálu, takže všechny úlohy v kanálech používají stejný fond agentů.
Poznámka:
Fáze v Azure Pipelines můžete také použít k rozdělení kanálu do logických fází a přidání ručních kontrol v různých bodech provádění kanálu. Další informace o fázích se dozvíte v budoucích modulech.
Příklad základního kanálu
Teď, když znáte základní koncepty v Azure Pipelines, se podíváme na jednoduchou definici kanálu v YAML:
trigger: none
pool:
vmImage: ubuntu-latest
jobs:
- job:
steps:
- script: echo Hello, world!
displayName: 'Run a one-line script'
- script: |
echo We'll add more steps soon.
echo For example, we'll add our Bicep deployment step.
displayName: 'Run a multi-line script'
Pojďme se podrobněji podívat na jednotlivé části souboru:
-
trigger
řekne kanálu, kdy se má provést. V tomto případě sdělí službě Azure Pipelines,trigger: none
že chcete kanál aktivovat ručně. -
pool
dává kanálu pokyn, který fond agentů se má použít při spuštění kroků kanálu. V tomto příkladu kanál běží na agentu s operačním systémem Ubuntu, který pochází z fondu agentů hostovaných Microsoftem. -
jobs
seskupí všechny úlohy v kanálu. -
job
informuje váš kanál, že máte jednu úlohu.Tip
Pokud máte v kanálu jenom jednu úlohu, můžete vynechat
jobs
klíčová slova ajob
klíčová slova. V této částijob
jsme si ukázali, jak koncepty spolupracují v kanálu. -
steps
zobrazí posloupnost akcí, které se mají spustit v úloze. Ukázkový YAML obsahuje dva kroky. Oba kroky spustí jednoduchý skript, který ozvěna nějaký text. Každý krok mádisplayName
hodnotu, což je název kroku čitelný pro člověka. Zobrazovaný název se zobrazí při pohledu na protokoly kanálu. Pokud chcete vytvořit krok skriptu s více řádky, použijte znak svislé čáry (|
), jak je znázorněno v příkladu. Po provedení kroku uvidíte výstupy v protokolu kanálu.
Důležité
V souborech YAML je odsazení důležité. Podívejte se na příklad YAML. Některé řádky v YAML jsou odsazené dvěma nebo čtyřmi mezerami. Počet mezer, které použijete, je důležitý. Pokud soubor neodsadíte správně, Azure Pipelines ho nedokáže interpretovat. Visual Studio Code vám pomůže najít a opravit chyby v odsazení souboru YAML.