Hallo Community.
Ich will euch mein Gameserverprojekt vorstellen. Dieses ist auf Sourceforge zu finden. Es ist ein Skript welches die verschiedensten Gameserver installiert und auch startet bzw. stoppt.
Vorbereitung
Skripte runterladen. Diese bekommt ihr hier:
Gameserverskripte
Supported Games HL1 Engine
-Counter-Strike 1.6
-Counter-Strike: Condition Zero
-Day of Defeat
Supprted Games HL2 Engine
-Counter-Strike: Source
-Counter-Strike: Global Offensive
-Team Fortress 2
-Day of Defeat: Source
-Left 4 Dead 2
-Garrys Mod
Minecraft
-Minecraft Server Version 1.6.1
System Vorbereitung
Als Root einloggen!
|
Quellcode
|
1
2
3
4
5
|
apt-get update
apt-get upgrade
apt-get install screen
apt-get install gawk
apt-get install ia32-libs
|
Für Debian Wheezy
|
Quellcode
|
1
2
3
4
5
6
7
|
apt-get update
apt-get upgrade
apt-get install screen
apt-get install gawk
dpkg --add-architecture i386
apt-get update
apt-get install ia32-libs
|
SteamCMD Installation
Als Root einloggen!
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
|
cd /home
mkdir ./.STEAMCMD
cd ./.STEAMCMD
mkdir ./scripting
wget http://media.steampowered.com/client/steamcmd_linux.tar.gz
tar -xf steamcmd_linux.tar.gz
rm -R steamcmd_linux.tar.gz
chmod -R 777 /home/.STEAMCMD
./steamcmd.sh
Steam> quit
|
Schreibt folgendes in die Datei /etc/security/limits.conf:
|
Quellcode
|
1
2
|
soft nofile 2048
hard nofile 2048
|
Dies wird benötigt damit die SteamCMD
fehlerfrei läuft.
Skripte installieren
|
Quellcode
|
1
2
|
cd /home
mkdir /home/skripte
|
In diesen Ordner müsst ihr den Inhalt der skripte.zip hochladen (DEDICATED_HL1 DEDICATED_HL2 DEDICATED_MINECRAFT gs_installer.sh)
|
Quellcode
|
1
|
chmod -R 777 /home/skripte
|
Neuen User für die Gameserver Installation erstellen
(bei mir der User user1, man kann den Namen frei wählen):
|
Quellcode
|
1
2
3
|
useradd -m -s /bin/bash user1
passwd user1
2x Passwort eingeben
|
Gameserverinstallation
Als Root einloggen!
Der Gameserverinstaller muss als Root ausgeführt werden. Das hat folgenden Hintergrund: Es soll nicht jeder beliebige User Gameserver installieren können!
|
Quellcode
|
1
2
3
4
|
cd /home/skripte
./gs_installer.sh install_hl1 //für HL1 Games
./gs_installer.sh install_hl2 //für HL2 Games
./gs_installer.sh install_minecraft //für Minecraft
|
Achtung: Beim Aufruf des Sckripts werdet ihr als erstes nach
einem User gefragt. Nehmt den, den ihr gerade erstellt habt. NIEMALS DEN USER ROOT EINGEBEN!
Sobald man als Root die Informationen User, IP Adresse, Port und Spiel eingegeben hat legt das Skript auch schon los.
Zuerst überprüft es ob das Verzeichnis /home/server existiert.
Wenn nicht erstellt er es.
Danach erstellt er ein weiteres Verzeichnis nämlich
/home/server/xxx.xxx.xxx.xxx_game_port (Bsp. 123.456.789.012_css_27015 das XXX wird durch die IP ersetzt).
Dies ist dann der Pfad wohin er den Gameserver installiert.
Nach dem er den Server herunter geladen hat erstellt er im Ordner
xxx.xxx.xxx.xxx_game_port 3 Datein (Bei HL1 Spielen 4).
.start >>Diese Datei führt man einfach als
normaler User aus und der Gameserver wird gestartet. Wenn es als Root ausgeführt wird wechselt das Script mittels su auf den richtigen User
.stop >>Stoppt den Gameserver
.restart >>Restartet den Gameserver
.varcfg >>Konfigurationsdatei mit den ganzen Startparametern. Eigentlich muss man daran nichts ändern außer diese Variablen:
GS_MAP, GS_MAXPLAYERS und GS_FASTDL_URL (wenn kein Fastdl vorhanden einfach auf "" setzen) Falls ihr den FastDL URL nachträglich setzt, müsst ihr die Datei fastdl.cfg z.B. im Ordner/cstrike/cfg/ löschen. Diese wird dann mit dem URL neu generiert.
Bei CSGO zusätzlich: GS_GAMEMODE, GS_GAMETYPE und GS_MAPGROUP
Bei L4D2 zusätzlich: GS_GAMEMODE
.update >>
Nur bei HL1 Servern da hier das Autoupdate seitens Valve noch nicht richtig funktioniert.
Nach dem ersten Gameserverstart muss man den Server gleich neu starten, da er nach dem ersten Start nur im LAN Modus verfügbar ist (Liegt an Steam).
Beim ersten Gameserverstart erstellt er außerdem im Ordner /home/.STEAMCMD/scripting eine Updatedatei die er bei jedem Gameserverstart aufruft:
Autoupdate! Die Datei heißt
update_xxx.xxx.xxx.xxx_game_port (XXX wird durch die IP ersetzt)
Damit dies alles richtig funktioniert müssen die ganzen Rechte der Datein stimmen siehe ReadMe Datei bzw. Wiki.
Durch die IP Präfix beim Ordner und in der Updatedatei ist
Multi IP Support gegeben.
Diese Skript ist natürlich nur für Leute ohne Webinterface gedacht