Anvend en automatiseret arbejdsproces

Fuldført

I dette undermodul får du mere at vide om automatiserede arbejdsprocesværktøjer, og hvordan de integreres med Terraform og Azure.

Om GitHub-handlinger

Som infrastrukturadministrator skal du bruge dine build- og udrulningsarbejdsprocesser for at bruge det samme versionskontrolelement som dit projekt.

Ved hjælp af GitHub-handlinger kan du køre en kontinuerlig integrations- og kontinuerlig leveringsproces (CI/CD), der er knyttet til dine GitHub-lagre.

Med GitHub-handlinger kan du bygge, teste og udrulle din kode direkte fra GitHub. Du kan også tildele kodegennemgange, administrere forgreninger og triageproblemer.

GitHub Actions-komponenter

Lad os beskrive de forskellige GitHub Actions-komponenter som vist i følgende diagram:

diagram, der viser relationen mellem arbejdsprocesser i GitHub-handlinger og deres komponentjob, trin og handlinger.

  • arbejdsproces: Udløst af visse hændelser eller aktiviteter er en arbejdsproces en samling job og trin, der automatiserer livscyklusopgaver for softwareudvikling.
  • Job: Et sæt trin, der udføres på en løber.
  • trin: En opgave, der kan køre en eller flere kommandoer eller handlinger. Hvert trin består af individuelle handlinger, der kører efter en bestemt hændelse, f.eks. en pullanmodning.
  • Action: Separate kommandoer, der kan kombineres i trin. Flere trin kan kombineres for at oprette et job. Individuelle handlinger er pakkede scripts, der automatiserer softwareudviklingsopgaver. Hvis du vil oprette en arbejdsproces, skal du føje handlinger til en YAML-fil i .github/arbejdsprocesser mappe i dit GitHub-lager.

En Terraform GitHub-handling

Handlingen hashicorp/setup-terraform konfigurerer kommandolinjegrænsefladen Terraform i arbejdsprocessen for GitHub-handlinger ved at:

  • Downloader en bestemt version af terraform-kommandolinjegrænsefladen og føjer den til PATH.
  • Konfiguration af terraform-CLI-konfigurationsfilen med et Terraform Cloud- eller Enterprise-værtsnavn og API-token.
  • Installation af et ombrydningsscript for at ombryde senere kald af den binære terraform og vise dens STDOUT-, STDERR- og afslutningskode som output med navnet henholdsvis stdout, stderrog exitcode.

Godkend GitHub-handlinger med Azure

Terraform understøtter flere muligheder for godkendelse med Azure:

  • Når du bruger Terraform interaktivt, anbefaler vi, at du godkender via en Microsoft-konto.
  • Når du bruger Terraform fra kode eller automatisering, anbefaler vi, at du godkender via en Azure -tjenesteprincipal.

En tjenesteprincipal er en identitet til brug sammen med programmer, hostede tjenester og automatiserede værktøjer til at få adgang til Azure-ressourcer.

Næste trin

I det næste undermodul konfigurerer vi et eksempelprojekt og bruger GitHub-handlinger med Terraform til at udrulle det på Azure.

Nøglebegreber for nye Azure Pipelines

Lad os få mere at vide om de komponenter, der udgør en Azure Pipeline.

Diagram over de vigtigste begreber og komponenter i Azure Pipeline.

  • En udløser beder en pipeline om at køre.
  • En pipeline består af et eller flere faser. En pipeline kan installeres i et eller flere miljøer.
  • En fase er en metode til at organisere job i en pipeline, og hver fase kan have et eller flere job.
  • Hvert job kører på én agent. Et job kan også være agentuafhængig.
  • Hver agent kører et job, der indeholder et eller flere trin.
  • Et trin kan være en opgave eller scriptog er den mindste dokumentkomponent i en pipeline.
  • En opgave er et færdigpakket script, der udfører en handling, f.eks. aktivering af en REST API eller publicering af et buildartefakt.
  • En artefakt er en samling filer eller pakker, der udgives af en kørsel.

Drikkepenge

Du kan finde mere detaljerede oplysninger om de forskellige pipelinekomponenter, og hvordan du bruger dem, i afsnittet Links, der er angivet i afsnittet Oversigt.

Terraform-opgaver til Azure Pipelines

Når du udfører kommandoer, der interagerer med Azure, f.eks. plan, applyog destroy, bruger opgaven en Azure Service Connection til at godkende handlinger i forhold til målabonnementet. Den anbefalede måde at oprette forbindelse til Azure på er at binde tjenesteforbindelsen til en Azure -tjenesteprincipal. En Azure-tjenesteprincipal er en identitet, som du opretter for bruger automatiserede værktøjer til at få adgang til Azure-ressourcer.

Følgende YAML-kodestykke bruger Azure Pipeline Terraform-udbyderen azurerm. Der angives en tjenesteforbindelse via environmentServiceNameAzureRM input:

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

Drikkepenge

Hvis du bruger azurerm som Azure Pipeline Terraform-udbyder, skal du også angive en tjenesteforbindelses- og lagerobjektbeholder, der skal bruges sammen med Terraform-backend-tilstand.

Sender parametre

Der er flere metoder til at overføre parametre til terraform-kommandoer. Variabler giver dig en nem måde at få vigtige databit på i forskellige dele af pipelinen.

Du kan angive en variabel for en buildpipeline ved at følge disse trin:

  1. Gå til siden Pipelines, vælg den relevante pipeline, og vælg Rediger.
  2. Find de variabler, der for denne pipeline.
  3. Tilføj eller opdater variablen.
  4. Hvis du vil markere variablen som hemmelig, skal du vælge Bevar denne værdihemmelighed.
  5. Gem pipelinen.

Terraform output til rørledningsvariabler

TerraformCLI-opgaven understøtter kørsel af kommandoen Terraform output. Når kommandolinjegrænsefladen kører, oprettes der pipelinevariabler ud fra hver outputvariabel, der udsendes fra kommandoen terraform output.

Næste trin

I det næste undermodul konfigurerer vi et eksempelprojekt og bruger Azure Pipelines med Terraform til at udrulle det på Azure.