Skip to content

Blog

Kapsułki do kawy i GitLab CI — jak uprościłem pipeline dla całej organizacji

Jeśli kiedykolwiek używałeś ekspresu na kapsułki, wiesz jak to działa: wkładasz kapsułkę, naciskasz guzik i masz kawę. Nie musisz wiedzieć, jak dokładnie działa zaworek, jaka jest temperatura wody ani skąd bierze się ciśnienie. Ekspres robi swoje, kapsułka dostarcza składniki — ty dostajesz wynik. Dokładnie tak samo zacząłem myśleć o GitLab CI — i tak powstał wzorzec, który uprościł pipeline dla całej organizacji.

  • Copy-paste pipelines: każdy projekt z własnym .gitlab-ci.yml, każdy inny, każdy z błędami
  • Brak spójności: zmiana jednej reguły = ręczna aktualizacja w 15 projektach
  • Duplikacja logiki: kod pipeline rozrzucony po wszystkich repozytoriach

Instalacja Gitlab Runner

W tym wpisie pokażę krok po kroku, jak instaluję GitLab Runnera w praktycznym, produkcyjnym scenariuszu. Skupię się na sprawdzonym podejściu, które stosuję na co dzień — bez zbędnej teorii, za to z naciskiem na poprawną konfigurację, bezpieczeństwo i typowe pułapki, na które łatwo trafić przy pierwszym uruchomieniu runnera.

Jeśli korzystasz z GitLaba do automatyzacji procesów CI/CD i chcesz mieć pełną kontrolę nad tym, gdzie i jak wykonywane są joby, ten materiał jest właśnie dla Ciebie.

Devcontainers + plugin VSCode

W pracy nad wieloma projektami infrastrukturalnymi (OpenTofu, Ansible, Vault, GitLab CI) szybko pojawia się ten sam problem: jak zapewnić powtarzalne, gotowe do pracy środowisko developerskie — bez ręcznego konfigurowania systemu na każdym laptopie czy VM. Artykuł pokazuje konkretne rozwiązanie, które sprawdza się w codziennej pracy.

  • Powtarzalność: identyczne środowisko na każdym hoście — koniec z „u mnie działa”
  • Izolacja: narzędzia nie brudzą systemu hosta — kontener można zniszczyć i postawić od nowa
  • Konfiguracja użytkownika: katalog /userfiles z kluczami SSH, .gitconfig, .zshrc montowany jako bind-mount
  • Automatyzacja: postCreateCommand uruchamia bootstrap przy każdym starcie kontenera
  • Wersjonowanie obrazu: gotowy kontener publikowany w GitLab Container Registry

Utworzenie klastra Vault

Przed Tobą opowieść o tym, jak wdrożyliśmy 3-węzłowy klaster HashiCorp Vault z High Availability przy użyciu nowoczesnych praktyk Infrastructure as Code. Artykuł zawiera konkretne przykłady z naszych repozytoriów, architekturę systemu oraz praktyczne learningi z procesu.

  • Secrets Management: Przechowywanie i rotacja haseł, API keys, kluczy SSH
  • Encryption as a Service: Szyfrowanie i deszyfrowanie danych na żądanie
  • Certificate Management: Automatyczne generowanie i zarządzanie certyfikatami TLS
  • Access Control: Granularne uprawnienia dzięki ACL politykom
  • Audit Logging: Pełna historia dostępu do sekretów

Środowisko deweloperskie z Vagrant

Przed Tobą przewodnik po tym, jak zbudować własny obraz Ubuntu 24.04 dla Vagranta i uruchomić na nim w pełni skonfigurowane środowisko developerskie. Artykuł prowadzi przez cały proces: od instalacji systemu, przez hardening, aż po publikację gotowego .box w GitLab Package Registry i jego ponowne użycie.

  • Powtarzalność: identyczne środowisko na każdej maszynie, bez „u mnie działa”
  • Izolacja: VM nie brudzi hosta — możesz ją zniszczyć i postawić od nowa
  • Automatyzacja: skrypt bootstrap.sh konfiguruje środowisko przy każdym starcie
  • Wersjonowanie: obraz .box jest wersjonowany i przechowywany w GitLab