L’installation d’un serveur Counter Strike Global Offensive utilise un nouvel utilitaire développé par Valve qui se nomme : SteamCMD. Cet utilitaire remplace le hldsupdatetool qui a pendant longtemps été utilisé pour installer des serveurs basé sur le moteur Source.
Nous allons donc voir dans ce billet la marche à suivre pour installer un serveur CS:GO de A à Z.
Création d’un utilisateur dédié
Avant de commencer l’installation nous allons créer un utilisateur qui sera le propriétaire du serveur. Le but étant de ne pas exécuter le serveur avec les droits root pour plus de sécurité.
$ sudo su # adduser steam # su steam
Les quelques lignes suivantes vont permettre : de vous loguer en tant qu’utilisateur root (suivant les serveurs la commande peut être simplement « su »), créer un utilisateur (vous pouvez passer les questions en appuyant sur entrée) ainsi qu’un dossier steam dans /home. Enfin la dernière commande permet de devenir l’utilisateur « steam ».
Téléchargement de SteamCMD
Avant de pouvoir installer notre serveur Counter Strike GO, nous allons télécharger l’utilitaire qui est disponible à deux adresses suivant l’OS que vous utilisez comme serveur.
- Linux : http://blog.counter-strike.net/wp-content/uploads/2012/04/steamcmd.tar.gz
- Windows : http://blog.counter-strike.net/wp-content/uploads//2012/04/steamcmd.zip
Pour télécharger sur votre serveur Linux qui n’a pas d’interface graphique vous devez utiliser la traditionnelle commande wget suivit de celle pour décompresser le fichier.
$ cd /home/steam/ $ wget http://blog.counter-strike.net/wp-content/uploads/2012/04/steamcmd.tar.gz $ tar xvfz steamcmd.tar.gz $ mkdir SteamCMD $ mv linux32 SteamCMD $ mv steam.sh SteamCMD
Après avoir décompressé et déplacé (les deux dernières commandes), vous devriez avoir (pour linux) un script shell nommé steam.sh et un dossier linux32 dans le dossier /home/steam/SteamCMD.
Installation de Counter Strike : Global Offensive
Nous allons utiliser SteamCMD pour installer votre serveur Counter Strike GO dans un dossier. Mais avant il va falloir faire quelques petites choses…
Support pour les serveurs 64 Bits
Si comme moi (et comme des milliers d’autres) vous avez préféré installer un serveur 64 Bits plutôt que 32, vous allez être surprit d’apprendre que SteamCMD n’est disponible que pour du 32 Bits ! Mais pas de panique, vous allez quand même pouvoir installer votre serveur.
Déterminer l’architecture de voter serveur
Si vous ne vous rappelez plus quelle est l’architecture de votre serveur à savoir 32 Bits ou 64 Bits, voici la commande qui va vous le dire.
uname -m
Le retour de cette comme sera une des deux réponses ci-dessous :
- x86_64 : Votre machine est donc un serveur 64 Bits.
- i686 : Votre serveur est en 32 Bits.
Rendre SteamCMD compatible à votre serveur 64 Bits
Suivant le test ci-dessus, vous allez peut être devoir rendre votre serveur compatible. Pour cela, il va falloir installer une multitude de paquets mais il va vous suffire d’un seul pour que Linux recherche tous les autres.
apt-get install ia32-libs
Démarrer l’utilitaire SteamCMD
Avant d’aller plus loin, pensez à vérifier que vous êtes bien authentifié avec l’utilisateur steam. Si ce n’est pas le cas, vous risquez d’avoir plus tard des problèmes de droits. Si vous ne vous rappelez plus qui vous êtes, tapez simplement la commande suivante qui vous retournera votre nom d’utilisateur.
whoami
Maintenant que tout est ok, nous allons démarrer notre utilitaire pour installer le serveur de jeu. Pour cela utilisez la commande suivante puis patientez quelques secondes.
STEAMEXE=steamcmd ./steam.sh
Cette commande va lancer une procédure d’installation et de mise a jour du client SteamCMD avant de vous donner la main. Ces fichier seront installé à la fois dans un nouveau dossier intitulé /home/steam/Steam mais également dans /home/steam/SteamCMD que nous avions créé.
Vous pouvez savoir que le programme vous attends lorsque vous aurez votre curseur clignotant comme ci-dessous.
Steam>
Connexion avec votre compte Steam
Avant de pouvoir utiliser l’utilitaire d’installation il faut s’authentifier auprès du serveur Steam. Nous allons donc nous authentifier et voir comment faire si vous avez Steam Guard activé pour votre compte.
Dans un premier temps, tapez simplement la ligne ci-dessous en remplaçant le nom d’utilisateur et le mot de passe par vos informations.
login [username] [password]
Si vous avez Steam Guard activé sur votre compte la connexion va échouée. Mais si vous regardez dans vos mails vous verrez qu’un code d’autorisation a été envoyé. Une fois le code de Steam Guard reçu, vous devez retaper la commande en ajoutant une nouvelle petite chose.
login [username] [password] [guard code]
Si vous lisez la ligne ci-dessous, cela signifie que vous vous êtes authentifié auprès des serveurs Steam et que vous pouvez donc utiliser leur utilitaire sans problème.
Logging in user 'username' to Steam Public...Success.
Définir le dossier d’installation
Pour commencer l’installation de votre serveur de jeu, il convient de définir le dossier dans lequel nous allons installer tous les fichiers. Comme le serveur source prends en charge plusieurs jeux et comme l’utilitaire SteamCMD devrait dans un avenir proche gérer plus de jeux, nous allons donc faire un dossier appelé serveur1.
force_install_dir /home/steam/serveur1/
Validez simplement cette ligne sans attendre de réponse de l’utilitaire. De plus le dossier ne doit pas forcément exister car si ce n’est pas le cas, il sera créé plus tard.
Note : un bug actuellement non résolu peu se produire sous Linux si vous mettez des majuscules. Évitez d’en mettre pour ne pas avoir de soucis.
Installation de CS:GO
Nous allons maintenant lancer l’opération de mise à jour du dossier /home/steam/serveur1 qui va se solder par le téléchargement de tous les fichiers du serveur.
app_update 740 validate
La valeur 740 est l’id du jeu Counter Strike : Global Offensive mais je ne peux pas vous donner un lien vers une liste car je ne l’ai pas trouvé. Si vous en trouvez une faite la moi parvenir dans les commentaires de cet article que je puisse la rajouter.
Le paramètre validate permet de vérifier que le dossier contient bien tout ce qu’il faut.
Ci-dessous se trouve un aperçu de ce que l’utilitaire doit vous afficher lorsque tout se passe bien.
Initial App state (0x2) update required App state (0x10102) reconfiguring, progress: -nan (0 / 0) App state (0x80102) preallocating, progress: -nan (0 / 0) App state (0x300502) downloading, progress: 0.51 (30668352 / 6041397216) ... ... App state (0x300502) downloading, progress: 98.14 (5928988042 / 6041397216) App state (0x300502) downloading, progress: 99.19 (5992541324 / 6041397216) App state (0x300502) downloading, progress: 99.80 (6029605501 / 6041397216) Success! App '740' fully installed.
Une fois l’installation terminée, il ne vous reste plus qu’a quitter l’utilitaire en tapant la commande quit.
quit
Démarrer le serveur CS
Nous allons voir comment démarrer notre serveur fraichement installé. Je ne vais pas rentrer dans le détail de toutes les paramètres car cela fera l’objet d’un prochain billet toutefois nous allons voir les incontournables.
Lancer le serveur directement dans votre terminal
Avant de lancer la commande ci-dessous, sachez que vous devez vous rendre dans le dossier /home/steam/serveur1/ si vous avez installé le serveur à cet endroit.
./srcds_linux -game csgo -console -usercon -ip xx.xx.xx.xx +port 27015 +game_type 0 +game_mode 1 +mapgroup mg_bomb +map de_dust
Les paramètres ip et port
Ces paramètres sont assez simple, le port est le port de connexion de votre serveur. L’ip quand à elle est l’ip de la machine qui héberge le serveur. Si votre serveur est à distance (hébergé chez ovh par exemple) il s’agit de la même ip que celle que vous utilisez pour vous connecter en SSH.
Les paramètres game_type et game_mode
La combinaison de ces deux paramètres permet de définir le type de jeu qui tournera sur le serveur. Voici une grille permettant d’avoir une idée de ce que vous démarrerez.
game_type game_mode
0 0 Classic Casual
0 1 Classic Competitive
1 0 Arms Race
1 1 Demolition
Garder le serveur actif en permanence
Maintenant que vous savez démarrer le serveur, nous allons voir rapidement comment garder le serveur actif même lorsque vous n’avez pas le terminal de votre serveur ouvert.
La méthode la plus simple est d’utiliser une screen car cela permet d’émuler un terminal qui ne se ferme pas lorsqu’on ferme notre vrai terminal. Deplus lorsque vous revenez sur votre serveur plus tard vous pouvez toujours ré-ouvrir ce terminal virtuel.
Installer le paquet
Si votre serveur n’a pas le paquet screen, installez le avec la commande suivante (en étant root).
# apt-get install screen
Création d’une screen
Maintenant démarrons une screen que nous allons appeler « serveur1″ dans laquelle nous allons lancer notre serveur.
$ screen -S serveur1
Quitter la screen
Il ne vous reste plus qu’a relancer votre serveur avec la commande ci-dessus. Lorsque vous souhaitez quitter la screen il vous suffira de faire la combinaison de touche suivante (dans l’ordre) : CTRL + A +D
Retourner dans la screen
De même, lorsque vous souhaiterez retourner dans la screen il vous suffira de taper la commande suivante
$ screen -x serveur1
Aller plus loin
Dans ce billet nous avons vu comment installer un serveur CS:GO de A à Z en utilisant l’utilitaire SteamCMD. Dans un prochain billet nous aborderons la partie configuration qui est également un vaste sujet.
En attendant, je vous donne le lien vers le wiki officiel de Steam qui pourra vous aider si ce billet n’a pas répondu à vos questions.
Wiki officiel Steam parlant de Counter Strick Global Offensive : https://developer.valvesoftware.com/wiki/Counter-Strike:_Global_Offensive_Dedicated_Servers
Wiki officiel de Steam parlant de l’utilitaire SteamCMD : https://developer.valvesoftware.com/wiki/SteamCMD#Automating_SteamCMD