Dette er ein maskinomsett tekst som kann innehalda feil!
Um du har gjort den same uppgåva for tredje gong, er det på tide å automatisera ho. Skripting handlar um å lata maskina gjera det kjedelege arbeidet for deg, raskare og utan å gløyma noko.
Kvifor automatisera?
Nokre oppgåver i IT-drift vert ofte gjorde:
- Oppdatere tenarar
- Opprette brukarar
- Ta backup
- Restarta tenester etter ei oppdatering
- Sjekke at tenester køyrer
Å gjera desse manuelt kvar gong tek tid, og det er lett å gløyma eit steg. Eit skript gjer det same kvar gong, utan å klage.
Bash: Skripting i Linux
Bash er skalet (terminalen) i dei fleste Linux-distribusjonane, og det kan òg køyre skript. Eit Bash-skript er rett og slett ei tekstfil med kommandoar som vert køyrde i rekkjefølgd.
Ditt fyrste skript
Lag ei fil som heiter oppdater.sh:
#!/bin/bash
# Uppdater pakkelisti og installer uppdateringar
echo "Oppdaterer systemet..."
sudo apt update
sudo apt upgrade -y
echo "Ferdig!"
Gjer fila kjørbar og køyra ho:
chmod +x oppdater.sh
./oppdater.sh
# Gjør skriptet kjørbart
# Køyra skriptet
#!/bin/bash
Den fyrste linja vert kalla ein shebang. Ho fortel operativsystemet at fila skal køyrast med Bash. Utan ho veit ikkje systemet kva program som skal tolka skriptet.
Variablar og innspel
#!/bin/bash
BRUKERNAVN=$1
if [ -z "$BRUKERNAVN" ]; then
echo "Bruk: ./lag_bruker.sh <brukernavn>" # Bruk: ./lag_bruker.sh <brukernavn>
exit 1
fi
sudo adduser "$BRUKERNAVN"
sudo usermod -aG sudo "$BRUKERNAVN"
echo "Brukar $BRUKERNAVN skapt med sudo-tilgang." # Brukar $BRUKERNAVN skapt med sudo-tilgang.
Her tek skriptet inn eit brukernamn som argument ($1 er det fyrste argumentet). Um du køyrer ./lag_brukar.sh ola, vil det skapa brukaren ola og gjeva han sudo-tilgang.
Nyttige Bash-konsept
| Konsept | Døme | Kva det gjer |
|---|---|---|
| Variabel | NAVN="Ola" | Lagrar ein verdi |
| Argument | $1, $2 | Input frå kommandolinja |
| If-sjekk | if [ -f "fil.txt" ]; then | Sjekkar om ei fil finst |
| For-lykke | for f in *.log; do | Gjer noko for kvar fil som passar |
| Pipe | cat logg.txt \| grep "ERROR" | Sender output frå ei kommando til ei annan |
PowerShell: Skripting i Windows
PowerShell er Windows sitt svar på Bash, men det er meir objektorientert. Det arbeider med objekt i staden for berre tekst, noko som gjer det kraftfullt for administrasjon av Windows-system.
Døme: Sjekk diskplass
# Sjekk ledig diskplass
Get-PSDrive -PSProvider FileSystem | Select-Object Name,
@{Name="Brukt (GB)"; Expression={[math]::Round($_.Used / 1GB, 2)}},
@{Name="Ledig (GB)"; Expression={[math]::Round($_.Free / 1GB, 2)}}
Døme: Installera programvare med Winget
# Installer fleire program på ein gong
winget install Mozilla.Firefox
winget install Microsoft.VisualStudioCode
winget install Git.Git
winget install Python.Python.3.12
Dette er mykje raskare enn å lata ned og installera alt manuelt. Du kan lagra lista i eit skript og køyra det kvar gong du set opp ei ny maskin.
Oppgåve 1 – Lag eit oppdaterings-skript
Skriv eit Bash-skript som:
- Oppdaterer pakkelista
- Installerar alle tilgjengelege oppdateringar
- Startar Nginx på nytt (eller ei anna teneste du har køyrande)
- Skriv ut ei melding når det er ferdig
Køyr det på ein av dine VM-ar og sjå at det fungerer.
Oppgåve 2 – Automatiser maskinoppsett
Lag eit PowerShell-skript (.ps1) eller ei enkel liste med winget install-kommandoar for alle programma du treng på ein ny PC. Hugs over:
- Kva program installerer du alltid?
- Kan du òg konfigurera nokre innstillingar med skriptet?
Neste gong du set opp ei maskin, køyrer du berre skriptet i staden for å bruke ein time på manuell installasjon.
Oppsummering
- Um du gjer noko meir enn to gonger, vurder å automatisera det
- Bash (Linux) og PowerShell (Windows) er dei vanlegaste verktøya for skripting
- Bash-skript er tekstfiler med kommandoar som vert køyrde i rekkjefølgd
- PowerShell arbeider med objekt og er kraftig for Windows-administrasjon
- Variablar, argument, if-sjekkar og løkker er dei viktigaste byggjeklossane