Hvor variabler kommer fra og prioritet
Et første kart over variabelkilder.
Hvor variabler kommer fra og prioritet er en gratis leksjon i DevOps-bootcamp på CoddyKit. Dette er leksjon 4 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.
Så mange kilder
Den samme variabelen kan settes mange steder: i inventory, play-vars, filer, på kommandolinjen og mer. Så hvilken verdi vinner faktisk? 🌟
Prioriteten avgjør
Ansible følger en fast rekkefølge som kalles variabelprioritet. Når et navn er satt to ganger, overstyrer kilden med høyere prioritet den med lavere prioritet.
Rollenes defaults har lavest prioritet
Verdier i en rolles mappe for defaults ligger helt nederst. De er ment å være enkle å overstyre med nesten alt annet.
# roles/web/defaults/main.yml
http_port: 80Inventory-variabler
Variabler som er satt i inventory, for eksempel i group_vars eller host_vars, har høyere prioritet enn rolledefaults, men lavere enn variabler på play-nivå.
# group_vars/web.yml
http_port: 8080Play-vars har høyere prioritet
Variabler under nøkkelen vars i et play har høyere prioritet enn inventory-verdier. Definerer du en verdi her, overstyrer den alt i group_vars.
- hosts: web
vars:
http_port: 9090Task-vars gjelder snevert
Du kan knytte vars til én oppgave. Verdien gjelder bare der og har høyere prioritet enn bredere play-vars.
- debug:
var: http_port
vars:
http_port: 1234Registrerte variabler og set_fact
Verdier du henter inn med register eller setter under en kjøring med set_fact, ligger høyt i rekkefølgen, rett under extra vars.
- set_fact:
http_port: 7000Extra vars ligger øverst
Extra vars fra kommandolinjen overstyrer alt annet. Det du sender med -e, er det endelige svaret for den kjøringen.
ansible-playbook site.yml -e http_port=443Siste definisjon vinner på samme nivå
Når to kilder har samme nivå, får den som lastes inn sist, virkning. Prioritet først, innlastingsrekkefølge for å avgjøre likhet.
Hold det enkelt
Du trenger sjelden å huske hele oversikten. Legg fornuftige verdier i defaults, overstyr bevisst, og unngå å sette det samme navnet overalt.
Feilsøk verdien du fikk
Usikker på hvilken verdi som vant? Skriv den ut med debug for å se det løste resultatet før du stoler på det i produksjon.
- debug:
var: http_portHurtigsjekk
Hvilken variabelkilde har høyest prioritet?
Oppsummering
Du har kartlagt prioritetshierarkiet: defaults lavest, deretter inventory, play- og task-vars, så set_fact, med extra vars øverst. ✨
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 «Hvor variabler kommer fra og prioritet» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien DevOps-bootcamp, inkludert «Hvor variabler kommer fra og prioritet», 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 «Hvor variabler kommer fra og prioritet»?
Et første kart over variabelkilder. 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 4 av 4.
Hvor lang tid tar leksjonen «Hvor variabler kommer fra og prioritet»?
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
- Definere og bruke vars i en play
- Syntaksen for {{ }}-substitusjon
- Ekstra variabler på kommandolinjen
- Hvor variabler kommer fra og prioritet