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.
repo
for 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.yml
iMyFirst_CICD
repoet. - Legg til nødvendige secrets i
MyFirst_CICD
repoet: Disse inkludererGITHUB_TOKEN
ogPAT_GITHUB
. - Trigger Workflowen: Workflowen kjører automatisk når endringer skyves til
FTD02H-N.wiki
repoet, 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.