Ansible Academy · leksjon

Samordne web-, app- og databaselag

Sekvenser en utrulling i flere lag.

Leksjon 3 av 413 trinn

Samordne web-, app- og databaselag er en gratis leksjon i Ansible Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Ansible Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Ansible Academy inneholder totalt 4 leksjoner.

Virkelige apper har lag

En typisk stakk er delt inn i lag: webservere, appservere og en database. Hvert lag har sin egen rolle og sin egen utrulleringsrekkefølge. 🏗️

Rekkefølgen er viktig

Vanligvis starter du med databasen, deretter appen og til slutt weblaget. Hvis lagene konfigureres i feil rekkefølge, mislykkes utrullingen.

Én play per lag

Gi hvert lag sitt eget play i én enkelt playbook. Play kjører ovenfra og ned, så rekkefølgen angir utrulleringssekvensen.

- hosts: db
  roles: [postgres]

- hosts: app
  roles: [backend]

- hosts: web
  roles: [nginx]

Grupper tilsvarer lag

Gruppene i inventory, for eksempel db, app og web, tilsvarer vertene hvert play er rettet mot. Inventory er ryggraden i orkestreringen.

[db]
db01

[app]
app01
app02

[web]
web01
web02

Send data mellom lag

Weblaget trenger ofte IP-adressene til appserverne. Les dem med hostvars og grupper for å koble ett lag til et annet.

backends: "{{ groups['app'] | map('extract', hostvars, 'ansible_host') | list }}"

Vent til et lag er klart

Før appen starter, bekrefter du at databaseporten er åpen med wait_for. Dette hindrer at du går videre før en treg tjeneste er klar.

- ansible.builtin.wait_for:
    host: db01
    port: 5432
    timeout: 60

Kjør migreringer én gang

Endringer i databaseskjemaet skal bare utføres én gang. Kombiner run_once med en delegert vert, slik at én appnode migrerer den delte databasen.

- ansible.builtin.command: ./migrate.sh
  run_once: true
  delegate_to: app01

Nå på tvers av lag med delegate_to

Et app-play kan påvirke weblaget ved å delegere en oppgave til en webvert. Én playbook kan koordinere alle lagene.

Merk lag for målrettede kjøringer

Legg til tagger som db, app og web i playene, slik at du kan rulle ut ett enkelt lag på nytt med --tags når bare ett lag er endret.

- hosts: web
  tags: web
  roles: [nginx]

Stans raskt ved feil i hele stakken

Angi any_errors_fatal slik at en feil i dblaget stopper hele kjøringen før applaget distribueres mot et ødelagt lag.

- hosts: db
  any_errors_fatal: true
  roles: [postgres]

Hele stakken i én fil

En playbook med flere play blir en utrulleringsoppskrift: hvert lag i riktig rekkefølge, med koblingene mellom lagene samlet på ett sted.

Hurtigsjekk

La oss sjekke hvordan lagene settes i riktig rekkefølge.

Oppsummering

Koordiner lagene med ett play per lag i utrulleringsrekkefølge, koblet sammen ved hjelp av grupper, hostvars, wait_for og delegering. ✅

Gratis å komme i gang

Lær deg YAML med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
30
Leksjoner
120

Ofte stilte spørsmål

Er leksjonen «Samordne web-, app- og databaselag» gratis?

Ja – hele teksten i «Samordne web-, app- og databaselag» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Ansible Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Ansible Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Samordne web-, app- og databaselag»?

Sekvenser en utrulling i flere lag. Du øver på Ansible Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Ansible Academy?

Ingen tidligere erfaring er nødvendig. Ansible Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «Samordne web-, app- og databaselag»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Ansible Academy-leksjonen?

Ja. Alle Ansible Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Automatiser nettverksenheter med cli_command
  2. delegate_to og run_once for orkestrering
  3. Samordne web-, app- og databaselag
  4. Tøm og aktiver lastbalanseren på nytt
← Tilbake til Ansible Academy