DevOps-bootcamp · leksjon

include_role og import_role ved kjøring

Kall roller dynamisk midt i en play.

Leksjon 3 av 413 trinn

include_role og import_role ved kjøring er en gratis leksjon i DevOps-bootcamp på CoddyKit. Dette er leksjon 3 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.

Utover roles-listen

Den overordnede roles-listen bruker roller før noen oppgaver kjører. Noen ganger trenger du en rolle midt i play-kjøringen, akkurat der en oppgave ligger.

Kall en rolle som en oppgave

Både include_role og import_role lar deg kalle en rolle fra tasks-delen, på linje med de andre trinnene dine.

tasks:
  - import_role:
      name: nginx

import_role er statisk

import_role behandles når playbooken analyseres, før kjøringen starter. Oppgavene settes inn tidlig, så de kan ikke avhenge av runtime-data.

include_role er dynamisk

include_role behandles under kjøringen, idet oppgaven nås. Den kan reagere på fakta og registrerte resultater.

tasks:
  - include_role:
      name: backup
    when: do_backup

Kjør en rolle i en løkke

Fordi include_role kjører dynamisk, kan du plassere den i en loop og bruke den samme rollen med forskjellige variabler i hver gjennomgang.

- include_role:
    name: deploy_app
  loop: "{{ app_list }}"

import_role kan ikke bruke loop

Siden import_role løses ved analyse av playbooken, støtter den ikke loop. Bruk include_role når du trenger å gjenta en rolle.

Slik oppfører when seg forskjellig

En when på import_role kopierer betingelsen til hver oppgave i rollen. En when på include_role styrer hele rollen som én enhet.

Send variabler på begge måter

Begge formene godtar vars for å parameterisere rollen, på samme måte som roles-listen. Verdiene sendes direkte inn i den inkluderte rollen.

- include_role:
    name: web
  vars:
    http_port: 8080

Tagger og statisk kontra dynamisk

Med import_role er tagger på de importerte oppgavene synlige for --list-tags. Med include_role må du bruke tagger på selve inkluderingen.

Velg riktig verktøy

Bruk import_role for en forutsigbar struktur som alltid kjøres. Bruk include_role når rollen må kjøres betinget eller i en loop.

Samme mønster på to nivåer

Ansible tilbyr det samme skillet mellom statisk og dynamisk for oppgavefiler: import_tasks og include_tasks fungerer på nøyaktig samme måte som disse rolle-nøkkelordene.

Rask kontroll

Husk hvilket nøkkelord som kan bruke en rolle i en loop.

Oppsummering

Bruk import_role for statisk struktur ved analyse av playbooken, og include_role for dynamisk kjøring under runtime med løkker og betingelser. 🔁

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 «include_role og import_role ved kjøring» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien DevOps-bootcamp, inkludert «include_role og import_role ved kjøring», 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 «include_role og import_role ved kjøring»?

Kall roller dynamisk midt i en play. 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 3 av 4.

Hvor lang tid tar leksjonen «include_role og import_role ved kjøring»?

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