Πριν ξεκινήσεις
Εγκαταστήστε το SteamCMD
Εγκαταστήστε τον διακομιστή The Team Fortress 2
Διαμόρφωση
Εκτέλεση του διακομιστή σας
Τρέξιμο με systemd
Τελικές Σημειώσεις
Αυτό το σεμινάριο εξηγεί πώς να ρυθμίσετε έναν διακομιστή Team Fortress 2 στο Arch Linux. Υποθέτω ότι έχετε συνδεθεί με έναν λογαριασμό χρήστη που δεν είναι root που έχει πρόσβαση sudo. Αυτό το σεμινάριο χρησιμοποιεί το AUR για τη δημιουργία πακέτων και αυτή η λειτουργία δεν πρέπει να εκτελείται από τον λογαριασμό root.
Πριν ξεκινήσεις
Είναι πολύ σημαντικό να έχετε multilibενεργοποιημένο το αποθετήριο εάν και μόνο εάν βρίσκεστε σε διακομιστή 64 bit (amd64). Εάν δεν είναι ενεργοποιημένο, τότε το SteamCMD δεν μπορεί να εκτελεστεί και δεν μπορείτε καν να κάνετε λήψη των αρχείων διακομιστή. Για να το κάνετε αυτό, πρέπει να καταργήσετε το σχόλιο των παρακάτω γραμμών στο /etc/pacman.conf.
[multilib]
Include = /etc/pacman.d/mirrorlist
Εάν βρίσκεστε σε 32-bit (i686) Arch, μπορείτε να το αγνοήσετε με ασφάλεια.
Εγκαταστήστε το SteamCMD
Υπάρχει ένα πακέτο AUR για το SteamCMD και είναι ένας από τους ευκολότερους τρόπους εγκατάστασης του SteamCMD στο Arch. Ωστόσο, υπάρχουν μερικά παράξενα πράγματα σχετικά με αυτό:
- Όλες οι σχετικές διαδρομές είναι σχετικές με το
/usr/share/steamcmd.
- Για να αναβαθμίσετε το ίδιο το SteamCMD, πρέπει να είστε root.
Εάν βρίσκεστε σε διακομιστή 64-bit, πρέπει να εγκαταστήσετε το πακέτο lib32-gcc-libs.
sudo pacman -Sy lib32-gcc-libs
Τώρα πρέπει να φτιάξουμε το πακέτο. Χρησιμοποιώντας το curl, κατεβάστε το tarball για το πακέτο.
curl -O http://media.steampowered.com/installer/steamcmd_linux.tar.gz
Μόλις ολοκληρωθεί η λήψη, εξαγάγετε και αλλάξτε στον κατάλογο που δημιουργήθηκε.
tar -xvzf steamcmd.tar.gz
cd steamcmd
Τώρα, χρησιμοποιώντας makepkg, δημιουργήστε το πακέτο.
makepkg -ci
Εάν δεν μεταβιβάσατε τη -iσημαία στην εντολή makepkg, χρησιμοποιήστε το pacman για να την εγκαταστήσετε.
sudo pacman -U *.pkg.tar.xz
Τώρα έχετε εγκαταστήσει το SteamCMD και είστε έτοιμοι να κατεβάσετε τον διακομιστή Team Fortress 2.
Εγκαταστήστε τον διακομιστή The Team Fortress 2
Αυτός ο οδηγός χρησιμοποιεί έναν ξεχωριστό χρήστη για την εκτέλεση του διακομιστή, επομένως θα δημιουργήσουμε έναν νέο χρήστη και ομάδα tf2 με τον δικό του αρχικό φάκελο στο /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
Τώρα για να εγκαταστήσετε τον διακομιστή.
sudo -u tf2 steamcmd +login anonymous +force_install_dir ~tf2/server +app_update 232250 validate +quit
Μόλις ολοκληρωθεί η λήψη, έχετε εγκαταστήσει τον διακομιστή.
Διαμόρφωση
Παρόλο που μπορείτε να εκτελέσετε τον διακομιστή, θα πρέπει να γίνουν ορισμένες ρυθμίσεις, ώστε ο διακομιστής να μην είναι πολύ γενικός. Το κύριο αρχείο στο οποίο βάζουμε ρυθμίσεις είναι το server.cfgαρχείο. Παρακάτω είναι ένα πολύ βασικό server.cfgαρχείο.
Για να ανοίξετε/δημιουργήσετε το αρχείο, χρησιμοποιήστε τον αγαπημένο σας επεξεργαστή. Εδώ χρησιμοποιείται το vim, αλλά μπορείτε να χρησιμοποιήσετε οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου όπως το nano.
sudo -u tf2 vim ~tf2/server/tf/cfg/server.cfg
Προσθέστε τα ακόλουθα. Περισσότερες ρυθμίσεις μπορείτε να βρείτε στη σελίδα προγραμματιστή του Team Fortress 2 wiki και Valve. Φροντίστε να αλλάξετε ορισμένες από τις ρυθμίσεις για να ταιριάζουν στις ανάγκες σας.
hostname "Server Name"
rcon_password "password"
sv_password ""
sv_contact "email@example.com"
sv_tags ""
sv_region "255"
sv_lan "0"
exec banned_user.cfg
exec banned_ip.cfg
writeid
writeip
Εκτέλεση του διακομιστή σας
Είναι γνωστό ότι χρειάζεστε έναν πολυπλέκτη όπως το GNU Screen ή το tmux για να τρέχετε τον διακομιστή σας χωρίς επίβλεψη. Εδώ θα χρησιμοποιήσουμε το tmux για να τρέξουμε τον διακομιστή, αλλά αν προτιμάτε και γνωρίζετε πώς να χρησιμοποιείτε την οθόνη, μη διστάσετε να το χρησιμοποιήσετε.
Εγκαταστήστε το tmux χρησιμοποιώντας το pacman.
sudo pacman -Sy tmux
Μπορείτε να ξεκινήσετε τον διακομιστή με την ακόλουθη εντολή. Μπορείτε να αλλάξετε τον χάρτη και τους maxplayers αν θέλετε.
sudo -u tf2 tmux new-session -d -s tf2-console -d '~tf2/server/srcds_run -console -game tf +map cp_dustbowl +maxplayers 24'
Εάν χρειαστεί ποτέ να συνδέσετε την κονσόλα, εκτελέστε τα παρακάτω.
sudo -u tf2 tmux attach -t tf2-console
Μπορείτε να φύγετε από την κονσόλα διακομιστή πληκτρολογώντας CTRL + B, στη συνέχεια απελευθερώνοντας αυτά τα πλήκτρα και, στη συνέχεια, πατώντας το D .
Τρέξιμο με systemd
Η εκτέλεση του διακομιστή με το systemd είναι βολικό για πολλούς λόγους. Το κυριότερο είναι ότι μπορείτε να το ξεκινήσετε όταν ξεκινά το VPS. Αυτό απαιτεί να γραφτεί ένα σενάριο και μια μονάδα συστήματος. Παρόλο που αυτή είναι καλή ιδέα, είναι προαιρετική .
Το πρώτο πράγμα που πρέπει να γράψετε είναι το σενάριο έναρξης. Για να δημιουργήσετε το σενάριο, χρησιμοποιήστε τον αγαπημένο σας επεξεργαστή. Εδώ χρησιμοποιείται το vim, αλλά μπορείτε να χρησιμοποιήσετε οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου όπως το nano.
sudo -u tf2 vim ~tf2/server/tf2.sh
Προσθέστε τα ακόλουθα.
#!/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
Τώρα πρέπει να φτιάξετε τη μονάδα systemd. Για να δημιουργήσετε τη μονάδα, χρησιμοποιήστε τον αγαπημένο σας επεξεργαστή. Εδώ χρησιμοποιείται το vim, αλλά μπορείτε να χρησιμοποιήσετε οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου όπως το nano.
sudo vim /usr/lib/systemd/system/tf2.service
Προσθέστε τα ακόλουθα.
[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
Τώρα βεβαιωθείτε ότι το tf2.shαρχείο είναι εκτελέσιμο.
sudo chmod +x ~tf2/server/tf2.sh
Μετά από όλα αυτά, μπορείτε να το χρησιμοποιήσετε systemctlγια να ξεκινήσετε και να σταματήσετε τον διακομιστή. Επίσης, μπορείτε να το χρησιμοποιήσετε για να το ξεκινήσετε κατά την εκκίνηση.
Να ξεκινήσω:
sudo systemctl start tf2.service
Να σταματήσει:
sudo systemctl stop tf2.service
Για να επανεκκινήσεις:
sudo systemctl restart tf2.service
Για να ενεργοποιήσετε κατά την εκκίνηση:
sudo systemctl enable tf2.service
Για να απενεργοποιήσετε κατά την εκκίνηση:
sudo systemctl disable tf2.service
Παρόλο που το systemd χειρίζεται την εκκίνηση και τη διακοπή του διακομιστή, μπορείτε να αποκτήσετε πρόσβαση στην κονσόλα με την ακόλουθη εντολή:
sudo -u tf2 tmux attach -t tf2-console
Τελικές Σημειώσεις
Το SteamCMD είναι εγκατεστημένο σε μια περιοχή όπου μόνο το root μπορεί να αλλάξει αρχεία (βλ. σημείωση στην ενότητα "Εγκατάσταση SteamCMD"). Εάν ποτέ χρειαστεί να αναβαθμίσετε το ίδιο το SteamCMD, απλώς εκτελέστε το ως root.
sudo steamcmd +quit
Εάν χρειάζεται να ενημερώσετε τον διακομιστή. Πρώτα σταματήστε τον διακομιστή και μετά χρησιμοποιήστε το SteamCMD για ενημέρωση (χρησιμοποιώντας την ίδια εντολή για εγκατάσταση).
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
Υπάρχουν πολλά περισσότερα θέματα διαμόρφωσης που δεν καλύπτονται σε αυτό το σεμινάριο. Εάν χρειάζεστε περισσότερες πληροφορίες, ανατρέξτε στο Team Fortress 2 Wiki και στο Valve Developer Wiki.