dimanche 5 janvier 2014

Guide - Monter un serveur dédié Arma 3 Linux


Ce sujet est une bref introduction à la création de serveurs dédiés Arma 3 sur Linux.

1 - Avant l'installation


Il faut s'assurer que la machine est à jour, pour cela, passez les commandes suivantes :
Code:
/usr/bin/aptitude update
/usr/bin/aptitude safe-upgrade
Si jamais l'update ne passe pas, tentez avec le paramètre --ful-resolver

Installer les dépendances
Code: 
/usr/bin/aptitude install java7-jdk:i386 libstdc++6:i386 build-essential ia32-libs
Créer un utilisateur qui va prendre en charge le serveur et créer le répertoire qui va accueillir steam.
Code: 
/usr/sbin/adduser arma3_server
/bin/su arma3_server
cd /home/arma3_server/
/bin/mkdir steam
/bin/rm 

2 - Steam et Arma 3


Code: 
cd /home/arma3_server/steam
/usr/bin/wget http://media.steampowered.com/client/steamcmd_linux.tar.gz
/bin/tar -xvzf steamcmd_linux.tar.gz
/bin/mkdir games
cd games
/bin/mkdir arma3
cd ../../
/bin/rm steamcmd_linux.tar.gz
./steamcmd.sh

La suite se passe sur SteamCMD et comme suit:
Code: 
login <steam username> <steampassword>
#Si vous avez Steamguard d'activé, le code vous sera demandé, comme d'habitude.
force_install_dir /home/arma3_server/steam/games/arma3
app_update 233780 validate
quit

3 - Arma 3


De ce côté là, c'est très similaire à Arma 3 windows server, le seul challenge réside dans le fait que le serveur ne doit pas être exécuter en root (sécurité oblige) et que les utilisateurs n'ont pas le chemin de la dépendance jvm. Donc, dans un premier temps, on créer la configuration du serveur , un banal server.cfg qui a toujours plus ou moins la même tête depuis bien des années, ensuite, on créé un tout petit script permettant de lancer le serveur tout en précisant où est la dépendance jvm.
Code: 
cd /home/arma3_server/steam/games/arma3/
echo #/bin/bash > run.sh
echo export LD_LIBRARY_PATH=/usr/lib/jvm/java-1.7.0-openjdk-i386/jre/lib/i386/server/ >> run.sh
echo ./arma3server -port=2302 -config=server.cfg -bepath=/home/arma3_server/steam/games/arma3/battleye/ >> run.sh
chmod +x run.sh

Maintenant, on test : ./run.sh
Si cela ne passe pas, mettez ici le contenu du retour ainsi que le résultat de la commande suivante et voyez ce qu'il manque :
Code: 
/usr/bin/ldd arma3server
#linux-gate.so.1 =>  (0xf7712000)
#libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf76e4000)
#librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf76db000)
#libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf76d5000)
#libjvm.so => not found -> Ici, c'est normal, on défini la dépendance dans le run.sh
#libsteam_api.so => /home/_app/steamcmd/games/arma3/./libsteam_api.so (0xf76c5000)
#libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf75e0000)
#libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf75b4000)
#libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7595000)
#libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf73ec000)
#/lib/ld-linux.so.2 (0xf7713000)

4 - iptables


Autoriser le trafic sur les ports utilisés par Arma 3. Normalement, les règles suivantes devraient suffire à rendre le serveur parfaitement fonctionnel.
Code: Select all
/sbin/iptables -I INPUT -p udp --dport 2302 -j ACCEPT
/sbin/iptables -I INPUT -p udp --dport 2303 -j ACCEPT
/sbin/iptables -I INPUT -p udp --dport 2304 -j ACCEPT
/sbin/iptables -I INPUT -p udp --dport 2305 -j ACCEPT
service iptables save

Aucun commentaire:

Enregistrer un commentaire