Ansible Academy · leksjon

allow_duplicates og idempotens for roller

Styr gjentatt kjøring av roller.

Leksjon 4 av 413 trinn

allow_duplicates og idempotens for roller er en gratis leksjon i Ansible Academy på CoddyKit. Dette er leksjon 4 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.

Roller kjører én gang som standard

Hvis to roller begge er avhengige av en common-rolle, er Ansible smart: common kjøres bare én gang, ikke to, i løpet av samme play.

Hvorfor deduplisering finnes

Denne dedupliseringen hindrer delte oppsettsroller i å gjenta kostbart arbeid, for eksempel å kjøre en grunnleggende sikringsrolle på nytt for hver applikasjonsrolle.

Samme rolle, samme parametere

Hoppet over gjelder bare når rollen blir bedt om med de samme parameterne. Identiske kall regnes som allerede utført.

Ulike parametere kjøres på nytt

Kall den samme rollen med andre variabler, så kjører Ansible den på nytt. En vhost-rolle med to konfigurasjoner brukes to ganger, slik du ønsker.

roles:
  - role: vhost
    vars: { name: site_a }
  - role: vhost
    vars: { name: site_b }

Bli kjent med allow_duplicates

Innstillingen allow_duplicates i meta/main.yml styrer denne oppførselen. Angi den til true, så kan rollen kjøre flere ganger i løpet av et play.

# meta/main.yml
allow_duplicates: true

Når du bør tillate duplikater

Slå det på for roller som er ment å brukes mange ganger, for eksempel til å opprette flere brukere eller virtuelle verter, der hvert kall gjør genuint nytt arbeid.

Standardverdien er false

Som standard er allow_duplicates false, så en rolle med identiske parametere kjører bare én gang. La det være deaktivert for roller som setter opp noe én gang.

Deduplisering er ikke idempotens

Å hoppe over et duplikatkall er en praktisk funksjon under kjøring. Ekte idempotens betyr at hver oppgave oppnår ønsket tilstand, uansett hvor ofte den kjører.

Lag idempotente oppgaver

Inne i en rolle bør du foretrekke tilstandsbaserte moduler fremfor rå kommandoer. En virkelig idempotent rolle kan brukes to ganger uten negative konsekvenser.

include_role kjøres alltid på nytt

Vær oppmerksom på at include_role ikke følger dedupliseringslogikken på samme måte. En dynamisk inkludert rolle kjører hver gang du når den.

Sammensettbar og trygg

Kombiner deduplisering, allow_duplicates og idempotente oppgaver for å bygge rollehierarkier som kan settes sammen på en ryddig måte og trygt kjøres på nytt.

Hurtigsjekk

Husk innstillingen som lar en rolle kjøres mer enn én gang i en play.

Oppsummering

Ansible fjerner duplikater av identiske rollekall. Sett allow_duplicates til true for å gjenta ett av dem, og sørg for at oppgavene er idempotente slik at de kan kjøres trygt på nytt. ♻️

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 «allow_duplicates og idempotens for roller» gratis?

Ja – hele teksten i «allow_duplicates og idempotens for roller» 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 «allow_duplicates og idempotens for roller»?

Styr gjentatt kjøring av roller. 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 4 av 4.

Hvor lang tid tar leksjonen «allow_duplicates og idempotens for roller»?

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. Rolleavhengigheter i meta/main.yml
  2. defaults kontra vars: Rekkefølgen for overstyring
  3. include_role og import_role ved kjøring
  4. allow_duplicates og idempotens for roller
← Tilbake til Ansible Academy