Wie funktioniert das Install und das Start Script - ubtue/ub_tools GitHub Wiki

Mit dem Install-Script werden einige Einstellungen angepasst, neue Konfigurationen angelegt und ein Start-Script erstellt.

Installationskonfiguration

Zum Installieren einer Instanz wird eine Installationskonfiguration benötigt. Ein Template ist hier zu finden. In diesem Template befinden sich alle Felder, die konfiguriert werden können. Es müssen aber nicht alle Einstellungen benötigt. Für eine funktionsfähige Installation werden folgende Einstellungen benötigt:

  • NAME: Der Name der neuen Instanz
  • VUFIND_CLONE_DIRECTORY: Der Ordner, unter dem die neue Instanz zu finden ist (z.B. $(pwd)/$NAME um unter dem aktuellen Arbeitsverzeichnis einen Ordner mit dem Namen der Instanz zu nutzen).
  • VUFIND_REPOSITORY: Die URL zum Repository der Instanz.
  • UB_TOOLS_CLONE_DIRECTORY: Der Ordner, unter dem die ub_tools geklont werden soll.
  • UB_TOOLS_REPOSITORY: Die URL zum ub_tools-Repository ([email protected]:ubtue/ub_tools.git)
  • CONFIGS_DIRETORY: Der Ordner mit den Konfigurationen, der meist unter $VUFIND_HOME/ub_tools/configs liegt.
  • SERVER_URL: Die URL, unter der der Server später erreicht werden soll.
  • SERVER_IP: Die IP des Servers
  • EMAIL: Eine Support-Mail-Addresse
  • MODULES: Die Module der Instanz.

Welche Einstellungen werden angepasst?

Je nach System (Ubuntu vs. CentOS) müssen teilweise andere Anpassungen vorgenommen werden.

Serverspezifische Konfigurationen

Unter $VUFIND_LOCAL_DIR/config/vufind/local_overrides werden serverspezifische Konfigurationen (u.a. mit Passwörtern) abgelegt. Diese werden dann in der $VUFIND_LOCAL_DIR/config/vufind/config.ini per @import-Anweisung eingebunden.

  • site.conf: Überschreibt serverspezifische Konfigurationen, wie die Server-URL oder die E-Mail-Addresse des Webmasters.
  • database.conf: Konfiguriert die Datenbank.

Webserver

Um VuFind bei dem Webserver bekannt zu machen werden zwei Dateien aus dem VuFind-Ordner mit einem symbolischen Link in die Konfigurationsordner des Webservers verlinkt. Dabei handelt es sich um $VUFIND_LOCAL_DIR/httpd-vufind.conf und $VUFIND_LOCAL_DIR/httpd-vufind-vhosts.conf. Diese Dateien werden mit serverspezifischen Einstellungen (IP, URL, co.) generiert.

Der Webserver soll unter einem eigenem User laufen. Dafür wird ein neuer vufind-User angelegt und in die Konfigurationen des Webservers eingetragen.

Apache (Ubuntu)

Die Konfigurationsdateien werden hierhin verlinkt: /etc/apache2/conf-enabled

Der User wird unter /etc/apache2/envvars eingetragen. Hier werden die Angaben von APACHE_RUN_USER und APACHE_RUN_GROUP angepasst.

HTTPD (CentOS)

Die Konfigurationsdateien werden hierhin verlinkt: /etc/httpd/conf.d/

Der User wird unter /etc/httpd/conf/httpd.conf eingetragen. Hier werden die Angaben von User und Group angepasst.

Python2

Unter Ubuntu wird python unter /usr/bin installiert, bei CentOS wird es unter /bin installiert. Deshalb erstellt das Installationsskript ein symbolischen Link, der von /bin/python2 auf /usr/bin/python2 zeigt.

Start-Script

Das Start-Script wird angelegt, wenn die Installation nicht under $VUFIND_HOME vorgenommen wird.

Mit dem Script ist es Möglich meherer Kopien zu installieren und zwischen den einzelnen Instanzen zu wechseln. Dabei kann jedoch nur eine Instanz aktiv sein.

Durch die Ausführung des Start-Scripts werden die Server (Webserver, MySQL, VuFind) heruntergefahren, die neue Instanz aktiviert und die Server (Webserver, MySQL, VuFind) für die neue Instanz hochgefahren. So wird sichergestellt, dass die richtigen Konfigurationen geladen sind.

Das Starten und Stoppen der Server (Webserver, MySQL, VuFind) funktioniert über Services. Unterstützt wird SystemD und Upstart. Dabei wird SystemD bevorzugt. Das bedeutet, wenn SystemD vorhanden ist, so wird nur versucht SystemD-Services zu starten und zu stoppen, Upstart wird dann ignoriert.

Unter CentOS ist standardmäßig SystemD installiert. Unter Ubuntu ist standardmäßig Upstart installiert. Ab Ubuntu 15.04 wird SystemD verwendet.

Entwicklungs Doku

Fertig

  • VuFind-User anlegen und verwenden (für Webserver)
  • MySQL-Passwort abfragen
  • MySQL-Datenbank anlegen
  • Git-Repository klonen
  • Umgebungsvariablen in /etc/profile einrichten
  • HTTPD-Konfig erstellen
  • HTTPD-VHOSTS-Konfig erstellen
  • Serverspezifische Konfig in local_overrides erstellen
  • Start-Script erstellen
  • .htpasswd-Passwortschutz einrichtbar machen
  • SSL konfigurierbar
  • Server starten