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:

  1. Gå til ditt private repository på GitHub (f.eks. MyFirst_CICD).
  2. Klikk på Settings > Secrets and variables > Actions.
  3. Klikk på New repository secret.
  4. Gi din hemmelighet et navn (f.eks. GITHUB_TOKEN, API_KEY, DB_PASSWORD).
  5. 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):

  1. Gå til GitHub Settings.
  2. Klikk på Generate new token.
  3. Velg hvilke rettigheter denne tokenen skal ha (f.eks. repo for full tilgang til alle private og public repos).
  4. 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

  1. Opprett eller rediger en workflow i MyFirst_CICD: Kopier workflowen ovenfor og lim den inn i .github/workflows/ci-cd.yml i MyFirst_CICD repoet.
  2. Legg til nødvendige secrets i MyFirst_CICD repoet: Disse inkluderer GITHUB_TOKEN og PAT_GITHUB.
  3. Trigger Workflowen: Workflowen kjører automatisk når endringer skyves til FTD02H-N.wiki repoet, eller du kan manuelt trigge den via GitHub Actions.
  4. 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.