1. Einrichten eines dedizierten Nutzers ####################################### Für den Betrieb einer mpuls Anwendung wird auf dem Server ein deizierter System-Nutzer 'mpuls' erstellt: # Als root adduser --system --home /home/mpuls mpuls chsh -s /bin/sh mpuls su - mpuls Verzeichnisstruktur ================== Die Installation einer mpuls-Anwendung wird folgende Verzeichnisstruktur anlegen: /home `-- mpuls `-- ${CONFIG} |-- db -> releases/current/${CONFIG}db |-- libformed -> releases/current/libformed |-- libmpuls -> releases/current/libmpuls |-- ${CONFIG}web -> releases/current/${CONFIG}web |-- mpulsweb -> releases/current/mpulsweb |-- production.ini `-- releases |-- current -> ${CONFIG}_${VERSION} `-- ${CONFIG}_${VERSION} Unterhalb von '/home/mpuls/' liegen die verschiedenen Ausprägungen die hier expemplarisch '${CONFIG}' genannt sind. Jede Ausprägung enthält alle notwendigen Komponenten eines Servers. Es ist daher durchaus möglich, mehrere unterschiedliche Ausprägungen parallel nebeneinander (auch in verschiedenen Versionen) zu betreiben. Die unterschiedlichen Versionen sind unter '/home/mpuls/${CONFIG}/releases' angelegt. Auf die jeweils aktuelle Version verweist der Link 'current'. Ein Wechsel zwischen verschiedenen Programversionen ist durch das umhängen des Links und Neustarten der Anwendung möglich. Während sich die Konfiguration und die Funktiononalität zwischen den verschiedenen Versionen unterscheidet, liegt die Datein 'production.ini' auf der Ebene von 'home/mpuls/${CONFIG}' und enhält Konfigurationen wie die DB-Verbindung etc., die sich nicht zwischen den verschiedenen Programmversionen unterscheiden. Installation der Anwendung ========================== Die Installation erfolgt auf einem Debian Lenny-System. Vorbedingung (Benötigte Pakete) Bevor die Anwendung installiert werden kann, muss sichergestellt werden, das die benötgten Pakete bereits installiert sind. Pylons wird aus den Backports installiert. Es wird die Version 0.9.7 benötigt. # Als root # Eintragen der Backports. echo deb http://backports.debian.org/debian-backports \ lenny-backports main \ >> /etc/apt/sources.list apt-get update # Installation der Anwendung apt-get install -t lenny-backports \ python-pylons apt-get install libapache2-mod-wsgi \ python-pybabel \ python-excelerator \ python-psycopg2 \ gettext \ screen # Sofern auch eine Datenbank auf dem Server laufen soll: apt-get install postgresql-8.3 \ postgresql-plpython-8.3 \ pwgen # Locales konfigurieren dpkg-reconfigure locales # de_DE.UTF-8 ist Standar Ausrollen der Anwendung ======================= Die Installation erfolgt auf Basis der zuvor erstellten Installationpakete. Dieser werden vor der Installation auf den entsprechenden Webserver per scp nach '/tmp' kopiert. Mit den nun folgenden Befehlen wird die oben genannte Verzeichnisstruktur erstellt und die Anwendung installiert. su - mpuls VERSION=1.0 TYPE=xyz # Erstellen eines Verzeichnis für die Ausprägung mkdir $TYPE cd $TYPE mkdir releases cd releases # Entpacken der Version tar xzvf /tmp/${TYPE}_${VERSION}.tar.gz mv tmp/releases/${TYPE}_${VERSION} . rm -r tmp # Erstellen der der Links auf die aktuelle Version rm current ln -s ${TYPE}_${VERSION} current cd .. for d in `find releases/current/ -maxdepth 1 -type d \ | grep -v current/$`; do ln -s $d; done mv ${TYPE}db db # Sprachdateien für libformed erstellen cd libformed python setup.py compile_catalog cd .. # Sprachdateien für mpulsweb erstellen cd mpulsweb python setup.py compile_catalog cd .. # Übersetzen aller Sprachdateien und Ersetzen des Versions- und # Datumsstring cd ${TYPE}web # Übersetzen aller po-Dateien in die entsprechenden mo-Dateien for f in $(find . -name \*.po); do msgfmt ${f} -o $(echo ${f} | sed -e "s/\.po$/.mo/g"); done cd .. cd mpulsweb DATE=$(date +%d.%m.%Y) sed -i -e s/REVISION/${VERSION}/g mpulsweb/lib/config.py sed -i -e s/RELEASEDATE/${DATE}/g mpulsweb/lib/config.py Einrichten einer Datenbank ========================== Cluster anlegen --------------- # Als root TYPE=xyz PORT=5433 pg_createcluster -p ${PORT} --lc-collate=de_DE.utf8 -lc-ctype=de_DE.utf8 --start 8.3 $TYPE cd /home/mpuls/${TYPE}/db chown postgre: -R * Datenbank anlegen --------------- # Als postgres TYPE=xyz cd /home/mpuls/${TYPE}/db cd db_setup # in das Verzeichnis in dem (bin, install und update liegen) psql -p ${PORT} -f mpuls-init-cluster.sql echo testdb > KA_list sh bin/create_databases.sh ${PORT} -> result_list enthält Password für den "adm"-Nutzer Betrieb der Anwendung ===================== An dieser Stelle wird nur grundsätzlich der Betrieb der Software unter Verwendung des "Paste"-Servers beschrieben. Andere Betriebsarten wie der Betrieb im Apache über mod_wsgi ist nicht Teil dieser QUICK-Install Anleitung. Konfiguration der Anwendung --------------------------- su - mpuls TYPE=xyz cd ${TYPE}/${TYPE}web vim production.ini # Parameter für Datenbankverbindung anpassen. Starten der Anwendung --------------------- su - mpuls TYPE=xyz export PYTHONPATH=/home/mpuls/$TYPE/libmpuls/:/home/mpuls/$TYPE/libformed/:/home/mpuls/$TYPE/mpulsweb/:PYTHONPATH cd ${TYPE}/${TYPE}web paster serve --reload production.ini