Projekt zawiera playbooki ansible, dzięki którym możliwe jest konfigurowanie serwerów do prawidłowego działania aplikacji webowych i innych potrzebnych narzędzi.
Konfigurowane są następujące usługi:
- jenkins
- haproxy
- chrony (ntp)
- php
- apache2
- nodejs
Powyższe role są wykorzystywane w celu skonfigurowania środowiska dwóch aplikacji webowych:
- partkeepr
- wordpress
Katalog host_vars/localhost
powinien być symlinkiem do katalogu ../group_vars/jenkins
.
Projekt zapisany na płycie może nie być w stanie go zapisać, dlatego powinien być dodany ręcznie
w przypadku skopiowania projektu na dysk lokalny komputera.
Oprogramowanie Jenkins instalowane jest z repozytorium pkg.jenkins.io
. Rola jest w stanie
instalować wszystkie zdefiniowane rozszerzenia, w tym Jenkins as Code, który
pozwala na automatyczne przygotowanie w pełni działającej instancji tej aplikacji bez potrzeby
wprowadzania dodatkowych konfiguracji.
Oprócz JCasC można zdefiniować dodatkowe skrypty dla dodatku Jenkins Job DSL, umożliwiające automatyczne generowanie zadań Jenkinsa bez potrzeby manualnego ich konfigurowania.
Rola percona
instaluje klaster XtraDB i przeprowadza jego proces inicjalizacji. Bootstrapowany
jest pierwszy host bazy, następne dołączają do klastra, który jest gotowy do pracy i nie wymaga
wprowadzania dodatkowych konfiguracji. Rola jest inteligentna i pamięta, że pierwsza konfiguracja
została wprowadzona.
Konfigurowane jest hasło użytkownika root
, można także definiować bazy danych, użytkowników
oraz ich uprawnienia do bazy.
Rola potrafi instalować PHP w wersji 8.1. Inne wersje wymagają osobnej konfiguracji w katalogu vars
.
Konfigurowana jest domyślnie jedna pula php-fpm, którą można modyfikować lub całkowicie
dostosować do innych potrzeb modyfikując jej szablon.
Możliwe jest definiowanie dodatkowych rozszerzeń PHP, które mają być zainstalowane.
Rola instaluje serwer www apache2
, zarządza jej modułami. Domyślnie włączone są
rewrite
i ssl
. Jest w stanie generować wirtualne hosty dla aplikacji.
Instaluje i konfiguruje load balancer Haproxy. Definiuje jeden frontend
i dowolną ilość
serwerów backend
, do których będzie kierowany ruch.
Projekt zawiera inne role pozwalające na konfigurowanie dodatkowego oprogramowania.