Var variabler kommer ifrån och deras prioritet
En första översikt över variabelkällor.
Var variabler kommer ifrån och deras prioritet är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för DevOps-bootcamp, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.
Så många källor
Samma variabel kan sättas på många ställen: inventory, play vars, filer, CLI med mera. Så vilket värde vinner egentligen? 🌟
Precedence avgör
Ansible följer en fast ordning som kallas variabelprioritet. När ett namn anges två gånger åsidosätter källan med högre prioritet den med lägre prioritet.
Role defaults ligger lägst
Värden i en rolls mapp för defaults ligger längst ner. De är avsedda att enkelt kunna åsidosättas av nästan allt annat.
# roles/web/defaults/main.yml
http_port: 80Variabler i inventory
Variabler som anges i ditt inventory, till exempel i group_vars eller host_vars, har högre prioritet än role defaults men lägre än variabler på play-nivå.
# group_vars/web.yml
http_port: 8080Play vars ligger högre
Variabler under ett plays vars-nyckel har högre prioritet än värden i inventory. Definierar du ett värde här går det före allt i group_vars.
- hosts: web
vars:
http_port: 9090Task vars är avgränsade
Du kan koppla vars till en enskild task. Värdet gäller bara där och har högre prioritet än bredare play vars.
- debug:
var: http_port
vars:
http_port: 1234Registered och set_fact
Värden som du fångar med register eller anger under körningen med set_fact ligger högt i ordningen, strax under extra vars.
- set_fact:
http_port: 7000Extra vars ligger högst
Extra vars från kommandoraden går före allt annat. Det du skickar med -e är det slutgiltiga värdet under den körningen.
ansible-playbook site.yml -e http_port=443Den sista definitionen vinner inom samma nivå
När två källor ligger på samma nivå får den som lästes in sist genomslag. Först avgör prioriteten, sedan avgör inläsningsordningen vid lika resultat.
Håll det enkelt
Du behöver sällan memorera hela tabellen. Lägg rimliga värden i defaults, åsidosätt medvetet och undvik att ange samma namn överallt.
Felsök det faktiska värdet
Osäker på vilket värde som vann? Skriv ut det med debug för att se det lösta resultatet innan du litar på det i produktion.
- debug:
var: http_portSnabbkontroll
Vilken källa till en variabel har högst prioritet?
Sammanfattning
Du har kartlagt prioritetsordningen: defaults lägst, sedan inventory samt play- och task-variabler, därefter set_fact och överst extra vars. ✨
Lär dig DevOps-bootcamp med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 142
- Lektioner
- 568
Vanliga frågor
Är lektionen ”Var variabler kommer ifrån och deras prioritet” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Var variabler kommer ifrån och deras prioritet”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.
Vad lär jag mig i ”Var variabler kommer ifrån och deras prioritet”?
En första översikt över variabelkällor. Ni övar på DevOps-bootcamp med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig DevOps-bootcamp?
Du behöver inga förkunskaper. Utbildningen i DevOps-bootcamp på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Var variabler kommer ifrån och deras prioritet”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här DevOps-bootcamp-lektionen?
Ja. Varje DevOps-bootcamp-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Definiera och använda vars i ett play
- Substitutionssyntaxen {{ }}
- Extra variabler på kommandoraden
- Var variabler kommer ifrån och deras prioritet