DevOps-bootcamp · leksjon

delegate_to og run_once for orkestrering

Kjør en oppgave på én vert for mange andre.

Leksjon 2 av 413 trinn

delegate_to og run_once for orkestrering er en gratis leksjon i DevOps-bootcamp på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i DevOps-bootcamp, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i DevOps-bootcamp inneholder totalt 4 leksjoner.

Oppgaver kjører ikke alltid der du tror

Som standard kjører hver oppgave på målverten sin. For orkestrering trenger du noen ganger at en oppgave kjører et helt annet sted. 🎯

Bli kjent med delegate_to

Nøkkelordet delegate_to kjører en oppgave på en annen vert enn den gjeldende, samtidig som variablene til den gjeldende verten fortsatt brukes.

- name: Add web node to load balancer
  community.general.haproxy:
    host: "{{ inventory_hostname }}"
    state: enabled
  delegate_to: lb01

Et klassisk bruksområde

Mens du går gjennom webnodene, delegerer du endringen av lastbalansereren til LB-verten. Playet kjøres per node, men handlingen utføres på LB-en.

Deleger til localhost

Kjør en oppgave på kontrollnoden ved å delegere den til localhost. Dette er nyttig når du skal kalle et API eller sende et varsel fra ett sted.

- name: Notify chat
  ansible.builtin.uri:
    url: "{{ webhook }}"
    method: POST
  delegate_to: localhost

Variabler blir hos den opprinnelige verten

Delegering flytter stedet der en oppgave kjører, men ikke hvilke fakta den ser. inventory_hostname navngir fortsatt det opprinnelige målet, ikke den delegerte verten.

Bli kjent med run_once

Nøkkelordet run_once kjører en oppgave én gang for hele batchen, ikke én gang per vert. Ansible velger den første verten som skal kjøre den.

- name: Run database migration
  ansible.builtin.command: ./migrate.sh
  run_once: true

Hvorfor run_once er viktig

Enkelte handlinger må bare utføres én gang, for eksempel en migrering eller et ledervalg. run_once hindrer alle verter i å gjenta det samme delte trinnet.

Bruk dem sammen

Kombiner run_once med delegate_to for å utføre én handling på én valgt vert, for eksempel å kjøre en migrering fra én enkelt appnode.

- name: Migrate db once
  ansible.builtin.command: ./migrate.sh
  run_once: true
  delegate_to: app01

Resultater deles

Med run_once deles et registrert resultat med alle verter i batchen. Alle ser resultatet fra den ene kjøringen.

- ansible.builtin.command: cat /etc/version
  run_once: true
  register: ver

Samle fakta fra en delegert vert

Bruk delegate_facts hvis du vil at innsamlede fakta skal knyttes til den delegerte verten i stedet for den gjeldende verten. Dette er deaktivert som standard.

Orkestrering, ikke bare konfigurasjon

Sammen gjør disse nøkkelordene konfigurasjon per vert om til ekte orkestrering: koordinering av én handling på tvers av en hel flåte fra ett sted.

Hurtigsjekk

La oss sjekke disse orkestreringsnøkkelordene.

Oppsummering

Bruk delegate_to til å kjøre en oppgave på en annen vert, og run_once til å kjøre den bare én gang per batch. Dette er kjernen i orkestrering. ✅

Gratis å komme i gang

Lær deg DevOps-bootcamp 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
142
Leksjoner
568

Ofte stilte spørsmål

Er leksjonen «delegate_to og run_once for orkestrering» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien DevOps-bootcamp, inkludert «delegate_to og run_once for orkestrering», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i DevOps-bootcamp inneholder totalt 4 leksjoner.

Hva lærer jeg i «delegate_to og run_once for orkestrering»?

Kjør en oppgave på én vert for mange andre. Du øver på DevOps-bootcamp 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 DevOps-bootcamp?

Ingen tidligere erfaring er nødvendig. DevOps-bootcamp 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 2 av 4.

Hvor lang tid tar leksjonen «delegate_to og run_once for orkestrering»?

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 DevOps-bootcamp-leksjonen?

Ja. Alle DevOps-bootcamp-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 DevOps-bootcamp