Intensiv DevOps-uddannelse · Lektion

delegate_to & run_once til orkestrering

Kør en task på én vært for mange.

Lektion 2 af 413 trin

delegate_to & run_once til orkestrering er en gratis Intensiv DevOps-uddannelse-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Intensiv DevOps-uddannelse, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.

Opgaver kører ikke altid, hvor du tror

Som standard kører hver opgave på sin målvært. Ved orkestrering har du nogle gange brug for, at en opgave kører et helt andet sted. 🎯

Mød delegate_to

Nøgleordet delegate_to kører en opgave på en anden vært end den aktuelle, men bruger stadig variablerne fra den vært.

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

Et klassisk anvendelsestilfælde

Mens du gennemløber webnoder, skal ændringen af belastningsfordeleren delegeres til LB-værten. Play'et forbliver nodebaseret, men handlingen udføres på LB'en.

Deleger til localhost

Kør en opgave på din kontrolnode ved at delegere den til localhost. Det er ideelt til at kalde en API eller sende en notifikation fra ét sted.

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

Variabler følger den oprindelige vært

Delegering flytter stedet, hvor en opgave kører, ikke hvilke fakta den ser. inventory_hostname angiver stadig det oprindelige mål, ikke delegaten.

Mød run_once

Nøgleordet run_once kører en opgave én enkelt gang for hele batchen, ikke én gang pr. vært. Ansible vælger den første vært til at udføre den.

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

Hvorfor run_once er vigtigt

Nogle handlinger skal kun udføres én gang, f.eks. en migrering eller et ledervalg. run_once forhindrer alle værter i at gentage det samme fælles trin.

Kombiner dem

Kombiner run_once med delegate_to for at udføre én handling på én valgt vært, f.eks. at køre en migrering fra én enkelt applikationsnode.

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

Resultater deles

Med run_once deles et registreret resultat på tværs af alle værter i batchen. De ser alle outputtet fra den ene udførelse.

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

Indsaml fakta fra en delegate

Brug delegate_facts, hvis du vil knytte indsamlede fakta til delegatværten i stedet for den aktuelle vært. Det er deaktiveret som standard.

Orkestrering, ikke kun konfiguration

Tilsammen omdanner disse nøgleord konfiguration pr. vært til ægte orkestrering: koordinering af én handling på tværs af en hel serverflåde fra ét centralt sted.

Hurtigt tjek

Lad os gennemgå disse orkestreringsnøgleord.

Opsummering

Brug delegate_to til at køre en opgave på en anden vært og run_once til kun at køre den én gang pr. batch – det er kernen i orkestrering. ✅

Gratis at komme i gang

Lær Intensiv DevOps-uddannelse med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
142
Lektioner
568

Ofte stillede spørgsmål

Er lektionen “delegate_to & run_once til orkestrering” gratis?

Ja — alle 3 lektioner i læringssporet Intensiv DevOps-uddannelse, inklusive “delegate_to & run_once til orkestrering”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “delegate_to & run_once til orkestrering”?

Kør en task på én vært for mange. Du øver dig i Intensiv DevOps-uddannelse med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Intensiv DevOps-uddannelse?

Der kræves ingen tidligere erfaring. Intensiv DevOps-uddannelse på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “delegate_to & run_once til orkestrering”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Intensiv DevOps-uddannelse-lektion?

Ja. Alle Intensiv DevOps-uddannelse-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Automatisér netværksenheder med cli_command
  2. delegate_to & run_once til orkestrering
  3. Koordinér web-, app- & databaselag
  4. Dræn og genaktivér load balanceren
← Tilbage til Intensiv DevOps-uddannelse