Einrichtung eines Spiegelservers

aus openSUSE, der freien Wissensdatenbank

Hier finden Sie eine Anleitung zur Einrichtung eines Spiegelservers für openSUSE-Inhalte.

Es wird eine große Annahme gemacht: Auf dem Spiegel selbst läuft openSUSE. Dies erlaubt es, spezifische Anweisungen zu geben.

Wenn Sie ein anderes Betriebssystem laufen haben, werden sich Details unterscheiden, aber diese Anleitung sollte trotzdem noch als Beispiel dienen können!

  • Stellen Sie als erstes sicher, dass Sie den erwarteten Datenverkehr verkraften können, und dass ihr Internetanbieter ihnen nicht den Vertrag kündigt!
  • Pakete, die installiert werden müssen:
    • rsync
    • xntp
    • apache2-prefork oder apache2-worker
  • Treffen Sie Vorbereitung, die Maschine regelmäßig mit Sicherheitsaktualisierungen zu versorgen
  • Firewall:
    • Wenn Sie eine benutzen, dann öffnen Sie die Ports 80 (HTTP) und 873 (rsync).
  • Allgemeine Einstellungen:
    • Installieren Sie xntp.
    • Fügen Sie die IP eines Zeit-Servers der /etc/ntp.conf und konfigurieren Sie den Start (rcntp start; chkconfig -a ntp).
    • Stellen Sie sicher, dass Hostname und DNS-Auflösung Sinn ergeben:
      • Prüfen Sie /etc/hosts, /etc/HOSTNAME und /etc/resolv.conf
      • Stellen Sie sicher, dass die Kommandos 'hostname' und 'hostname -f' etwas sinnvolles zurückliefern. Ein funktionierender Hostname und eine funktionierende Namensauflösung sind wirklich hilfreich.
  • Web-Server:
    • Angenommen, der Hostname ihres Spiegels ist: mirror.beispiel.com
    • Erstellen Sie /etc/apache2/vhosts.d/mirror.beispiel.com.conf
<VirtualHost *:80>
   ServerAdmin admin@beispiel.com
   ServerName mirror.beispiel.com

   DocumentRoot "/srv/pub/opensuse"

   <Directory "/srv/pub/opensuse">
       Options FollowSymLinks Indexes
       IndexOptions FancyIndexing VersionSort NameWidth=* Charset=UTF-8 TrackModified FoldersFirst XHTML
       AllowOverride None
       Order allow,deny
       Allow from all
   </Directory>

   Alias /robots.txt /srv/www/mirror.beispiel.com/robots.txt
   <Directory "/srv/www/mirror.beispiel.com">
       Options None
       Order allow,deny
       Allow from all
   </Directory>

   Include /etc/apache2/conf.d/apachestats.conf

</VirtualHost>
    • Erstellen Sie eine robots.txt, um Web-Crawler abzuhalten:
      • mkdir /srv/www/mirror.example.com
      • Fügen Sie dies in /srv/www/mirror.example.com/robots.txt ein:
User-agent: *
Disallow: *
    • Tuning für mehr Leistung:
      • Passen Sie die MPM-Charakteristiken in /etc/apache2/server-tuning.conf so an, dass sie zur Arbeitsspeichergröße ihres Systems passen. Das Schlimmste, was passieren kann ist, dass das System beginnt, Daten in swap auszulagern, weshalb Apaches maximale Größe in den zur Verfügung stehenden Arbeitsspeicher passen muss. Der worker MPM kann den verfügbaren Arbeitsspeicher besser ausnutzen, allerdings ist der prefork MPM einfacher zu konfigurieren. Beobachten Sie die RSS-Spalte in ps (Sie können davon SHARED abziehen) und multiplizieren Sie den Wert mit dem maximalen Anzahl von Prozesses...
      • Setzen Sie in /etc/apache2/server-tuning.conf einen niedrigen Wert für KeepAliveTimeout (verringern Sie ihn auf 3).
    • rcapache2 restart; chkconfig -a apache2


  • Inhalt:
    • Erstellen Sie einen speziellen Benutzer und ein Verzeichnis, auf das gespiegelt wird:
      • groupadd mirror
      • useradd -m -g mirror -c "Mirror User" -s /bin/bash mirror
      • mkdir /srv/pub/opensuse
      • mkdir /srv/pub/opensuse/update
      • chown -R mirror:mirror /srv/pub/opensuse
    • Wählen Sie ein rsync-Modul aus, das Sie synchronisieren wollen. Die verfügbaren Module finden Sie hier. Dieses Beispiel verwendet das Modul "opensuse-hotstuff-160gb".
    • Fügen Sie cronjobs zum Synchronisieren der Inhalte hinzu. Hier ist ein Beispiel für die meistangefragten Dateien, die wir regelmäßig pullen werden (alle sechs Stunden, nach einer kleinen, zufälligen Verzögerung):
1 */6 * * *    mirror   sleep $(($RANDOM/1024)); rsync -rlpto rsync.opensuse.org::opensuse-hotstuff-160gb /srv/pub/opensuse/ --delete --delete-after --delete-excluded --max-delete=4000 --timeout=1800 -hi
    • Sie können das Kommando ausprobieren und den initialen sync pullen (und beobachten), etwa so:
      • su - mirror
      • rsync -rlpto rsync.opensuse.org::opensuse-hotstuff-160gb /srv/pub/opensuse/ --delete --delete-after --delete-excluded --max-delete=4000 --timeout=1800 -hi


  • Ermöglichen Sie dem openSUSE Scanner den Zugriff, indem Sie einen rsync-Server aufsetzen:
    • (rcrsyncd start; chkconfig -a rsyncd)
    • Fügen Sie das folgende der /etc/rsyncd.conf hinzu:
 [opensuse]
         path = /srv/pub/opensuse
         comment = rsync access for openSUSE scanner
         uid = mirror
         hosts allow = 195.135.220.0/22
  • Teilen Sie dem redirector davon mit.
    • Schreiben Sie eine E-Mail an ftpadmin@suse.de, in der Sie die hier aufgeführten Details angeben.
    • Passen Sie angemessen darauf auf, dass ihr Server verfügbar ist! Der Weiterleiter-Dienst prüft dies alle paar Minuten... aber bis zur nächsten Prüfung wird er Cleints an ihren Host weiterleiten.


  • Überwachen und E-Mail
    • Es gibt viele Wege, ein E-Mail-System einzurichten und zu nutzen. Ich habe es so gemacht:
      • Ich habe mich selbst zum root-Alias in /etc/aliases hinzugefügt: "root: poeml@beispiel.com".
      • Stellen Sie sicher, dass das Versenden von E-Mails funktioniert (es kann sein, dass Sie ein Relay einrichten müssen). Stellen Sie sicher, dass IHR Spiegel, keine E-Mails von außerhalb annimmt, was ihn in eine Spam-Schleuder verwandeln würde.
      • Bestimmen Sie den Sender genauer: usermod -c "root at $(hostname)" root
      • Ein unheimlich nützliches Paket ist sysstat. Nach der Installation starten Sie es (rcsysstat start; chkconfig -a sysstat). Das Kommando "sar -A | less" zeigt ihnen verschiedene Leistungsdaten zur Analyse an.
  • apachestats - erstellen Sie visuelle Serverlastgraphen
    • a2enmod status
    • Fügen Sie 127.0.0.1 zur /etc/apache2/mod_status.conf hinzu.
    • Setzten Sie APACHE_EXTENDED_STATUS="on" in /etc/sysconfig/apache2
    • Installieren Sie das Paket apachestats (software.opensuse.org)
    • Die Graphen finden Sie dann unter http://ihr_spiegel/apachestats/