Witajcie!
Jako, że ostatnio tu i ówdzie coraz częstsze prośby o jakieś automatyczne skrypty instalacji i tym podobne, a kończy się to najczęściej marnej jakości skryptami, które albo są dziurawe, albo napisane przez ludzi, którzy być może nie mają pojęcia co robią, więc przekopiują parę poradników do pliku .sh, aby otrzymać swoją wymarzoną chwilę sławy.
Narzędziem, które będę się starał dzisiaj omówić jest LinuxGSM. Jest to narzędzie, które ma pomagać administratorom serwerów w ich instalacji i zarządzaniu. Jest proste w obsłudze, a spora społeczność tegoż narzędzia sprawia, że w razie problemu możemy go szybko znaleźć lub zapytać w przeznaczonym do tego miejscu. Kończąc ten przydługi wstęp przejdźmy do konkretów.
Czym jest LinuxGSM:
LinuxGSM to narzędzie, które przy pomocy prostych komend pozwala nam skrócić czas potrzebny na instalację i konfigurację naszego serwera, czyli mniej czasu na pracę, więcej czasu na granie! ("spend less time on management and more time gaming").
Funkcje LinuxGSM:
- Automatyczna instalacja/aktualizacja serwera
- Konsola*
- Monitor serwera, który pozwoli nam sprawdzać czy z naszym serwerem wszystko w porządku
- Powiadomienia np. Discord
- Backup'y
*Konsola jest dostępna tylko dla serwerów, które posiadają do niej dostęp. W tym przypadku konsola nie będzie aktywna dla serwerów teamspeak3.
Instalacja LinuxGSM:
Instalacja narzędzia jest banalnie prosta, lecz najpierw zacznijmy od instalacji wymaganych pakietów. W tym poradniku użyty został system Debian w wersji 9, a więc komendy trzeba dobrać zależnie od dystrybucji. Polecenia do innych wersji systemów znajdziemy na oficjalnej stronie LinuxGSM dla wybranego przez nas serwera.
⚠️ Jeśli używasz konta root nie musisz używać polecenia sudo!
Instalujemy pakiety:
sudo dpkg --add-architecture i386; sudo apt update; sudo apt install mailutils postfix curl wget file bzip2 gzip unzip bsdmainutils python util-linux ca-certificates binutils bc jq lib32gcc1 libstdc++6 libstdc++6:i386 libmariadb2 curl
Po zainstalowaniu pakietów należy utworzyć użytkownika, z którego uruchamiany będzie nasz serwer
⚠️ Ze względów bezpieczeństwa nie powinno się uruchamiać serwerów i aplikacji z konta root!
⚠️ Przed utworzeniem użytkownika zadbaj o bezpieczne hasło. Możesz użyć na przykład tego generatora
adduser ts3server
Jeśli poprzednio nie zapytano nas o hasło używamy:
passwd ts3server
Podajemy nasze wygenerowane hasło do konta. Następnie musimy zalogować się na to konto używając:
su - ts3server
W zależności od tego czy mamy odpowiednie uprawienia system może poprosić nas o hasło lub zalogować bez podawania go. Następnym krokiem będzie pobranie instalatora narzędzia poleceniem:
wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh ts3server
⚠️ Wszystkie komendy są wykonywane z głównego katalogu użytkownika (~/), musisz dopasować ścieżkę lub używać ścieżek bezwględnych np. /home/ts3server/
Ostatnim krokiem będzie uruchomienie instalacji:
./ts3server install
⚠️ Instalator serwera zapyta czy chcesz używać połączenia MySQL/MariaDB zamiast standardowego SQLite. Serwer MySQL oraz baza danych musi być wcześniej odpowiednio skonfigurowana. Jeśli nie chcesz używać MySQL wystarczy odpowiedź ,,N".
⚠️ Instalator uruchomi nasz serwer po raz pierwszy w celu wygenerowania tokena i hasła server query. Zapisz je w bezpiecznym miejscu!
Po wszystkim uruchamiamy nasz serwer poleceniem:
./ts3server start
Gotowe! Twój serwer TeamSpeak3 został zainstalowany. Teraz zajmiemy się utworzeniem pliku konfiguracyjnego naszego serwera, który może być nam potrzebny później i otworzy nam drogę do różnych innych funkcji i konfiguracji serwera. Przechodzimy do katalogu z konfiguracją instancji serwera:
cd lgsm/config-lgsm/ts3server
Kolejnym krokiem będzie przekopiowanie domyślnego pliku dla naszej instancji:
cp _default.cfg ts3server.cfg
Gotowe! Teraz Twoja instacja serwera jest gotowa do konfiguracji i włączania i konfigurowania dodatkowych funkcji.
⚠️ (Zalecane) Automatyczny start serwera po restarcie maszyny:
Zawsze denerwowało Cię, że serwer nie startuje automatycznie po restarcie maszyny? Na to też mamy rozwiązanie. Użyjemy do tego również regułek cron. Więc przechodzimy na naszego użytkownika:
su - ts3server
Po czym otwieramy edytor regułek:
crontab -e
Następnie musimy dodać odpowiednią regułkę:
@reboot ~/./ts3server start >/dev/null 2>&1
Zapisujemy plik, zamykamy edytor i już możemy cieszyć się auto startem naszego serwera!
(Opcjonalne) Automatyczny monitoring i aktualizacja serwera:
Nikt z nas nie jest robotem i czasem musi odpocząć, więc nie może przez 24 godziny na dobę doglądać czy serwer działa. W tym temacie nasze narzędzie również może zrobić to za nas. Musimy użyć do tego polecenia monitor w LinuxGSM oraz cron, który będzie je uruchamiał co określoną ilość czasu. Dla tego poradnika przyjmijmy, że chcemy sprawdzać czy serwer działa co 30 minut,a serwer chcemy aktualizować codziennie o 4 rano.
W tym celu musimy edytować nasze reguły cron. Wchodzimy na użytkownika, na którym zainstalowaliśmy serwer poleceniem:
su - ts3server
Następnie wchodzimy do edycji regułek crona poleceniem:
crontab -e
⚠️ Jeśli mamy zainstalowane kilka edytorów przed wejściem w tryb edycji zostaniemy zapytani o edytor, w którym chcemy dokonywać zmian. Wybieramy odpowiedni dla siebie, by nie mieć problemów z nieznajomością edytora.
Następnie na samym końcu pliku musimy dodać dwie nowe reguły:
*/30 * * * * ~/./ts3server monitor >/dev/null 2>&1
0 4 * * * ~/./ts3server update >/dev/null 2>&1
Następnie zapisujemy plik oraz zamykamy. Powinniśmy dostać komunikat o instalacji nowych reguł cron.
⚠️ Reguły te mają wyłączone powiadomienia o aktywacji. Jeśli widzisz problemy z którąś z reguł możesz usunąć >/dev/null 2>&1
lub użyć na przykład tego narzędzia to generowania regułek.
(Opcjonalne) Konfiguracja powiadomień na przykładzie Discord:
Jeśli chcesz dowiedzieć się więcej o pozostałych sposobach wysyłania powiadomień zajrzyj do dokumentacji
Pierwszym krokiem będzie utworzenie WebHooka do naszego serwera Discord, gdy już go utworzymy logujemy się na naszego użytkownika poleceniem:
su - ts3server
Następnie otwieramy plik konfiguracyjny naszej instacji:
nano lgsm/config-lgsm/ts3server/ts3server.cfg
Następnie szukamy tych dwóch linijek:
# Display IP | https://docs.linuxgsm.com/alerts#display-ip
displayip=""
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
discordwebhook="webhook"
Oraz zamieniamy je na:
# Display IP | https://docs.linuxgsm.com/alerts#display-ip
displayip="Adres serwera, który chcemy widzieć w powiadomieniach"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="on"
discordwebhook="http://adresnaszegowebhooka.pl"
Gotowe! Następnie restartujemy nasz serwer używając polecenia:
cd && ./ts3server restart
Po tym nasz serwer powinien mieć poprawnie skonfigurowane powiadomienia Discord. Powiadomienia wysyłane są w razie wykrycia przez monitor braku działania serwera, aktualizacji i tym podobnych.
Zakończenie:
To już koniec tego długiego poradnika. Mam nadzieję, że wyjaśnił Ci on podstawy korzystania z narzędzia LinuxGSM i pomoże Ci w tworzeniu i prowadzeniu Twojego wymarzonego serwera!
Podziel się opinią o poradniku poniżej! Jeśli masz jakieś pytania, chcesz jakiś dodatkowych szczegółów w poradniku to zgłoś się w tym wątku!