1 Przeprowadzono gruntowną refaktoryzację i rozbudowę skryptu, przekształcając go w modularne i w pełni funkcjonalne narzędzie do
zarządzania cyklem życia serwera.
2
3 Kluczowe zmiany w tej wersji (v2.0):
4
5 - **Modularna architektura**: Skrypt obsługuje teraz komendy (np. `install`, `uninstall`, `deploy_monitoring`), co pozwala na
elastyczne zarządzanie poszczególnymi komponentami bez potrzeby uruchamiania całości.
6
7 - **Idempotentność**: Wszystkie operacje sprawdzają stan systemu przed wykonaniem, co gwarantuje bezpieczeństwo i
przewidywalność przy wielokrotnym uruchamianiu.
8
9 - **Separacja konfiguracji**: Konfiguracje usług (Docker Compose, Prometheus itp.) zostały przeniesione do folderu `templates/`,
oddzielając logikę skryptu od danych konfiguracyjnych.
10
11 - **Nowe moduły opcjonalne**: Dodano możliwość łatwej instalacji i konfiguracji:
12 - `Fail2ban` dla dodatkowego bezpieczeństwa.
13 - Bazy danych `PostgreSQL`.
14 - Systemu agregacji logów `Loki`.
15 - Systemu kopii zapasowych `Restic`.
16
17 - **Ulepszone logowanie i bezpieczeństwo**: Skrypt weryfikuje kompatybilność OS, a wszystkie jego działania są logowane do pliku
`/var/log/autoscript.log`.
18
19 - **Funkcja `uninstall`**: Dodano możliwość czystego i bezpiecznego usunięcia wszystkich komponentów wdrożonych przez skrypt.
20
21 - **Aktualizacja dokumentacji**: `README.md` i `CHANGELOG.md` zostały w pełni zaktualizowane, aby odzwierciedlać nową
funkcjonalność.
22
23 Ta wersja stanowi kamień milowy w rozwoju projektu, czyniąc go potężnym i niezawodnym narzędziem dla administratorów.
|
||
|---|---|---|
| templates | ||
| .gitattributes | ||
| autoscript.conf.example | ||
| CHANGELOG.md | ||
| README.md | ||
| start.sh | ||
AutoScript v2 - Zautomatyzowana Konfiguracja i Zarządzanie Serwerem
1. Przegląd
AutoScript to potężne narzędzie do automatyzacji pełnego cyklu życia serwera opartego o system Debian/Ubuntu. Skrypt przekształca "surowy" serwer w gotowe do pracy, zabezpieczone i monitorowane środowisko produkcyjne. Dzięki modularnej budowie, możesz używać go zarówno do wstępnej konfiguracji, jak i do późniejszego zarządzania poszczególnymi komponentami.
2. Główne Funkcje
- Modularność: Uruchamiaj tylko te części skryptu, których potrzebujesz (
install,deploy_monitoring,uninstallitp.). - Automatyzacja i Idempotentność: Skrypt można bezpiecznie uruchamiać wielokrotnie - zawsze doprowadzi system do pożądanego stanu.
- Hardening (Wzmacnianie Zabezpieczeń): Kompleksowe zabezpieczenie serwera, w tym firewall, niestandardowy port SSH, blokada roota, uwierzytelnianie kluczem,
CrowdSeci opcjonalnieFail2ban. - Środowisko Docker: Wdrożenie Dockera z Traefikiem jako reverse proxy i automatycznymi certyfikatami SSL.
- Monitoring i Alerty: Pełny stos monitoringu (Prometheus, Grafana, Alertmanager) z prekonfigurowanymi regułami.
- Zarządzanie Sekretami: Bezpieczne przechowywanie haseł i kluczy API dzięki
sops. - Funkcje Opcjonalne: Możliwość łatwego doinstalowania bazy danych PostgreSQL, systemu logów Loki czy kopii zapasowych Restic.
- Czysta Deinstalacja: Możliwość wycofania wszystkich zmian za pomocą jednej komendy.
3. Struktura Projektu
autoscript/
├── templates/ # Szablony plików konfiguracyjnych
│ ├── monitoring/
│ └── traefik/
├── autoscript.conf.example # Przykład pliku konfiguracyjnego
├── CHANGELOG.md # Dziennik zmian
├── README.md # Ta dokumentacja
└── start.sh # Główny skrypt wykonawczy
4. Użycie
Krok 1: Konfiguracja
- Sklonuj repozytorium na serwer:
git clone ... - Przejdź do folderu:
cd autoscript - Stwórz plik konfiguracyjny z szablonu:
cp autoscript.conf.example autoscript.conf - Otwórz
autoscript.confi dokładnie wypełnij wszystkie zmienne, zwłaszcza te w sekcjiWYMAGANE.
Krok 2: Uruchomienie Skryptu
Skryptem zarządza się za pomocą komend. Wszystkie komendy należy wykonywać z uprawnieniami root (np. sudo ./start.sh <komenda>).
Główne Komendy:
-
sudo ./start.sh installPełna, pierwsza instalacja. Wykonuje wszystkie niezbędne kroki: instaluje pakiety, konfiguruje zabezpieczenia, wdraża Dockera, Traefika i stos monitoringu. Uruchom tę komendę na nowym serwerze. -
sudo ./start.sh uninstallPełna deinstalacja. Zatrzymuje i usuwa wszystkie usługi, kontenery, wolumeny, a także odinstalowuje pakiety i wycofuje zmiany konfiguracyjne. Używaj z ostrożnością!
Komendy do Zarządzania Modułami:
Możesz zarządzać poszczególnymi częściami systemu niezależnie.
sudo ./start.sh deploy_traefiksudo ./start.sh deploy_monitoringsudo ./start.sh deploy_database(jeśli włączone w konfigu)
Komendy Pomocnicze:
sudo ./start.sh reboot- Bezpieczny restart serwera.sudo ./start.sh update- Aktualizacja pakietów systemowych.
5. Opis Modułów Opcjonalnych
Możesz włączyć je w pliku autoscript.conf.
- Fail2ban: Dodatkowa ochrona, która analizuje logi i blokuje adresy IP wykazujące złośliwą aktywność (np. próby logowania brute-force).
- PostgreSQL: Wdraża kontener z popularną bazą danych. Hasło jest zarządzane przez
sops. - Loki: System do agregacji logów z Twoich kontenerów. Umożliwia ich wygodne przeszukiwanie w Grafanie.
- Restic Backup: Instaluje i konfiguruje
resticdo tworzenia regularnych, szyfrowanych kopii zapasowych do chmury (np. AWS S3, Backblaze B2). Wymaga dodatkowej konfiguracji po stronie dostawcy chmury!
6. Co robić po instalacji?
Po zakończeniu komendy install:
- Nowy Port SSH: Został zmieniony na losowy. Znajdziesz go w pliku
/root/ssh_port.txt. - Logowanie: Logowanie na
rootjest zablokowane. Użyj użytkownikaadminz Twoim kluczem SSH i nowym portem:ssh admin@<IP> -p <PORT>. - TOTP (2FA): Przy pierwszym użyciu
sudozostaniesz poproszony o skonfigurowanie aplikacji do uwierzytelniania (np. Google Authenticator). - Dostęp do usług: Usługi będą dostępne pod subdomenami Twojej domeny (np.
https://grafana.twojadomena.pl).