LinuxGSM - Instalacja i konfiguracja na przykładzie serwera TeamSpeak3

Poradniki społeczności
vps, zarządzanie, ts3
psycho
psycho

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!

SystemZ
SystemZ Admin lvlup.pro

Serwer TS3 ale powiadomienia na Discordzie :thonking: Z drugiej strony gdy serwer TS3 leży, ciężko dostać na nim powiadomienie.

psycho
psycho

Niby to bez sensu, ale sens ma. A jest spora część ludzi, którzy używają Discorda do czatu, a TeamSpeaka'a do rozmów. Można to zauważyć w większych sieciach serwerów, którzy nie dość, że trzymają ludzi na swoich serwerach ts3 to jeszcze na sieciowych serwerach Discorda. :thinking:

kotyk
kotyk Regularny

W poradniku mogłeś wspomnieć o innych możliwościach dostarczania alertów, np Telegram czy nawet i mailem.

psycho
psycho

Pokazałem przykład na podstawie Discorda, są inne sposoby alertowania, lecz Discord jest teraz chyba tą najpopularniejsza. Co do powiadomień e-mail do podstawowych trzeba mieć skonfigurowany na serwerze postfix, a to oznaczałoby dużo więcej męki z konfiguracją poczty, która nie jest taka prosta. Bez tego mail na poczty typu o2, onet i tym podobne nie chce dochodzić, przynajmniej w moim przypadku, na gmailu idzie do spamu. Ale to co na te ,,polskie" poczty nie przychodzi jest dużo szerszym tematem, a tutaj byłby zwykłym #off-topic

kotyk
kotyk Regularny

U mnie Postfix działał bez konfiguracji. A co do przechodzenia maili, dłużej myśląc jeśli używamy znane poczty typu Gmail to można wyposażyć się w rekordy SPF i DMARC (chyba DMARC). To podstawowe rekordy, z tego co mi wiadomo które już dają większą szanse na to że nasz mail dojdzie do skrzynki pocztowej a nie spamu.

Wiem, że Discord to tylko przykład ale super byłoby jakbyś o tym wspomniał w poradniku bo może ktoś być tym zainteresowany żeby mieć alerty np przez Telegrama. Możesz po prostu dać link do dokumentacji :slight_smile: