DevOps-bootcamp · Lektion

Miljövariabler och hemligheter

Lär er att hantera känslig information och miljöspecifik konfiguration säkert i GitHub Actions.

Lektion 3 av 412 steg

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 variable

Anpassade 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 empty

Introduktion 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.

  1. Gå till ert repositorys Settings.
  2. Gå till Secrets and variables > Actions.
  3. Klicka på New repository secret (eller på organisationsvarianten för större omfattning).
  4. 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!

Gratis att börja

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

  1. Introduktion till Continuous Deployment
  2. Distribuera till en stagingmiljö
  3. Miljövariabler och hemligheter
  4. Driftsätt i produktion med godkännandegrindar
← Tillbaka till DevOps-bootcamp