Questo tutorial spiega come configurare un server Team Fortress 2 su Arch Linux. Presumo che tu abbia effettuato l'accesso con un account utente non root con accesso sudo. In questa esercitazione viene utilizzato AUR per creare pacchetti e tale operazione non deve essere eseguita dall'account root.
Prima di iniziare
È molto importante avere il multilib
repository abilitato se e solo se ci si trova su un server a 64 bit (amd64). Se non è abilitato, SteamCMD non può essere eseguito e non è nemmeno possibile scaricare i file del server. Per fare ciò, devi decommentare le seguenti righe /etc/pacman.conf
.
[multilib]
Include = /etc/pacman.d/mirrorlist
Se sei su Arch a 32 bit (i686), puoi tranquillamente ignorarlo.
Installa SteamCMD
Esiste un pacchetto AUR per SteamCMD ed è uno dei modi più semplici per installare SteamCMD su Arch. Ci sono un paio di cose strane a riguardo:
- Tutti i percorsi relativi sono relativi a
/usr/share/steamcmd
.
- Per aggiornare SteamCMD stesso, devi essere root.
Se ci si trova su un server a 64 bit, è necessario installare il pacchetto lib32-gcc-libs
.
sudo pacman -Sy lib32-gcc-libs
Ora dobbiamo compilare il pacchetto. Usando l'arricciatura, scarica il tarball per il pacchetto.
curl -O http://media.steampowered.com/installer/steamcmd_linux.tar.gz
Al termine del download, estrarre e passare alla directory creata.
tar -xvzf steamcmd.tar.gz
cd steamcmd
Ora, usando makepkg, costruisci il pacchetto.
makepkg -ci
Se non hai passato la -i
bandiera al comando makepkg, usa pacman per installarlo.
sudo pacman -U *.pkg.tar.xz
Ora SteamCMD è installato e pronto per scaricare il server Team Fortress 2.
Installa il server Team Fortress 2
Questa guida utilizza un utente separato per eseguire il server, quindi creeremo un nuovo utente e gruppo tf2 con la sua cartella home in /var/lib
.
sudo groupadd tf2
sudo mkdir /var/lib/tf2
sudo useradd -d /var/lib/tf2 -g tf2 -s /bin/bash tf2
sudo chown tf2.tf2 -R /var/lib/tf2
Ora per installare il server.
sudo -u tf2 steamcmd +login anonymous +force_install_dir ~tf2/server +app_update 232250 validate +quit
Al termine del download, il server è installato.
Configurazione
Sebbene sia possibile eseguire il server, è necessario eseguire alcune configurazioni in modo che il server non sia troppo generico. Il file principale in cui inseriamo le impostazioni è il server.cfg
file. Di seguito è riportato un server.cfg
file molto semplice .
Per aprire / creare il file, utilizzare l'editor preferito. Qui viene utilizzato vim, ma è possibile utilizzare qualsiasi editor di testo come nano.
sudo -u tf2 vim ~tf2/server/tf/cfg/server.cfg
Aggiungi quanto segue. Altre impostazioni sono disponibili nella pagina wiki di Team Fortress 2 e nello sviluppatore di Valve. Assicurati di modificare alcune impostazioni in base alle tue esigenze.
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
Esecuzione del server
È noto che è necessario un multiplexer come GNU Screen o tmux per eseguire il server incustodito. Qui useremo tmux per eseguire il server, ma se preferisci e sai come usare lo schermo, sentiti libero di usarlo.
Installa tmux usando pacman.
sudo pacman -Sy tmux
È possibile avviare il server con il seguente comando. Se lo desideri, puoi cambiare mappa e maxplayer.
sudo -u tf2 tmux new-session -d -s tf2-console -d '~tf2/server/srcds_run -console -game tf +map cp_dustbowl +maxplayers 24'
Se è necessario collegarsi alla console, eseguire quanto segue.
sudo -u tf2 tmux attach -t tf2-console
È possibile lasciare la console server digitando CTRL + B poi rilasciando quelle chiavi e quindi premendo D .
In esecuzione con systemd
L'esecuzione del server con systemd è conveniente per molte ragioni. Il principale è che puoi avviarlo all'avvio del VPS. Ciò richiede uno script e un'unità systemd da scrivere. Anche se questa è una buona idea, è facoltativa .
La prima cosa da scrivere è lo script iniziale. Per creare lo script, usa il tuo editor preferito. Qui viene utilizzato vim, ma è possibile utilizzare qualsiasi editor di testo come nano.
sudo -u tf2 vim ~tf2/server/tf2.sh
Aggiungi quanto segue.
#!/bin/sh
USER=$2
if [ -z $2 ]; then
USER="tf2"
fi
case "$1" in
start)
sudo -u $ tmux new-session -d -s tf2-console -d '/var/lib/tf2/server/srcds_run -console -game tf +map cp_dustbowl +maxplayers 24'
;;
stop)
sudo -u $ tmux send-keys -t tf2-console 'say Server shutting down in 10 seconds!' C-m
sleep 10
sudo -u $ tmux send-keys -t tf2-console 'quit' C-m
sleep 5
;;
*)
echo "Usage: $0 user"
esac
exit 0
Ora devi creare l'unità systemd. Per creare l'unità, utilizzare l'editor preferito. Qui viene utilizzato vim, ma è possibile utilizzare qualsiasi editor di testo come nano.
sudo vim /usr/lib/systemd/system/tf2.service
Aggiungi quanto segue.
[Unit]
Description=Team Fortress 2 Server (SRCDS)
After=local-fs.target network.target
[Service]
ExecStart=/var/lib/tf2/server/tf2.sh start
ExecStop=/var/lib/tf2/server/tf2.sh stop
Type=forking
[Install]
WantedBy=multi-user.target
Ora assicurati che il tf2.sh
file sia eseguibile.
sudo chmod +x ~tf2/server/tf2.sh
Dopo tutto ciò, è possibile utilizzare systemctl
per avviare e arrestare il server. Inoltre puoi usarlo per avviarlo all'avvio.
Iniziare:
sudo systemctl start tf2.service
Fermare:
sudo systemctl stop tf2.service
Ricominciare:
sudo systemctl restart tf2.service
Per abilitare all'avvio:
sudo systemctl enable tf2.service
Per disabilitare all'avvio:
sudo systemctl disable tf2.service
Anche se systemd gestisce l'avvio e l'arresto del server, è comunque possibile accedere alla console con il comando seguente:
sudo -u tf2 tmux attach -t tf2-console
Note finali
SteamCMD è installato in un'area in cui solo i root possono cambiare file (vedi nota in "Installa SteamCMD"). Se hai mai bisogno di aggiornare SteamCMD stesso, eseguilo come root.
sudo steamcmd +quit
Se è necessario aggiornare il server. Prima arrestare il server e quindi utilizzare SteamCMD per l'aggiornamento (utilizzando lo stesso comando per l'installazione).
sudo systemctl stop tf2.service
sudo -u tf2 steamcmd +login anonymous +force_install_dir ~tf2/server +app_update 232250 validate +quit
sudo systemctl start tf2.service
Ci sono molti più argomenti di configurazione che non sono trattati in questo tutorial. Per ulteriori informazioni, consultare il Team Fortress 2 Wiki e il Valve Developer Wiki.