Keri sisuni

DevOps Lite

IT-infrastruktuuri automatiseerimine: käsitsi tööst korratava, versioonihallatud ja kontrollitud muutuseni. Viie kohtumisega ehitad kihthaaval terve pinu, kus iga kiht on kood Gitis.

Kursuse pinu: Git ja CI/CD tarnivad muutuse neljakihilisse taristusse Sinu Git-repo playbookid, Dockerfile, HCL K4 · CI/CD GitHub Actions lint → test → build image → GHCR roheline = võib tarnida tarne Mitu masinat, ise taastuv Pod, Deployment, Service, skaleerimine K5 · Kubernetes (k3s) Rakendus konteinerites image, volume, võrk, rootless K3 · Podman, Docker, Compose OS, kasutajad, teenused soovitud olek, changed=0, rollid, Vault K1–K2 · Ansible Virtuaalmasinad plan → apply, state, drift K5 · Terraform (OpenTofu) Kooli Proxmoxi klaster: vm1 (control node), vm2, vm3
Maht 5 kohtumist × 4 akadeemilist tundi, üle nädala (loeng kuni 30 min, ülejäänu praktikum) + 58 akadeemilist tundi iseseisvat tööd
Eeldused Linuxi käsurida, SSH, tekstiredaktor, Giti alused, GitHubi konto
Keskkond kooli Proxmoxis kolm AlmaLinux 9 VM-i; ühendus VS Code Remote-SSH või PowerShelli ssh kaudu, kodust VPN-iga
Abi kursuse Discord; oma repos issue Vajan abi
Küsimused ja teated github.com/hkhk-automation/its25-arutelu/discussions (ainult ITS-25)

Kohtumised

Teema Klassis Kodus
K1 Ansible alused: idempotentsus ja esimene playbook halb skript vs soovitud olek; inventar, ad-hoc, faktid; playbook (user, package, copy, service); changed=0; --check --diff; drift; SSH-võtmed; üks playbook kolmele masinale admin.yml, SSH turvamine, paketid, raport, cron, drift; oma playbook
K2 Ansible sügavamalt: kolmekihiline rakendus Pinu: vm1 nginx koormusjaotur + PostgreSQL, vm2 ja vm3 rakendus. Grupid lb/app/db; group_vars ja host_vars, eelistusjärjekord; playbooki ülesehitus: mitu play'd, task-failid (import_tasks, include_tasks), handlerid, Jinja2 mall (hostvars), loop, when, register; rollid ja site.yml. Iga sammu juures: kontroll enne käivitamist ja ad-hoc käsk pärast. Vead, mille leiad ja parandad: 502 (SELinux, tulemüür), vale port host_vars-ist, vigane mall (validate), üks rakendus maas. Lisaülesanne: andmebaasi parool Vaulti. Tõend: curl vastab vaheldumisi vm2 ja vm3, üks rakendus maas ja leht töötab edasi kolmas rakendusserver ainult inventari kaudu; uuendus masinhaaval (serial), delegate_to/run_once, block/rescue, requirements.yml; istutatud vigade otsing
K3 Konteinerid: Podman, Docker ja Compose lühike Dockeri kordus (image, konteiner, Dockerfile, volume, võrk); Podman: AlmaLinuxi vaikimisi tööriist, sama CLI, ilma deemonita ja ilma root'ita, pod'id; Docker vs Podman: millal kumb; Compose (docker compose / podman compose): depends_on, healthcheck, .env; Ansible paigaldab stacki kolme teenusega stack (rakendus + andmebaas + reverse proxy) Ansible rolliga VM-ile, teine jooks changed=0
K4 CI/CD: automaatne kontroll, ehitus ja tarne GitHub Actions (trigger, job, step, runner); ansible-lint, yamllint, saladuste otsing; punase pipeline'i lugemine; image GHCR-i; secrets, needs; branch protection pipeline K3 stackile: lint → ehitus → GHCR; tarne VM-ile Ansible'iga
K5 Terraform (OpenTofu) ja Kubernetes init → plan → apply → destroy; state ja drift; muutujad, outputs; k3s, kubectl; Pod, Deployment, Service; skaleerimine, rolling update; ConfigMap, Secret lõputöö

K5-s kasutame OpenTofut (tofu): Terraformi avatud lähtekoodiga haru, sama keel ja samad käsud (terraform plan = tofu plan).

Lõputöö

Üks probleem oma VM-idest või kodulaborist, lahendatud vähemalt kolme kursuse kihiga (nt Terraform → Ansible roll → Compose või Kubernetes, pipeline kontrollib). Saladused krüptitud, README-s käivitusjuhis ja tõend, et teine jooks ei muuda midagi.

Läbivad tööviisid

Idempotentsus sama samm annab teisel käivitusel sama tulemuse: mkdir -p → Ansible changed=0 → OpenTofu No changes
Ennusta, siis kontrolli enne olulist käsku kirjuta üles, mida ootad. Kui tulemus erineb, oled leidnud koha, kus õppida
Viga on samm igas praktikumis läheb midagi valesti, kas teadlikult (drift, halb skript) või nii nagu päris serveris (tulemüür, SELinux, 502). Leiad põhjuse ja parandad selle koodiga, mitte käsitsi

Esitamine

Kuhu iga praktikum on Classroom 50 ülesanne; link tuleb kohtumisel ja sellest tekib sulle oma repo
Tähtaeg kirjas Classroom 50-s; lubatud on üks hilinenud esitus, pärast seda on hinne MA
Läbimine vähemalt 80% praktikumidest, muidu kirjalik eksam
Reegel reposse ei lähe paroole, võtmeid ega tokeneid