Image Server¶
Einleitung¶
Weil die Erfahrung gezeigt hat, dass ein Sync per FTP störungsanfällig sein kann, ist die empfohlene Sync Methode das Tool Rsync. Die folgende Anleitung beschreibt, wie man einen Rsync Server einrichtet, bei dem man ohne Login verbinden kann. Eine Zugriffseinschränkung kann über IPv4 bzw. Subnetze erfolgen
Um einen eigenen Imageserver bereitzustellen, brauchen wir:
- Einen Rsync Server im Daemon Modus
- Einen schreibenden User
- Einen lesenden User in der gleichen Gruppe
User¶
Als erstes legen wir den schreibenden User an:
adduser imageserver
Dann legen wir den lesenden User an:
useradd -g imageserver -s /bin/false -d /home/imageserver imageuser
Rsync Daemon¶
Installation¶
Dann installieren wir rsync. Bei Debian und Ubuntu wird apt verwendet:
apt-get install rsync
Bei Centos und RedHat wird yum:
yum install rsync
Konfiguration¶
Wir legen dir Config /etc/rsyncd.conf an und tragen ein:
max connections = 50
log file = /var/log/rsyncd.log
transfer logging = true
timeout = 10
#hosts deny = 82.211.20.112, 89.238.67.17
#hosts allow = 192.168.1.0/255.255.255.0
[easy-wi]
path = /home/imageserver/
use chroot = yes
read only = yes
uid = imageuser
gid = imageserver
Mit den auskommentieren hosts Einträgen kann man IPv4 Adressen und Subnetze erlauben, bzw. verbieten. Benutzt man "hosts allow" ist es automatisch allen anderen verboten zu verbinden.
Rsync Neustart¶
Dann noch den Server neu starten:
/etc/init.d/rsync restart
Verbindungstests¶
Wenn man nun auf zugreifen will, kann man dies mit dem auf seine IPv4 Adresse angepassten Befehl:
rsync -azuvx 127.0.0.1::easy-wi
Gezielt eine Datei bzw. Ordner downloaden kann man mit:
rsync -azuvx 127.0.0.1::easy-wi/control.sh
Ordner, Dateien, Images und Dateirechte¶
Mit dem schreibenden User können wir nun Images vorbereiten. Die Ordnerstruktur ist dabei die gleiche, wie bei dem Masteruser auf den Game Root Server. Als erstes brauchen wir dir drei Ordner masteraddons, mastermaps und masterserver:
su - imageserver
mkdir masteraddons mastermaps masterserver
Nachdem man alle Dateien und Ordner erstellt hat, sollte man noch sicherstellen, dass die Chmods korrekt eingestellt sind, da diese von einem Game Root mit kopiert werden. Dies könnte man mit folgenden Befehlen erreichen:
find /home/imageserver/mastermaps/ /home/imageserver/masteraddons/ -type f -exec chmod 640 {} \;
find /home/imageserver/mastermaps/ /home/imageserver/masteraddons/ -type d -exec chmod 750 {} \;
find /home/imageserver/masterserver/ -type d -exec chmod 750 {} \;
find /home/imageserver/masterserver/ -type f -name "srcds_*" -o -name "hlds_*" -o -name "*.run" -o -name "*.sh" -exec chmod 750 {} \;
find /home/imageserver/masterserver/ -type f ! -perm -750 ! -perm -755 -exec chmod 640 {} \;