My_CICD_Side_3_sikerhet - itnett/FTD02H-N GitHub Wiki
Slik Konfigurerer og Sikrer du CI/CD-Integrasjonen
Når du kjører CI/CD-pipelines via GitHub Actions, kjører skriptene dine på GitHub sine egne servere. Dette betyr at du ikke trenger å ha din egen infrastruktur for å kjøre Python-skript, automatisere prosesser, eller deploye applikasjoner. GitHub Actions gir deg et miljø der du kan kjøre skript i et rent og kontrollert miljø.
1. Skjerming av Hemmeligheter (Secrets)
For å holde app keys, tokens, passord, og andre sensitive opplysninger private, bruker du GitHub Secrets. Secrets er miljøvariabler som lagres sikkert av GitHub og brukes i dine workflows uten å eksponere verdiene.
Slik setter du opp Secrets:
- Gå til ditt private repository på GitHub (f.eks. 
MyFirst_CICD). - Klikk på 
Settings>Secrets and variables>Actions. - Klikk på 
New repository secret. - Gi din hemmelighet et navn (f.eks. 
GITHUB_TOKEN,API_KEY,DB_PASSWORD). - Legg inn verdien og klikk på 
Add secret. 
Bruk av Secrets i GitHub Actions:
- name: Run Wiki Migration Script
  run: |
    python WikiMigrationScript.py
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
I eksempelet over blir GITHUB_TOKEN injisert som en miljøvariabel under kjøring av Python-skriptet. Denne tokenen kan brukes til å autentisere mot GitHub for å pushe endringer.
2. Kjøre Skriptene på GitHub Actions
GitHub Actions kjører dine pipelines på virtuelle maskiner på deres servere. Når du konfigurerer en workflow, spesifiserer du hvilket operativsystem og hvilke miljøer som skal brukes (for eksempel Ubuntu, Python 3.x, etc.).
3. Slik Konfigurerer du Tilganger Mellom Repositoryer
For å gi MyFirst_CICD-repoet tilgang til FTD02H-N og FTD02N, må du bruke en token eller personal access token (PAT) som har nødvendige rettigheter til å pushe til disse repoene. Dette kan gjøres på følgende måte:
Opprett en Personal Access Token (PAT):
- Gå til GitHub Settings.
 - Klikk på 
Generate new token. - Velg hvilke rettigheter denne tokenen skal ha (f.eks. 
repofor full tilgang til alle private og public repos). - Generer og kopier tokenen.
 
Legg PAT-en til som en Secret:
Gå til MyFirst_CICD repoet og legg PAT-en til som en secret med navnet PAT_GITHUB.
4. Eksempel på CI/CD Workflow for Migrering
Her er et eksempel på en GitHub Actions workflow som vil automatisk kjøre WikiMigrationScript.py når det skjer endringer i FTD02H-N.wiki. Workflowen pusher så endringene til FTD02N og FTD02N.wiki.
name: Wiki Migration CI/CD
on:
  push:
    branches:
      - master
    paths:
      - "FTD02H-N.wiki/**"
  workflow_dispatch:
jobs:
  migrate:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout FTD02H-N.wiki
      uses: actions/checkout@v2
      with:
        repository: itnett/FTD02H-N.wiki
    - name: Checkout MyFirst_CICD
      uses: actions/checkout@v2
      with:
        repository: itnett/MyFirst_CICD
        path: cicd_repo
    - name: Set up Python
      uses: actions/setup-python@v2
      with:
        python-version: '3.11'
    - name: Install dependencies
      run: |
        cd cicd_repo
        python -m pip install --upgrade pip
        pip install -r requirements.txt
    - name: Run Wiki Migration Script
      run: |
        cd cicd_repo
        python WikiMigrationScript.py
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        PAT_GITHUB: ${{ secrets.PAT_GITHUB }}
    - name: Commit and push changes to FTD02N
      run: |
        cd cicd_repo/git/code_repo
        git add .
        git commit -m "Automated migration update"
        git push https://itnett:${{ secrets.PAT_GITHUB }}@github.com/itnett/FTD02N.git
    - name: Commit and push updated wiki pages to FTD02N.wiki
      run: |
        cd cicd_repo/git/wiki_repo
        git add .
        git commit -m "Updated wiki pages with code links"
        git push https://itnett:${{ secrets.PAT_GITHUB }}@github.com/itnett/FTD02N.wiki.git
5. Slik Bruker du Dette Oppsettet
- Opprett eller rediger en workflow i 
MyFirst_CICD: Kopier workflowen ovenfor og lim den inn i.github/workflows/ci-cd.ymliMyFirst_CICDrepoet. - Legg til nødvendige secrets i 
MyFirst_CICDrepoet: Disse inkludererGITHUB_TOKENogPAT_GITHUB. - Trigger Workflowen: Workflowen kjører automatisk når endringer skyves til 
FTD02H-N.wikirepoet, eller du kan manuelt trigge den via GitHub Actions. - Overvåk og Administrer: Sjekk outputen i GitHub Actions for å overvåke prosessen, se på logger for feilsøking, og sikre at koden og wiki-sidene blir oppdatert som forventet.
 
Med dette oppsettet har du en kraftig og automatisert pipeline som holder dine repos og wiki-sider oppdatert og synkronisert, samtidig som sensitive opplysninger holdes trygge med GitHub Secrets.