Miljøvariabler og secrets
Lær at håndtere følsomme oplysninger og miljøspecifikke konfigurationer sikkert i GitHub Actions.
Miljøvariabler og secrets er en gratis Intensiv DevOps-uddannelse-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Intensiv DevOps-uddannelse, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.
Miljøvariabler og hemmeligheder: det grundlæggende
Velkommen til lektion 3! I CI/CD skal du ofte konfigurere dine arbejdsgange med dynamiske værdier eller følsomme oplysninger.
Det er her, miljøvariabler og hemmeligheder bliver uundværlige. De gør det muligt for dine arbejdsgange at tilpasse sig forskellige situationer og håndtere følsomme data sikkert.
Hvorfor bruge dem i CI/CD
Forestil dig, at du udruller til forskellige miljøer (udvikling, staging og produktion) eller opretter forbindelse til eksterne tjenester med API-nøgler.
- Fleksibilitet: Miljøvariabler giver dig mulighed for at ændre adfærden uden at ændre arbejdsgangsfilen.
- Sikkerhed: Hemmeligheder beskytter følsomme data som adgangskoder og API-tokens mod at blive eksponeret.
- Genbrug: Definer konfigurationer én gang, og brug dem på tværs af flere jobs eller trin.
Miljøvariabler i Actions
En miljøvariabel er en værdi med et dynamisk navn, som kan påvirke den måde, kørende processer opfører sig på. I GitHub Actions er de afgørende for at gøre dine arbejdsgange konfigurerbare.
Du kan definere dine egne miljøvariabler eller bruge de mange indbyggede variabler, som GitHub Actions stiller til rådighed.
Indbyggede miljøvariabler i GitHub Actions
GitHub Actions leverer automatisk mange nyttige, foruddefinerede miljøvariabler. De giver dig kontekst om repositoryet, kørslen af arbejdsgangen og meget mere.
For eksempel er GITHUB_SHA commit-hashen, og GITHUB_REF er navnet på den gren eller det mærke, der udløste arbejdsgangen.
Du får adgang til dem via kontekstobjektet github i udtryk eller direkte som shell-variabler, hvis de er knyttet til 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 }}"Brugerdefinerede miljøvariabler: arbejdsgangens omfang
Du kan definere dine egne miljøvariabler på arbejdsgangs- eller jobniveau. Variabler, der er defineret på arbejdsgangsniveau, er tilgængelige for alle jobs og trin i arbejdsgangen.
Brug nøgleordet env på det øverste niveau i din arbejdsgangsfil til at angive 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 variableBrugerdefinerede miljøvariabler: omfang på job- og trinniveau
Hvis du har brug for mere specifik styring, kan du definere miljøvariabler på job- eller trinniveau. En variabel, der er defineret for et job, er tilgængelig for alle dets trin, mens en variabel på trinniveau kun er tilgængelig for det pågældende trin.
Det giver dig detaljeret kontrol over din konfiguration.
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 til GitHub Secrets
Miljøvariabler er gode til ikke-følsomme data, men hvad gør du med fortrolige oplysninger som API-nøgler, databaseadgangskoder eller private tokens?
Det er her, GitHub Secrets kommer ind i billedet. De giver dig mulighed for at gemme følsomme oplysninger sikkert og få adgang til dem i dine arbejdsgange uden at eksponere dem i koden eller logfilerne i dit repository.
- Krypterede: Gemmes sikkert af GitHub.
- Maskerede: Skjules automatisk i arbejdsgangens logfiler.
- Kontrolleret adgang: Er kun tilgængelige for bestemte arbejdsgange.
Oprettelse af GitHub Secrets
Hemmeligheder oprettes og administreres via indstillingerne for dit repository eller din organisation på GitHub, ikke direkte i dine arbejdsgangsfiler.
- Gå til Indstillinger for dit repository.
- Gå til Hemmeligheder og variabler > Handlinger.
- Klik på Ny repositoryhemmelighed (eller en organisationshemmelighed, hvis den skal have et større omfang).
- Angiv et Navn (f.eks.
MY_API_KEY), og indsæt Værdien.
Når en hemmelighed er gemt, kan du ikke se dens værdi igen, men du kan opdatere eller slette den.
Brug af hemmeligheder i arbejdsgange
Hvis du vil bruge en hemmelighed, henviser du til den via kontekstobjektet secrets i din arbejdsgang, på samme måde som du bruger env til miljøvariabler.
GitHub maskerer automatisk hemmeligheder i logfiler og erstatter deres værdier med *** for at forhindre utilsigtet eksponering.
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"Bedste praksis for sikker håndtering af hemmeligheder
Sikker håndtering af hemmeligheder er afgørende for integriteten af din CI/CD-arbejdsgang. Følg altid disse retningslinjer:
- Mindst mulige privilegier: Giv kun adgang til hemmeligheder, hvor det er absolut nødvendigt.
- Læg dem aldrig direkte ind: Indsæt ikke hemmeligheder direkte i dine arbejdsgangsfiler eller i kode i dit repository.
- Undgå logning: Selvom GitHub maskerer hemmeligheder, bør du undgå egne echo-kommandoer, som utilsigtet kan afsløre dele af hemmeligheder.
- Skift regelmæssigt: Skift dine hemmeligheder med jævne mellemrum for at minimere risikoen for kompromittering.
- Miljøspecifikke: Brug forskellige hemmeligheder til udviklings-, staging- og produktionsmiljøer.
Hurtigt tjek: miljøvariabler kontra hemmeligheder
Hvilken påstand beskriver korrekt en vigtig forskel på eller funktion ved miljøvariabler og hemmeligheder i GitHub Actions?
Opsummering: Sikre konfigurationer
Fremragende! Du har udforsket, hvordan du administrerer konfigurationer i dine GitHub Actions-workflows.
- Miljøvariabler hjælper dig med at indsætte ikke-følsomme, dynamiske data i dine workflow-kørsler og kan tilpasses på workflow-, job- eller trinniveau.
- Hemmeligheder er afgørende for sikker håndtering af følsomme oplysninger som API-nøgler, så de forbliver krypterede og ikke havner i din offentlige kode.
- Følg altid bedste sikkerhedspraksis, når du arbejder med hemmeligheder, så du beskytter dine udrulninger mod sårbarheder.
Når du mestrer disse begreber, sikrer du, at dine CI/CD-forløb både er fleksible og sikre!
Lær Intensiv DevOps-uddannelse med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 142
- Lektioner
- 568
Ofte stillede spørgsmål
Er lektionen “Miljøvariabler og secrets” gratis?
Ja — alle 3 lektioner i læringssporet Intensiv DevOps-uddannelse, inklusive “Miljøvariabler og secrets”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Miljøvariabler og secrets”?
Lær at håndtere følsomme oplysninger og miljøspecifikke konfigurationer sikkert i GitHub Actions. Du øver dig i Intensiv DevOps-uddannelse med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Intensiv DevOps-uddannelse?
Der kræves ingen tidligere erfaring. Intensiv DevOps-uddannelse på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.
Hvor lang tid tager lektionen “Miljøvariabler og secrets”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Intensiv DevOps-uddannelse-lektion?
Ja. Alle Intensiv DevOps-uddannelse-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Introduktion til Continuous Deployment
- Deployment til et stagingmiljø
- Miljøvariabler og secrets
- Deployment til produktion med godkendelsesporte