Miljövariabler och hemligheter
Lär er att hantera känslig information och miljöspecifik konfiguration säkert i GitHub Actions.
Miljövariabler och hemligheter är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 3 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.
Miljövariabler och secrets: grunderna
Välkomna till lektion 3! Inom CI/CD behöver ni ofta konfigurera era pipelines med dynamiska värden eller känslig information.
Det är här miljövariabler och secrets blir oumbärliga. De gör det möjligt för era arbetsflöden att anpassas till olika scenarier och hantera känsliga data på ett säkert sätt.
Varför använda dem i CI/CD?
Föreställ er att ni driftsätter till olika miljöer (utveckling, staging och produktion) eller ansluter till externa tjänster med API-nycklar.
- Flexibilitet: Med miljövariabler kan ni ändra beteendet utan att ändra arbetsflödesfilen.
- Säkerhet: Secrets skyddar känsliga data som lösenord och API-token från att exponeras.
- Återanvändbarhet: Definiera konfigurationer en gång och använd dem i flera jobb eller steg.
Miljövariabler i Actions
En miljövariabel är ett värde med ett dynamiskt namn som kan påverka hur processer som körs beter sig. I GitHub Actions är miljövariabler centrala för att göra era arbetsflöden konfigurerbara.
Ni kan definiera egna miljövariabler eller använda de många inbyggda variabler som GitHub Actions tillhandahåller.
Inbyggda miljövariabler i GitHub Actions
GitHub Actions tillhandahåller automatiskt många användbara, fördefinierade miljövariabler. De ger er information om repositoryt, arbetsflödeskörningen och mycket annat.
GITHUB_SHA är till exempel commit-hashen, och GITHUB_REF är namnet på den gren eller tagg som utlöste arbetsflödet.
Ni kommer åt dem genom kontextobjektet github i uttryck eller direkt som skalvariabler om de har mappats till env.
name: Print Context Variables
on: [push]
jobs:
display_info:
runs-on: ubuntu-latest
steps:
- name: Show commit SHA
run: echo "Commit SHA: ${{ github.sha }}"
- name: Show branch/tag ref
run: echo "Ref: ${{ github.ref }}"Anpassade miljövariabler: arbetsflödets omfattning
Ni kan definiera egna miljövariabler på arbetsflödes- eller jobbnivå. Variabler som definieras på arbetsflödesnivå är tillgängliga för alla jobb och steg i arbetsflödet.
Använd nyckelordet env på den översta nivån i arbetsflödesfilen för att ange dem.
name: Workflow-level Env Var
on: [push]
env:
GREETING_MESSAGE: "Hello from Workflow!"
jobs:
my_job:
runs-on: ubuntu-latest
steps:
- name: Access workflow variable
run: echo "${{ env.GREETING_MESSAGE }}" # Access via env context
- name: Access workflow variable (shell)
env:
MY_VAR_IN_SHELL: ${{ env.GREETING_MESSAGE }}
run: echo "$MY_VAR_IN_SHELL" # Access as shell variableAnpassade miljövariabler: jobb- och stegomfattning
För mer specifika behov definierar ni miljövariabler på jobb- eller stegnivå. En variabel som definieras för ett jobb är tillgänglig för alla dess steg, medan en variabel på stegnivå endast är tillgänglig för det steget.
Det ger er detaljerad kontroll över konfigurationen.
name: Job & Step-level Env Vars
on: [push]
jobs:
my_job:
runs-on: ubuntu-latest
env:
JOB_VAR: "Value for this job"
steps:
- name: Access Job-level variable
run: echo "Job Var: ${{ env.JOB_VAR }}"
- name: Step-specific variable
env:
STEP_VAR: "Value for this step"
run: echo "Step Var: ${{ env.STEP_VAR }}"
- name: Try to access step var in another step
run: echo "Trying to access: ${{ env.STEP_VAR }}" || true # Will be emptyIntroduktion till GitHub Secrets
Miljövariabler passar bra för icke-känsliga data, men hur gör ni med konfidentiell information som API-nycklar, databaslösenord eller privata token?
Det är här GitHub Secrets kommer in. Med dem kan ni lagra känslig information på ett säkert sätt och komma åt den i era arbetsflöden utan att exponera den i repositoryts kod eller loggar.
- Krypterade: Lagrade på ett säkert sätt av GitHub.
- Maskeras: Döljs automatiskt i arbetsflödesloggar.
- Kontrollerad åtkomst: Endast tillgängliga för specifika arbetsflöden.
Skapa GitHub Secrets
Secrets skapas och hanteras via inställningarna för ert repository eller er organisation på GitHub, inte direkt i arbetsflödesfilerna.
- Gå till ert repositorys Settings.
- Gå till Secrets and variables > Actions.
- Klicka på New repository secret (eller på organisationsvarianten för större omfattning).
- Ange ett Name (till exempel
MY_API_KEY) och klistra in Value.
När en secret har sparats kan ni inte visa värdet igen; ni kan bara uppdatera eller ta bort den.
Använda secrets i arbetsflöden
För att använda en secret refererar ni till den via kontextobjektet secrets i arbetsflödet, på samma sätt som ni använder env för miljövariabler.
GitHub maskerar automatiskt secrets i loggarna och ersätter deras värden med *** för att förhindra oavsiktlig exponering.
name: Use a Secret Demo
on: [push]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Display a secret (redacted)
run: echo "My secret key is: ${{ secrets.MY_API_KEY }}"
# GitHub Actions automatically redacts the value in logs.
- name: Pass secret to an environment variable
env:
API_KEY_ENV: ${{ secrets.MY_API_KEY }}
run: echo "API Key in env: $API_KEY_ENV"Bästa praxis för säker hantering av secrets
Säker hantering av secrets är avgörande för integriteten hos er CI/CD-pipeline. Följ alltid dessa riktlinjer:
- Minsta möjliga behörighet: Ge endast åtkomst till secrets där det är absolut nödvändigt.
- Hårdkoda aldrig: Bädda inte in secrets direkt i arbetsflödesfiler eller annan kod i repositoryt.
- Undvik loggning: Även om GitHub maskerar secrets bör ni undvika egna echo-kommandon som av misstag kan avslöja delar av dem.
- Rotera regelbundet: Ändra era secrets med jämna mellanrum för att minska risken för att de komprometteras.
- Miljöspecifika: Använd olika secrets för utvecklings-, staging- och produktionsmiljöer.
Snabbkontroll: miljövariabler kontra secrets
Vilket påstående beskriver korrekt en viktig skillnad eller funktion hos miljövariabler och secrets i GitHub Actions?
Sammanfattning: Säkra konfigurationer
Utmärkt! Ni har framgångsrikt utforskat hur konfigurationer hanteras i era GitHub Actions-arbetsflöden.
- Miljövariabler hjälper er att tillföra icke-känsliga, dynamiska data till era arbetsflödeskörningar och kan anpassas på arbetsflödes-, jobb- eller stegnivå.
- Secrets är avgörande för säker hantering av känslig information, till exempel API-nycklar, och säkerställer att den förblir krypterad och inte hamnar i er offentliga kod.
- Följ alltid säkerhetsrutiner enligt bästa praxis när ni arbetar med secrets, så att era driftsättningar skyddas mot sårbarheter.
När ni behärskar dessa koncept blir era CI/CD-pipelines både flexibla och säkra!
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 ”Miljövariabler och hemligheter” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Miljövariabler och hemligheter”, 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 ”Miljövariabler och hemligheter”?
Lär er att hantera känslig information och miljöspecifik konfiguration säkert i GitHub Actions. 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 3 av 4.
Hur lång tid tar lektionen ”Miljövariabler och hemligheter”?
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
- Introduktion till Continuous Deployment
- Distribuera till en stagingmiljö
- Miljövariabler och hemligheter
- Driftsätt i produktion med godkännandegrindar