Kilka labów w domu sobie już zbudowałem. W międzyczasie, zacząłem się uczyć Ansibla i w ramach tej nauki, postanowiłem stawianie takiego labu zautomatyzować.
Pomijając HW i OS, niezbędne “klocki” aby lab zaczął robić to co planuję to taki całkiem kompletny “open source stack”:
- BIND 9 - lokalny DNS,
- Gitlab-CE - zapewniający mi lokalne środowisko CI do budowy i testowania aplikacji, głównie nawet, do budowy różnych scenariuszy testowych;
- Hashicorp Nomad, Consul i Vault - lokalne środowisko CD, zapewniające orkiestrację dla dockera i systemowych runtime-ów, dostępność serwisów i bezpieczeństwo różnych danych uwierzytelniających i autoryzujących;
- SonarQube jako SAST i agregator raportów z testów,
- Cypress do testów akceptacyjnych;
- Trivy - do sprawdzania bezpieczeństwa obrazów dockera;
- ZAP - do testów bezpieczeństwa aplikacji;
Mam do tego jeden “serwer” 12-rdzeniowy z 32GB RAM. Szału nie ma i nie będzie. Mmniejsza o kolejność, na razie mam zrealizowaną automatyzację następujących komponentów:
- Generowania maszyn wirtualnych w oparciu o bazowy obraz Fedora Cloud 34;
- Zaopatrywania serwera i maszyn wirtualnych w certyfikaty TLS. Rola ta bazuje na CloudFlare-owym
cfssl
icfssljson
. Serwer robi za self-signed CA, tam generują się certy dla maszynek i są dystrybuowane gdzie trzeba; Rozróżniane są: Fedora, CentOS i Ubuntu; - Podstawowa instalacja i konfiguracja Hashicorp-owego trio z rozróżnieniem (w
~/.ansible/inventory
) na komponenty serwerowe i klienckie tych klastrów. Wyzwaniem tutaj będzie dopiero zaawansowana konfiguracja np. Consula jako back-end storage dla Vaulta przy włączonych ACL-ach na Consulu. - Podstawowa instalacja Gitlab-CE na maszynce wirtualnej FC34, cała konfiguracja wciąż przede mną.
Prócz powyższego mam juz oczywiście postawiony lokalny DNS (z sink-hole-em), więc tego chyba nie będę automatyzował, bo nie jest to kluczowe. Zależy mi głównie na komponentach CI/CD.
W następnej części opiszę konfigurację klastra CD - Nomada, Consula i Vaulta. Od czasu kiedy się za to zabrałem pierwszy raz w marcu i kwietniu 2020, minęło już trochę czasu i kilka spraw się zdezaktualizowało, a Hashicorp wykonał świetną robotę rozwijając to oprogramowanie, dzięki czemu nie ustępuje K8s.