delegate_to og run_once for orkestrering
Kjør en oppgave på én vert for mange andre.
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: lb01Et 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: localhostVariabler 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: trueHvorfor 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: app01Resultater 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: verSamle 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. ✅
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
- Automatiser nettverksenheter med cli_command
- delegate_to og run_once for orkestrering
- Samordne web-, app- og databaselag
- Tøm og aktiver lastbalanseren på nytt