delegate_to & run_once til orkestrering
Kør en task på én vært for mange.
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: lb01Et 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: localhostVariabler 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: trueHvorfor 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: app01Resultater 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: verIndsaml 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. ✅
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
- Automatisér netværksenheder med cli_command
- delegate_to & run_once til orkestrering
- Koordinér web-, app- & databaselag
- Dræn og genaktivér load balanceren