To było intensywne 100 dni. Pomimo trudności udało mi się ukończyć wyzwanie #100DaysOfLinux. W tym miejscu chciałbym podsumować ten czas pod różnymi aspektami.
# Wpisy na blogu
Blog służy mi w dużej mierze jako notatnik. Nie rozpisuje się dogłębnie w daną tematykę od samych podstaw. Traktuję go raczej w formie przypomnienia „wiem, gdzie co znaleźć„. Właśnie z taką ideą tworzyłem wpisy podczas trwania wyzwania. Są to notatki dotyczące danego zagadnienia (jak zainstalować, wdrożyć, skonfigurować, uruchomić itp). Część powstała na bazie przerabianych kursów, część na bazie realizowanych labów, część na podstawie projektu labowego.
- Wirtualne hosty z różnymi wersjami PHP – nginx [Ubuntu]
- Zarządzanie usługami – systemctl
- GitHub – Repozytoria zdalne i Pull requesty [GIT]
- Serwer WWW w oparciu o NGINX
- Wstęp do Ansible
- Edycja plików YAML w NANO
- ebook „77 zadań dla adminów” – ODPOWIEDZI
- VPN w oparciu o OpenVPN
- Linux jako router – na podstawie RHEL
- Logi systemowe – syslog, journalctl
- Samba – serwer plików i drukarek, kontroler domeny
- Wstęp do SELinux
- HAProxy + keepalived
- Testowanie dysków twardych i pamięci RAM
- Szyfrowanie inventory Ansible
- strace – Linux syscall tracer
- Katalog /proc + Out of memory Killer
- Jak odzyskać hasło roota MySQL?
- Optymalizacja web serwera – Apache
- Naprawa systemowych tabel [MariaDB]
- Odzyskiwanie danych w systemie Linux
- Uncomplicated Firewall – UFW
- Debugowanie problemów z dyskami
- Zarządzanie dyskami na Linuxie
- Debugowanie sieci na Linuxie
- Dodatkowa pamięć SWAP
- ADL – notatki, one-lines
- WebHosting lab w oparciu o Proxmox
# 10-dniowe podsumowania
- 1/10 wyzwania #100DaysOfLinux
- 2/10 wyzwania #100DaysOfLinux
- 3/10 wyzwania #100DaysOfLinux
- 4/10 wyzwania #100DaysOfLinux
- 5/10 wyzwania #100DaysOfLinux
- 6/10 wyzwania #100DaysOfLinux
- 7/10 wyzwania #100DaysOfLinux
- 8/10 wyzwania #100DaysOfLinux
- 9/10 wyzwania #100DaysOfLinux
# Statystyka dzienna i liczbowa
22 dni pracowałem nad projektem labowym. Czasami były to pełne dni, czasami to były dni dzielone np. z kursem. Wówczas przerabiałem na przykład teoretyczne zagadnienia w kursie i w celu dopełnienia dnia praktyką siadałem do projektu.
W dni, kiedy miałem trochę mniej czasu (służby, niedziele, wyjazdy) poświęcałem go na przegląd newsów, czytanie artykułów, oglądanie filmów na YT, słuchanie podcastów. Łącznie wyszło 35 takich dni. Zaowocowały one solidną dawką wiedzy teoretycznej, którą mogę wykorzystać w codziennej pracy.
Kurs Akademia Debugowania Linuksa przerabiałem 20 dni, natomiast kurs Administracja Serwerami Linux (który rozpocząłem jeszcze przed wyzwaniem) zajął mi 16 dni.
Podczas wyzwania utworzyłem 27 wpisów tematycznych + 1 wpis opisujący realizację projektu labowego.
Jeżeli chodzi o ilość czasu poświęcanego każdego dnia na wyzwanie to jest to przedział od 20 minut (newsy, artykuły, YT) do nawet 10-12 godzin dziennie (projekty praktyczne).
# Przerobione projekty
Oprócz przerabianych kursów i dużego projektu labowego realizowałem również mniejsze projekty. Ich głównym celem było przećwiczenie danego zagadnienia.
OpenVPN + pfSense (dzień 17)
4 maszyny w VirtualBoxie: dwie z pfSense, trzecia jako serwer VPN, czwarta jako klient VPN. Trzy podsieci, pfSense obsługiwał routing pomiędzy nimi, a następnie klient podpiął się do serwera VPN.
RedHat jako router (dzień 18)
4 maszyny w VirtualBoxie. Trzy maszyny z RedHatem podpięte sieciami wewnętrznymi każda w osobnej podsieci do czwartej maszyny, która pełniła funkcję routera. Umożliwiła ona routing pomiędzy maszynami, a także po zastosowaniu maskarady dostęp do Internetu.
Samba jako kontroler domeny (dzień 24)
Na maszynie wirtualnej zainstalowałem i skonfigurowałem Sambę jako kontroler domeny. Do utworzonej domeny wpiąłem laptopy z systemem Windows. Dodatkowo uruchomiłem profile mobilne (podczas logowania na danym urządzeniu ściągało profil z serwera = użytkownik wszędzie miał swoje pliki).
Lokalne środowisko do tworzenia playbooków Ansible (dzień 52)
W VirtualBoxie uruchomiłem dwie maszyny wirtualne: jedna z Debianem, druga z RockyLinux. Dystrybucje identyczne jak w przypadku projektu labowego. Służyły mi one do testowania tworzonych playbooków Ansible. Playbooki pisałem w VSCode wraz z rozszerzeniem Ansible.
Ćwiczenie ProxySQL (dzień 67)
Chciałem dokładniej przećwiczyć ProxySQL, dlatego w Dockerze uruchomiłem środowisko złożone z 2 kontenerów bazodanowych (MariaDB wraz z replikacją), dwóch kontenerów z phpMyAdmin podlinkowanych do kontenerów bazodanowych oraz jednego kontera z ProxySQL, który robił Load Balancing pomiędzy kontenerami bazodanowymi.
Ćwiczenie HAProxy + keepalived (dzień 85)
Tak jak powyżej w Dockerze uruchomiłem środowisko HA (2x nginx, 2x HAProxy z keepalived).
# Rozwiązania, z jakimi miałem kontakt podczas wyzwania
Są to technologie z którymi miałem mniej lub więcej czasu do czynienia. Jednakże z każdą z nich miałem jakiś kontakt podczas realizacji wyzwania.
- Linux (CentOS, RockyLinux, Debian, Ubuntu, RedHat)
- GIT
- Docker
- Apache
- NGINX
- Ansible
- OpenVPN
- pfSense
- jFrog, ngrok
- Proxmox
- MariaDB
- NFS
- Samba
- php-fpm
- FTP (proftpd)
- ProxySQL
- HAProxy + keepalived
- skrypty bash
- Prometheus
- Grafana
- rsyslog
- phpMyAdmin
- Ansible Semaphore
- fail2ban
- Redis
- Let’s Encrypt
- dnsmasq
- NTP
- Galera Cluster
# Dziennik wyzwania
Przegląd poszczególnych dni można znaleźć na GitHubie (https://github.com/wojtex113/100daysoflinux) oraz na moim profilu firmowym na Instagramie (https://www.instagram.com/wojst_it/) – wyróżnione relacje #100DaysOfLinux.
# Co dalej?
To samo co od dłuższego czasu – rozwój. Tak jak przed wyzwaniem, podczas wyzwania tak również i dalej chcę się rozwijać w kierunku administracji Linuxem. Teraz może trochę mniej intensywnie niż podczas Challengu, ale nadal chcę poznawać nowe technologie, realizować różne projekty labowe, przerabiać kolejne kursy.
Zawodowo chciałbym uzyskać pracę jako Młodszy Administrator Linux, ewentualnie wejść we współpracę z innymi adminami wspierając ich w codziennej pracy.
PS. Nie zgadniesz z czego najczęściej korzystałem podczas tego wyzwania 😀 ChatGPT w połączeniu z promptem „sprawdź gramatycznie:” 😉 Sprawdzał i poprawiał on wszystkie angielskie opisy dniowe we wpisie na GitHubie.