Les Prérequis > Steam CMD > Serveur Counter Strike : Global Offensive

Et nous allons maintenant configurer un serveur Counter Strike et plus précisément Cs:GO sur linux et plus particulièrement Ubuntu.

Pour ce tuto assurez-vous d'avoir suivi les tutos "Les Prérequis" et "Steam CMD".


1. Steam CMD


1.1 Le téléchargement du jeu

Pour ce faire, lancez votre utilisateur et allez dans le répertoire voulu pour l'installation du jeu. Par la suite, lancez steam cmd avec la commande suivante.

Légende : ROUGE commande obligatoire / VERT commande bon à savoir

serveur@lamachine:~/Serv_Counter/Cs_Go_FFA$ ./steamcmd.sh

Par la suite on va s'identifier en anonyme et enchainer avec la désignation du répertoire et le téléchargement du jeu.

Le "validate" permet de vérifier si le serveur est à jour et si besoin l'installer et le "740" est l'id du jeu.

steam>login anonymous

steam>force_install_dir ./cs_go/

steam>app_update 740 validate

Ligne du répertoire ou le launcher du serveur ce trouve.

cd /home/serveur/Serv-Counter/Cs_Go_FFA/cs_go

Update state (0x61) downloading, progress: 99,81 (16847532457 / 16852986245)
Update state (0x61) downloading, progress: 99,93 (16850889093 / 16852986245)
Update state (0x61) downloading, progress: 99,96 (16851937669 / 16852986245)
Success! App '740' fully installed.

Si vous voyez un truc du genre c'est que le serv est prêt à être configuré.


2. Les ressources du jeu


2.1 La création du script de lancement

La ligne de lancement ce qui fait le plus défaut au serveur car elle doit être parfaitement écrite pour qu'un serveur se lance.

Pour se faire nous allons utiliser notepad++ et le lancer.

cd /home/serveur/Serv-Counter/Cs_Go_FFA/cs_go; screen -dmS CS_GO_FFA ./srcds_run -autoupdate -steam_dir ../ -steamcmd_script maj.txt -debug -game csgo -console -usercon +game_type 3 +game_mode 0 +sv_setsteamaccount VOTRE ID SERVEUR +map de_dust2 +maxplayers 24 -port 27015 +ip VOTRE IP -tickrate 128
echo "//FFA en lancement//"
screen -r

Nous allons décortiquer ces lignes.

screen -dmS CS_GO_FFA

Lancement du daemons pour que l'appli tourne en arrière plan sur la machine.

-autoupdate -steam_dir ../ -steamcmd_script maj.txt

Ici la ligne qui permettra au serveur de ce mettre à jour en exécutant un fichier qui vous sera expliqué en bas.

+game_type 3 +game_mode 0

Défini de quelle nature sera le serveur (FFA, WAR, ...) . Plus d'info ICI

Cette ligne est importante car vous allez créer un ID pour votre serveur et pour ceci il faut que votre compte steam soit à jour et non banni VAC.
Plus d'info sur ce site : https://steamcommunity.com/dev/managegameservers

+sv_setsteamaccount VOTRE ID SERVEUR

Le nombre de joueurs maxi souhaité sur le serveur.

+maxplayers 24

Le port et l'ip de votre machine en IPV4. Le port ne doit pas être identique à un existant sur un autre serveur.

-port 27015 +ip VOTRE IP

serveur@lamachine:~/Serv_Counter/Cs_Go_FFA$ cd
serveur@lamachine:~/$ chmod +x load_csgo_ffa.sh

-tickrate 128

Le tickrate défini la qualité de votre serveur (Nombre de traitement de donnée client/serveur en seconde). Soit 64 ou 128.

Maintenant nous allons sauvegarder notre fichier en ".sh" en format d'encodage ainsi sous le nom de load_csgo_ffa.sh à la racine de notre utilisateur serveur et le mettre en exécutable.

2.2 La création du script de Mise à jour

Le scrip de Maj sera un script lancé par le redémarrage du serveur grâce à la ligne de commande "-autoupdate -steam_dir ../ -steamcmd_script maj.txt" du load_csgo_ffa.sh.

Pour ce faire nous allons créer un maj.txt dans le dossier du steam cmd et lui attribuer les lignes suivantes.

@ShutdownOnFailedCommand 1
@NoPromptForPassword 1

login anonymous
force_install_dir ./cs_go/
app_update 740 validate
exit

Là nous demandons au serveur de lancer Steam cmd qui vérifiera les différences entre le serveur et sa base de donnée et par la suite mettra à jour à chaque redémarrage.
L'opération prend 3 à 5 min si vous avez un HDD contre 1 à 2 min avec un SSD (il faut compter 28 GO d'espace par partition de jeu) donc si vous avez plusieurs serveurs sur la machine une opération de maj peut prendre de 20 à 40 min et c'est pour ça que nous allons redémarrer le serveur à 4h du matin. Une fibre de 200Mb minimun est aussi conseillé pour plusieurs maj en parallèle sinon faire un départ ecarté pour chaque serveur (4h00, 4h15, 4h30, ...).

2.3 La création du Cron et de l'exécutable

Sortons nos dico et regardons ce que signifie le mot Cron ou Crontab "Def Wiki: Cron est un programme qui permet aux utilisateurs des systèmes Unix d'exécuter automatiquement des scripts, des commandes ou des logiciels à une date et une heure spécifiées à l'avance, ou selon un cycle défini à l'avance.". Vous l'aurez donc compris Le cron sert à exécuter un script qui va relancer nos serveurs comme nous le souhaitons et dans ce cas-là à 4h du matin.

Nous allons créer maintenant un .sh de redémarrage qui lui aussi sera à la racine de notres session et que nous nommerons maj.sh

#!/bin/bash

screen -r
pkill -f "CS_GO_FFA"
pkill -f "CS_GO_AIM"
pkill -f "CS_GO_WAR"

screen -r
cd /home/serveur; ./load_csgo_ffa.sh
cd /home/serveur; ./load_csgo_aim.sh
echo "disabled cd /home/serveur; ./load_csgo_war.sh"

screen -r

J'ai mis un exemple pour le faire sur plusieurs serveurs et aussi pour une activation manuelle d'où les screen -r qui vous permet de voir les applis en cours.

Je vous invites à suivre le tuto "Script de lancement" qui sera plus complet pour une machine ayant plusieurs serveurs.

Une fois cela fait, en tapant la commande ci-dessous nous créerons notre cron qui exécutera ce fichier qui arrêtera les daemons voulus puis redémarrera ceux souhaités
Donc je vous invite à ouvrir putty et à y exécuté la commande suivante pour éditer le fichier crontab

00 04 * * * /home/serveur/maj.sh

serveur@lamachine:~/$ crontab -e

Puis vous descendez tout en bas du fichier et y rentrez la ligne qui suit.

serveur@lamachine:~/$ chmod +x maj.sh

Je vais vous détailler un peut tout ça.

    • 00   Ici vous programmez les minutes. Si vous mettez une "*" vous lancerez le script toutes les minutes entre 4h00 et 4h59

    • 04   ci vous programmez les heures. Si vous mettez une "*" vous lancerez le script toutes les heures (1h00 2h00 3h00 ...).

    • *    Ici c'est le jour du mois et dans notre cas c'est tous les jours

    • *    Ici c'est le mois lui même donc en gros si vous voulez janvier et juin ça sera 01 ou 06 ou les deux (je vous invite à lire le wiki).

    • *    Et ici ça sera les jours de la semaine du lundi au dimanche.

Voilà pour plus de détails je vous invite à regarder le Wiki qui est bien plus détaillé et dans le sujet que ce tuto.

Pour la suite vous enregistrez votre fichier Cron avec la commande dite sur Putty et on va passer notre fichier en exécutable.


3. Les derniers détails


3.1 L'ouverture des ports


Nous allons ouvrir une plage de port pour la communication du serveur et bien sur tout ça en root avec sudo su (Plus d'info ici sur les ports).

root@lamachine:~$ iptables -A INPUT -p udp -m udp --dport 27010:27030 -j ACCEPT
root@lamachine:~$ iptables -A INPUT -p tcp -m tcp --dport 27010:27030 -j ACCEPT
root@lamachine:~$ iptables -A INPUT -p udp -m udp --dport 4379:4380 -j ACCEPT
root@lamachine:~$ iptables -A INPUT -p udp -m udp --dport 3478 -j ACCEPT

3.2 Lancement du serveur

C'est bon, tout est enfin prêt pour être lancé. Il vous suffira d'aller dans la racine de votre utilisateur serveur et d'exécuter la commande suivant.

PS: Le serveur peut mettre du temps à se lancer suite au système de mise à jour mais rien vous empêche de créer un script pour le lancer sans les maj.

Vous voulez voir votre serveur tourner? Rien de plus simple.

serveur@lamachine:~$ ./load_csgo_ffa.sh

Voici si des questions le team Speak est plus haut.

serveur@lamachine:/$ screen -r
"Bonus"
serveur@lamachine:~$ pkill -f "CS_GO_FFA"

Tout le contenu du site est edité par The DecAlpeur©.
Toutes les données sont soumises au droit d'auteur et peuvent être utilisées avec accord du propriétaire et citation de la source.
Je peux être contacté sur Steam ou TeamSpeak pour plus d'infos ou si vous détectez des incohérences.

The DecAlpeur

A esprit libre univers libre

- Création - Mapping -
Tutoriels Serveur Linux

DecAlpeur Team Speak