Samordne web-, app- og databaselag
Sekvenser en utrulling i flere lag.
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
web02Send 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: 60Kjø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: app01Nå 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. ✅
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
- Automatiser nettverksenheter med cli_command
- delegate_to og run_once for orkestrering
- Samordne web-, app- og databaselag
- Tøm og aktiver lastbalanseren på nytt