Ce didacticiel explique comment configurer un serveur Counter-Strike: Global Offensive sur Arch Linux.
Ce didacticiel suppose que vous vous êtes connecté avec un compte d'utilisateur standard et que vous disposez des privilèges sudo. Nous utiliserons un compte utilisateur normal car la création de packages avec AUR ne doit pas se faire à partir du compte root.
Avant que tu commences
Si vous utilisez une version 64 bits d'Arch Linux, il est très important que le multilibréférentiel soit activé. S'il n'est pas activé, SteamCMD ne peut pas télécharger ou exécuter les fichiers du serveur de jeu. Pour activer multilib, décommentez simplement les lignes suivantes dans /etc/pacman.conf.
[multilib]
Include = /etc/pacman.d/mirrorlist
Cela ne s'applique pas aux systèmes Arch Linux 32 bits.
Installez SteamCMD
Il existe un package AUR pour SteamCMD. C'est probablement le moyen le plus simple d'installer SteamCMD sur Arch. Il y a cependant quelques choses à noter à ce sujet:
- Tous les chemins relatifs sont relatifs à
/usr/share/steamcmd.
- Pour mettre à niveau SteamCMD lui-même, vous devez être sur le compte root.
Si vous êtes sur un serveur 64 bits, vous devez installer le package lib32-gcc-libs.
sudo pacman -Sy lib32-gcc-libs
Maintenant, nous devons construire le package. À l'aide de curl, téléchargez l'archive tar du package.
curl -O https://aur.archlinux.org/packages/st/steamcmd/steamcmd.tar.gz
Une fois le téléchargement terminé, extrayez et accédez au répertoire créé.
tar -xvzf steamcmd.tar.gz
cd steamcmd
Maintenant, en utilisant makepkg, construisez le paquet.
makepkg -ci
Si vous n'avez pas transmis l' -iindicateur à la commande makepkg, utilisez la commande suivante pour l'installer.
sudo pacman -U *.pkg.tar.xz
Vous avez maintenant SteamCMD installé et prêt à télécharger le serveur Counter-Strike: Global Offensive.
Installez The Counter-Strike: Global Offensive Server
Ce guide utilise un utilisateur distinct pour exécuter le serveur, nous allons donc créer un nouvel utilisateur et groupe csgo avec son propre dossier de départ dans /var/lib.
sudo groupadd csgo
sudo mkdir /var/lib/csgo
sudo useradd -d /var/lib/csgo -g csgo -s /bin/bash csgo
sudo chown csgo.csgo -R /var/lib/csgo
Maintenant, pour installer le serveur.
sudo -u csgo steamcmd +login anonymous +force_install_dir ~csgo/server +app_update 740 validate +quit
Une fois le téléchargement terminé, le serveur est installé.
Configuration
Bien que vous puissiez exécuter le serveur, une configuration doit être effectuée afin que le serveur ne soit pas trop générique. Le fichier principal dans lequel nous mettons les paramètres est le server.cfgfichier. Voici un server.cfgfichier très basique .
Pour ouvrir / créer le fichier, utilisez votre éditeur préféré. J'utilise vim dans cet exemple.
sudo -u csgo vim ~csgo/server/csgo/cfg/server.cfg
Ajoutez ce qui suit. Plus de paramètres peuvent être trouvés sur le Wiki Développeur Valve. Assurez-vous de modifier certains paramètres en fonction de vos besoins.
hostname "Server Name"
rcon_password "password"
sv_password ""
sv_contact "[email protected]"
sv_tags ""
sv_region "255"
sv_lan "0"
exec banned_user.cfg
exec banned_ip.cfg
writeid
writeip
Exécuter votre serveur
Pour exécuter votre serveur sans surveillance, vous aurez besoin d'un multiplexeur comme GNU Screen ou tmux . Dans cet article, je vais utiliser tmux pour exécuter le serveur, mais si vous préférez et savez utiliser screen, n'hésitez pas à l'utiliser.
Installez tmux à l'aide de pacman.
sudo pacman -Sy tmux
Vous pouvez démarrer le serveur avec la commande suivante. Vous pouvez modifier la carte si vous le souhaitez. Veuillez lire les "Notes finales" pour plus d'informations sur les valeurs game_typeet game_mode. Cet exemple concerne un serveur classique classique.
sudo -u csgo tmux new-session -d -s csgo-console -d 'cd /var/lib/csgo/server/; ./srcds_run -console -game csgo -usercon +game_type 0 +game_mode 0 +mapgroup mg_active +map de_dust2'
Si vous devez vous connecter à la console, exécutez ce qui suit.
sudo -u csgo tmux attach -t csgo-console
Vous pouvez laisser la console du serveur en tapant CTRL + B puis relâchez les touches puis en appuyant sur D .
Exécution avec systemd
L'exécution du serveur avec systemd est pratique pour de nombreuses raisons. Le principal est que vous pouvez le faire démarrer au démarrage du VPS. Cela nécessite l'écriture d'un script et d'une unité systemd. Même si c'est une bonne idée, elle est facultative .
La première chose à écrire est le script de démarrage. Pour créer le script, utilisez votre éditeur préféré. Ici vim est utilisé, mais vous pouvez utiliser n'importe quel éditeur de texte comme nano.
sudo -u csgo vim ~csgo/server/csgo.sh
Ajoutez ce qui suit et assurez-vous de regarder la ligne avec la commande de démarrage car elle a le mode et le type de jeu.
#!/bin/sh
USER=$2
if [ -z $2 ]; then
USER="csgo"
fi
case "$1" in
start)
sudo -u $ tmux new-session -d -s csgo-console -d 'cd /var/lib/csgo/server/; /var/lib/csgo/server/srcds_run -console -game csgo -usercon +game_type 0 +game_mode 0 +mapgroup mg_active +map de_dust2'
;;
stop)
sudo -u $ tmux send-keys -t csgo-console 'say Server shutting down in 10 seconds!' C-m
sleep 10
sudo -u $ tmux send-keys -t csgo-console 'quit' C-m
sleep 5
;;
*)
echo "Usage: $0 user"
esac
exit 0
Vous devez maintenant créer l'unité systemd.
sudo vim /usr/lib/systemd/system/csgo.service
Ajoutez ce qui suit.
[Unit]
Description=Counter-Strike: Global Offensive Server (SRCDS)
After=local-fs.target network.target
[Service]
ExecStart=/var/lib/csgo/server/csgo.sh start
ExecStop=/var/lib/csgo/server/csgo.sh stop
Type=forking
[Install]
WantedBy=multi-user.target
Assurez-vous maintenant que le csgo.shfichier est exécutable.
sudo chmod +x ~csgo/server/csgo.sh
Après tout cela, vous pouvez utiliser systemctlpour démarrer et arrêter le serveur. Vous pouvez également l'utiliser pour le faire démarrer au démarrage.
Commencer:
sudo systemctl start csgo.service
Arrêter:
sudo systemctl stop csgo.service
Recommencer:
sudo systemctl restart csgo.service
Pour activer au démarrage:
sudo systemctl enable csgo.service
Pour désactiver au démarrage:
sudo systemctl disable csgo.service
Même si systemd gère le démarrage et l'arrêt du serveur, vous pouvez accéder à la console avec la commande suivante.
sudo -u csgo tmux attach -t csgo-console
Notes finales
SteamCMD est installé dans une zone où seul root peut modifier les fichiers (voir la remarque dans la section "Installer SteamCMD"). Si vous avez besoin de mettre à jour SteamCMD lui-même, exécutez-le simplement en tant que root.
sudo steamcmd +quit
Si vous devez mettre à jour le serveur. Arrêtez d'abord le serveur puis utilisez SteamCMD pour mettre à jour (en utilisant la même commande pour installer).
sudo systemctl stop csgo.service
sudo -u csgo steamcmd +login anonymous +force_install_dir ~csgo/server +app_update 740 validate +quit
sudo systemctl start csgo.service
Le mode de jeu et le type de jeu dans la commande de démarrage sont importants selon le type de serveur que vous souhaitez. Voici un tableau rapide des valeurs possibles.
Game Mode | game_type | game_mode
Classic Casual | 0 | 0
Classic Competitive | 0 | 1
Arms Race | 1 | 0
Demolition | 1 | 1
Deathmatch | 1 | 2
Il y a beaucoup plus de sujets de configuration non couverts dans ce tutoriel. Si vous avez besoin de plus d'informations, veuillez vous référer au wiki du développeur de valve.