Zarafa Update durchführen

Einleitung

Wer Zarafa als Groupware einsetzt, steht gelegentlich vor der Aufgabe, ein Update durchzuführen. Sinnvollerweise sollte vor dem Update eine Sicherung erstellt werden und im Anschluss ein Funktionstest durchgeführt werden.

Vorbereitung

Zunächst werden die relevanten Dienste gestoppt.

# Postfix stoppen
/etc/init.d/postfix stop
´
# Dienste stoppen
/etc/init.d/zarafa-spooler stop
/etc/init.d/zarafa-server stop
/etc/init.d/zarafa-licensed stop
/etc/init.d/zarafa-dagent stop
/etc/init.d/zarafa-gateway stop
/etc/init.d/zarafa-ical stop
/etc/init.d/zarafa-indexer stop
/etc/init.d/zarafa-monitor stop

Ist dies erfolgt, wird zunächst eine Sicherung erstellt.

Sicherung

Bei der Sicherung wird sowohl Datenbank als auch Konfiguration weggesichert. Sofern die Anhänge in einem Filestore abgelegt sind, sollte dieser ebenfalls in der Sicherung enthalten sein.

# Konfiguration
cp -ar /etc/zarafa /etc/zarafa_$(date +"%Y-%m-%d").bkp

# Datenbank
mysqldump --single-transaction -p zarafa >  zarafa_$(date +"%Y-%m-%d").sql

# Anhänge
tar -cjpf zarafa-attachements_$(date +"%Y-%m-%d").tar.bz2 /var/lib/zarafa/attachments

Zeit für das Update.

Update

Zunächst wird die aktuelle Version besorgt und entpackt.

wget https://download.zarafa.com/community/final/7.1/7.1.11-46050/zcp-7.1.11-46050-debian-6.0-x86_64-free.tar.gz

tar -xf zcp-7.1.11-46050-debian-6.0-x86_64-free.tar.gz

Schließlich werden die Pakete eingespielt.

cd zcp-7.1.11-46050-debian-6.0-x86_64/
dpkg -i libvmime0*
dpkg -i libical0*
dpkg -i zarafa-client* zarafa-libs*
dpkg -i python-mapi*
dpkg -i php5-mapi*
dpkg -i zarafa*

Haben sich Konfigurationsdateien geändert, können die Änderungen gesichtet und ggf. übernommen werden.

Konfigurationsänderungen

Prüfen, welche möglichen Änderungen mit der neuen Version verfügbar sind:

# Beispiel server.cfg
diff /etc/zarafa/server.cfg /etc/zarafa/server.cfg.dpkg-dist > server.diff

Die Änderungen sind nun in server.diff aufgeführt und können bei Bedarf in die aktuelle Konfiguration übernommen werden.

Test

Zum Schluss kann Zarafa wieder in Betrieb genommen werden.

/etc/init.d/zarafa-dagent start
/etc/init.d/zarafa-ical start
/etc/init.d/zarafa-monitor start
/etc/init.d/zarafa-server start
/etc/init.d/zarafa-gateway start
/etc/init.d/zarafa-licensed start
/etc/init.d/zarafa-search start
/etc/init.d/zarafa-spooler start
/etc/init.d/postfix start

Die Version sollte nun aktuell sein:

zarafa-admin -V
Product version:        7,1,11,46050
File version:           46050

Eine Testmail zustellen:

echo Testmail | zarafa-dagent ttester

Ebenfalls getestet werden sollte die Anbindung an Outlook (Mail, Kalender, Kontakte) sowie an die mobilen Geräte (z. B. Android).

Have fun!

Linux-Server-Konfiguration versionieren mit etckeeper und git

Einleitung

Arbeitet man an Konfigurationseinstellungen eines Linux-Servers, kann es hilfreich sein, die geänderte Konfiguration zu versionieren. Im Fehlerfall können so Änderungen schnell und einfach zurückgenommen werden. Im weitaus günstigeren Erfolgsfall entsteht durch die Versionierung eine lückenlose Dokumentation der Änderungen.

Pakete

Die erforderlichen Pakete installieren:

apt-get install git-core etckeeper

Weiter mit der Einrichtung…

Konfiguration

In /etc/etckeeper/etckeeper.conf wird git als Versionsveraltung ausgewählt.

# The VCS to use.
#VCS="hg"
VCS="git"
#VCS="bzr"
#VCS="darcs"

In der gleichen Daten können die Paketmanager ausgewählt werden, hier die entsprechende Konfiguration für Debian-basierte Systeme:

# The high-level package manager that's being used.
# (apt, pacman-g2, yum etc)
HIGHLEVEL_PACKAGE_MANAGER=apt

# The low-level package manager that's being used.
# (dpkg, rpm, pacman-g2, etc)
LOWLEVEL_PACKAGE_MANAGER=dpkg

Git-Benutzer konfigurieren:

git config --global user.name "Tom Tester"
git config --global user.email "ttester@krausix.de"
git config --global core.editor "vim"

## zum Überprüfen
git config --global -l

Die Initialisierung wird mit der Paketinstallation automatisch durchgeführt, somit besteht also sofort Betriebsbereitschaft.  🙂

Bedienung

Nachfolgend noch einige Hinweise und Beispiele zur Nutzung. Hierbei befinden wir uns im Verzeichnis /etc.

Änderungen durchführen

Ändern wir /etc/apache2/httpd.conf und dokumentieren die Änderung:

## Änderungen vornehmen

vi /etc/apache2/httpd.conf

## Änderungen anzeigen

git status
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#	modified:   apache2/httpd.conf
#
no changes added to commit (use "git add" and/or "git commit -a")

## Commit der Änderungen

git commit -a -m "changed httpd.conf"
[master b88e415] changed httpd.conf
 1 files changed, 1 insertions(+), 0 deletions(-)

## Änderungen prüfen

git log
commit b88e4152cf00cada1ced69bd5cfc7f3e4070f3be
Author: Tom Tester <ttester@krausix.de>
Date:   Wed Mar 4 03:18:20 2015 +0100

    changed httpd.conf

Was aber, wenn die Änderung nicht zum gewünschten Erfolg geführt hat?

Änderungen rückgängig machen

Ändern wir irgendetwas in der Apache-Konfigurationsdatei /etc/apache2/httpd.conf und machen die Änderung sofort wieder rückgängig:

## Änderungen vornehmen

vi /etc/apache2/httpd.conf

## Änderungen anzeigen

git status
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#	modified:   apache2/httpd.conf
#
no changes added to commit (use "git add" and/or "git commit -a")

## Änderungen zurücknehmen

git checkout apache2/httpd.conf

## Prüfen

git status
# On branch master
nothing to commit (working directory clean)

Hierbei ist nicht mehr zu erkennen, dass die Datei geändert und wiederhergestellt wurde.

Bereits durchgeführte Änderungen rückgängig machen

Wurden die Änderungen bereits mittels commit durchgeführt, ist die Vorgehensweise eine andere:

git revert HEAD

Finished one revert.
[master 5b0cf27] Revert "changed httpd.conf"
 1 files changed, 0 insertions(+), 1 deletions(-)

Hierbei wird automatisch ein commit abgesetzt. Mittels git show kann die Änderung angezeigt werden:

git show

commit 5b0cf27caf82965dbad90fefd299bda1c0ff7b56
Author: Tom Tester <ttester@krausix.de>
Date:   Wed Mar 4 03:27:41 2015 +0100

    Revert "changed httpd.conf"
    
    This reverts commit b88e4152cf00cada1ced69bd5cfc7f3e4070f3be.

diff --git a/apache2/httpd.conf b/apache2/httpd.conf
index 54515a8..be91ec3 100644
--- a/apache2/httpd.conf
+++ b/apache2/httpd.conf
@@ -18,4 +18,3 @@
 #      "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
 #</VirtualHost>
 
-#

Zum Schluss noch die Möglichkeit, Dateien gänzlich von der Versionierung auszuschließen.

Dateien von Versionierung ausschließen

Um Dateien von der Versionierung auszuschließen, müssen sie in .gitignore aufgeführt werden:

[...]

# end section managed by etckeeper

ZU_IGNORIERENDE_DATEI

Da die zukünftig zu ignorierende Datei bereits während der Initialisierung bestanden hat, muss sie noch entfernt werden.

git rm --cached ZU_IGNORIERENDE_DATEI
git add .gitignore
git status
git commit -a -m "removed ZU_IGNORIERENDE_DATEI"

Have fun!

Raspberry Pi und SANE als Netzwerkscanner im Einsatz

Vorwort

Im privaten Einsatz haben sicherlich viele Nutzer einen Dokumentenscanner. In der Regel ist dieser allerdings per USB an einem Windowsclient angebunden, da netzwerkfähige Lösungen meist das Budget sprengen. Hat man mehrere Rechner im Einsatz gilt Murphys Gesetz. Zwar arbeitet man am Rechner aber eben immer gerade nicht an jenem, an dem der Scanner hängt. Was bleibt ist die Möglichkeit, den zweiten Client hochzufahren oder den Scanner umzustöpseln und womöglich zuerst noch zum Ort des Geschehens zu transportieren. Hier soll der Raspberry Pi nun in die Bresche springen.

Pakete

Die benötigten Pakete installieren:

sudo apt-get install xinetd sane-utils

Es folgt ein wenig Konfigurationsarbeit.

Konfiguration

Zum automatischen Start wird in /etc/default/saned RUN auf yes gesetzt:

# Set to yes to start saned
RUN=yes

In /etc/sane.d/saned.conf kann der Zugriff gesteuert werden, im Beispiel werden  zwei Subnetze freigegeben, hier sind auch einzelne IPs oder Hostnamen möglich:

## Access list
# A list of host names, IP addresses or IP subnets (CIDR notation) that
# are permitted to use local SANE devices. IPv6 addresses must be enclosed
# in brackets, and should always be specified in their compressed form.
#
# The hostname matching is not case-sensitive.

192.168.50.0/24
192.168.60.0/24

Saned starten:

sudo service saned start

Weiter mit den Clients…

Windows Client

Für Windows kann SaneTwain unter http://sanetwain.ozuzo.net/#download heruntergeladen und installiert werden.

Hierbei ist dann noch die IP-Adresse des Raspberry Pi einzutragen und es kann losgehen.

Troubleshooting

Achtung! Es sollte ein USB-Hub mit eigener Stromversorgung genutzt werden. 🙂

Have fun!