Použití automatizovaného pracovního postupu

Dokončeno

V této lekci se dozvíte o automatizovaných nástrojích pracovních postupů a o tom, jak se integrují s Terraformem a Azure.

O nástroji GitHub Actions

Jako správce infrastruktury potřebujete pracovní postupy sestavení a nasazení, abyste mohli používat stejnou správu verzí jako váš projekt.

Pomocí GitHub Actions můžete spustit proces kontinuální integrace a průběžného doručování (CI/CD), který je propojený s úložišti GitHub.

Pomocí GitHub Actions můžete vytvářet, testovat a nasazovat kód přímo z GitHubu. Můžete také přiřadit kontroly kódu, spravovat větve a problémy s tříděním.

Komponenty GitHub Actions

Popíšeme různé komponenty GitHub Actions, jak je znázorněno v následujícím diagramu:

Diagram znázorňující vztah pracovních postupů GitHub Actions k úlohám komponent, krokům a akcím

  • Pracovní postup: Aktivované určitými událostmi nebo aktivitami, pracovní postup je kolekce úloh a kroků, které automatizují úlohy životního cyklu vývoje softwaru.
  • Úloha: Sada kroků, které se spouštějí na spouštěči.
  • Krok: Úloha, která může spustit jeden nebo více příkazů nebo akcí. Každý krok se skládá z jednotlivých akcí, které se spustí po konkrétní události, jako je například žádost o přijetí změn.
  • Akce: Samostatné příkazy, které lze zkombinovat do kroků. Několik kroků je potom možné sloučit do úlohy. Jednotlivé akce jsou zabalené skripty, které automatizují úlohy vývoje softwaru. Pokud chcete vytvořit pracovní postup, přidáte akce do souboru YAML v adresáři .github/workflows v úložišti GitHub.

Akce Terraformu na GitHubu

Akce hashicorp/setup-terraform nastaví Rozhraní příkazového řádku Terraformu v pracovním postupu GitHub Actions podle:

  • Stažení konkrétní verze Rozhraní příkazového řádku Terraformu a jeho přidání do .PATH
  • Konfigurace konfiguračního souboru Rozhraní příkazového řádku Terraformu s názvem hostitele Terraform Cloud nebo Enterprise a tokenem rozhraní API
  • Instalace obálkového skriptu pro zabalení pozdějších volání binárního terraform souboru a zveřejnění jeho STDOUT, STDERR a ukončovací kód jako výstupy s názvem stdout, stderra exitcode, v uvedeném pořadí.

Ověřování GitHub Actions pomocí Azure

Terraform podporuje několik možností ověřování v Azure:

  • Pokud terraform používáte interaktivně, doporučujeme provést ověření prostřednictvím účtu Microsoft.
  • Pokud používáte Terraform z kódu nebo automatizace, doporučujeme provést ověření prostřednictvím instančního objektu Azure.

Instanční objekt je identita pro použití s aplikacemi, hostovanými službami a automatizovanými nástroji pro přístup k prostředkům Azure.

Další kroky

V další lekci nastavíme ukázkový projekt a pomocí GitHub Actions s Terraformem ho nasadíme do Azure.

Klíčové koncepty pro nové služby Azure Pipelines

Pojďme se seznámit s komponentami, které tvoří Azure Pipeline.

Diagram klíčových konceptů a komponent v Azure Pipeline

  • Trigger sděluje kanálu, aby se spustil.
  • Kanál se skládá z jedné nebo více fází. Kanál se může nasadit do jednoho nebo více prostředí.
  • Fáze je způsob uspořádání úlohy v kanálu a každá fáze může mít jednu nebo více úloh.
  • Každá úloha běží na jednom agentu. Úloha může být také bez agentů.
  • Každý agent spouští úlohu, která obsahuje jeden nebo více kroků.
  • Krok může být úkol nebo skript a je nejmenším stavebním blokem kanálu.
  • Úloha je předem zabalený skript, který provede akci, například vyvolání rozhraní REST API nebo publikování artefaktu sestavení.
  • Artefakt je kolekce souborů nebo balíčků publikovaných spuštěním.

Tip

Podrobnější informace o různých součástech kanálu a jejich použití najdete v odkazech uvedených v části Souhrn .

Úlohy Terraformu pro Azure Pipelines

Při spouštění příkazů, které pracují s Azure, jako planje například , applya destroy, úloha použije připojení služby Azure k autorizaci operací s cílovým předplatným. Doporučený způsob připojení k Azure je vazba připojení služby k instančnímu objektu Azure. Instanční objekt Azure je identita, kterou vytvoříte pro použití automatizovaných nástrojů pro přístup k prostředkům Azure.

Následující fragment kódu YAML používá zprostředkovatele azurermTerraformu služby Azure Pipeline. Připojení ke službě environmentServiceNameAzureRM se zadává prostřednictvím vstupu:

- task: TerraformTaskV1@0
  inputs:
    provider: 'azurerm'
    command: 'apply'
    workingDirectory: $(Build.Repository.LocalPath)/terraform
    backendAzureRmContainerName: 'tfstate'
    backendAzureRmKey: 'tf/terraform.tfstate'
    environmentServiceNameAzureRM: $(serviceConnection)

Tip

Pokud používáte azurerm jako zprostředkovatele Terraformu kanálu Azure, musíte také zadat připojení služby a kontejner úložiště, který se má použít se stavem back-endu Terraformu.

Předávání parametrů

Existuje několik metod předání parametrů příkazům terraformu. Proměnné poskytují pohodlný způsob, jak do různých částí kanálu dostat klíčová data.

Proměnnou pro kanál buildu můžete nastavit pomocí následujícího postupu:

  1. Přejděte na stránku Kanály , vyberte příslušný kanál a vyberte Upravit.
  2. Vyhledejte proměnné pro tento kanál.
  3. Přidejte nebo aktualizujte proměnnou.
  4. Pokud chcete proměnnou označit jako tajný klíč, vyberte Zachovat tento tajný klíč hodnoty.
  5. Uložte kanál.

Výstup Terraformu do proměnných kanálu

Úloha TerraformCLI podporuje spuštění příkazu Terraform output . Po spuštění rozhraní příkazového řádku se proměnné kanálu vytvoří z každé výstupní proměnné vygenerované z terraform output příkazu.

Další kroky

V další lekci nastavíme ukázkový projekt a pomocí Azure Pipelines s Terraformem ho nasadíme do Azure.