-
Notifications
You must be signed in to change notification settings - Fork 63
Installationsanleitung für Kitodo.Production 3.2
- Vorbereitende Schritte
- Softwarepakete installieren
- Root Distinguished Name ermitteln
- Name Service Switch installieren
- ElasticSearch installieren
- Datenbank vorbereiten
- LDAP für Samba vorbereiten
- Samba konfigurieren
- Programmordner und -dateien erstellen
- Skripte konfigurieren
- Tomcat konfigurieren
- Logrotation konfigurieren
- Visuelle Konfiguration
Prüfen Sie vor der Installation mit dem Kommando
sudo hostname -f
ob der vollqualifizierte Domainname (FQDN) dem geplanten Servernamen entspricht. Dieser wird während der LDAP-Installation für die Bildung des Root Distinguished Name (RDN) und die Basiskonfiguration des LDAP genutzt, was sich später nur umständlich korrigieren lässt. Hier sollte der FQDN, z.B. rechnername.rz.example.de
, angezeigt werden, nicht bloß rechnername
. Wenn nicht, konfigurieren Sie zuerst /etc/hosts
richtig.
Die Digitalisierung erzeugt viele Daten. In der Regel werden diese Daten auf einer eigenen Partition gespeichert, bei der es sich wahrscheinlich um ein Netzwerkgerät (auch bekannt als NAS) handelt. Mit dem folgenden Befehl erstellen wir einen Einhängepunkt für die Datenpartition als /mnt/data
:
sudo mkdir /mnt/data
Wie der Datenspeicher bereitgestellt wird, hängt stark von der verwendeten Hardware und den verwendeten Netzwerken ab. Wenn Sie eine Datenpartition verwenden möchten, stellen Sie sicher, dass die Datenpartition am angegebenen Bereitstellungspunkt bereitgestellt ist. Jetzt ist es ein guter Moment, um zu überlegen, ob Sie LVM einrichten möchten.
Installieren Sie mit der Paketverwaltung Tomcat 8, MySQL, ImageMagick, LDAP incl. Utils, Samba, den Apache Webserver und den Jakarta Connector. Für die Installation benötigen wir außerdem HTTPS-Unterstützung für Apt, Unzip und das Tool dos2unix. Während der Installation werden Sie nach dem Passwort für den LDAP-Server gefragt. Das Passwort wird von Production unverschlüsselt in der Datenbank gespeichert. Wählen Sie kein wertvolles Passwort.
sudo apt-get update
sudo apt-get install tomcat8 mysql-server imagemagick slapd ldap-utils samba apt-transport-https unzip dos2unix
Mit dem Kommando
sudo slapcat
können wir den Inhalt des LDAP-Servers anzeigen. Die Einträge sind durch Leerzeilen getrennt. Hier finden wir den erzeugten Root Distinguished Name (RDN) im Eintrag mit der Eigenschaft objectClass:top
unter dem Schlüssel dn
.
Wenn Sie ein Testsystem einrichten, das keinen DNS-Namen erhalten soll, wird als RDN dc=nodomain
verwendet. Der LDAP-Admin-Benutzer hat den Common Name (CN) cn=admin,dc=nodomain
. Diese Angaben werden auch in dieser Installationsanleitung verwendet. Wenn Sie den Rechner in Ihrem Netzwerk installieren, wird hier etwas wie dc=rz,dc=example,dc=de
stehen. Benutzen Sie dann diese Zeichenkette anstelle von dc=nodomain
im weiteren Verlauf der Installationsanleitung.
Nun installieren wir noch die Name-Service-Switch-LDAP-Bibliothek:
sudo apt-get install libnss-ldap
Während der Installation werden Sie nach einigen Einstellungen gefragt:
LDAP server Uniform Resource Identifier: | ldapi:/// |
LDAP search base: | ou=users,dc=nodomain |
LDAP version: | 3 |
Make local root database admin: | No |
Does the LDAP server require login? | No |
Falls Sie diesen Schritt wiederholen wollen oder müssen, geben Sie dazu nacheinander die beiden folgenden Kommandos ein:
sudo apt-get purge libnss-ldap
sudo apt-get install libnss-ldap
Beachten Sie, dass Sie ElasticSearch Version 5 installieren müssen. Aufgrund von Inkompatibilitäten, die mit Version 6 eingeführt wurden, können Sie derzeit keine neuere Hauptversion verwenden. Die folgende Befehlssequenz installiert ElasticSearch 5 mithilfe der Paketverwaltung:
export JAVA_HOME=/usr/lib/jvm/default-java
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo add-apt-repository "deb https://artifacts.elastic.co/packages/5.x/apt stable main"
sudo apt-get update
sudo apt-get install elasticsearch
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
Während die Digitalisierungsdaten in Dateien auf dem Datenbereitstellungspunkt gespeichert werden, werden die Prozessdaten (Projekte, Mitarbeiter, Fortschritt von Objekten im Workflow usw.) in einer Datenbank gespeichert. Sie müssen eine Datenbank auf dem MySQL-Server erstellen und den Zugriff für Production konfigurieren.
sudo mysql
create database kitodo;
create user 'kitodo'@'localhost' identified by 'kitodo';
grant all on kitodo.* to 'kitodo'@'localhost';
exit;
Anschließend laden Sie die Datenbankinhaltsvorlage herunter und laden sie in die Datenbank:
wget https://github.com/kitodo/kitodo-production/releases/download/kitodo-production-3.2/kitodo_3-2.sql
mysql -u kitodo -pkitodo -D kitodo < kitodo_3-2.sql
Melden Sie sich an der Datenbank an. Einige Tabellen müssen umbenannt werden. Wandeln Sie außerdem alle Benutzernamen in Kleinbuchstaben um:
mysql -u kitodo -pkitodo -D kitodo
ALTER TABLE client_x_listcolumn RENAME TO client_x_listColumn;
ALTER TABLE ldapgroup RENAME TO ldapGroup;
ALTER TABLE ldapserver RENAME TO ldapServer;
ALTER TABLE listcolumn RENAME TO listColumn;
ALTER TABLE workflowcondition RENAME TO workflowCondition;
update user set login = lower(login);
exit;
Laden Sie das Samba-Schema in LDAP:
zcat /usr/share/doc/samba/examples/LDAP/samba.ldif.gz | sudo ldapadd -Q -Y EXTERNAL -H ldapi:///
Erstellen Sie im LDAP einen Eintrag für die Gruppe der Production-Benutzenden. Erstellen Sie dazu eine Datei users.ldif
mit folgendem Inhalt:
dn: ou=users,dc=nodomain
objectClass: organizationalUnit
ou: users
Die Datei laden Sie in LDAP mit:
ldapadd -x -D cn=admin,dc=nodomain -w 'LDAP-Admin-Passwort' < users.ldif
Ermitteln Sie die Gruppennummer für alle Benutzenden:
grep users /etc/group
Es handelt sich um die Zahl zwischen dem zweiten und dritten Doppelpunkt. (Meistens ist das die 100.)
Ermitteln Sie die höchste vergebene Benutzendennummer. Betrachten Sie dazu die Datei /etc/passwd
.
less /etc/passwd
Jede Zeile entspricht einem Benutzendenkonto. Die Benutzendennummer steht zwischen dem zweiten und dritten Doppelpunkt (die erste der beiden Zahlen). Alle Benutzenden, die keine Systemkonten sind, haben eine Benutzendennummer ab 1000 aufsteigend. Suchen Sie die erste Zahl größer 1000, die nicht mehr vorkommt. Dies ist die nächste freie Benutzendennummer. Die Anzeige beenden Sie mit einem Druck auf die Taste Q.
Erstellen Sie eine Datei nextfreeunixid.ldif
mit folgendem Inhalt. Setzen Sie dabei die ermittelten Angaben ein:
dn: cn=NextFreeUnixId,dc=nodomain
objectClass: inetOrgPerson
sn: NextFreeUnixId
objectClass: posixAccount
cn: NextFreeUnixId
uid: nextfreeunixid
uidNumber: #die nächste freie Benutzendennummer#
gidNumber: #die ermittelte Gruppennummer#
homeDirectory: /dev/null
Die Datei laden Sie in LDAP mit:
ldapadd -x -D cn=admin,dc=nodomain -w 'LDAP-Admin-Passwort' < nextfreeunixid.ldif
Bearbeiten Sie die Datei /etc/samba/smb.conf
, sodass sie folgendes enthält:
[global]
workgroup = KITODO
unix extensions = no
wide links = yes
load printers = no
security = user
invalid users = root
encrypt passwords = yes
passdb backend = ldapsam:ldap://127.0.0.1
ldap suffix = dc=nodomain
ldap user suffix = ou=users
ldap group suffix = ou=groups
ldap admin dn = cn=admin,dc=nodomain
ldap ssl = no
ldap passwd sync = yes
ldap delete dn = no
[homes]
comment = Home Directories
path = /usr/local/kitodo/users/%U
read only = no
browseable = no
valid users = %S
guest ok = no
inherit permissions = yes
Passen Sie die Konfiguration des Name Service Switch, /etc/nsswitch.conf
an:
Ergänzen Sie die Zeile passwd:
um das Argument ldap
:
passwd: compat systemd ldap
Setzen Sie in Samba das LDAP-Passwort:
sudo smbpasswd -w 'LDAP-Admin-Passwort'
Starten Sie die Samba-Dienste neu:
sudo systemctl restart smbd nmbd
Laden Sie die Software, die Module und die Konfigurationsdateien herunter, erstellen Sie einen Programmordner, entpacken Sie die Module und Konfigurationsdateien. Den metadata-Ordner legen Sie auf die Datenpartition. Vergeben Sie die notwendigen Berechtigungen:
wget https://github.com/kitodo/kitodo-production/releases/download/kitodo-production-3.2/kitodo-3.2.war
wget https://github.com/kitodo/kitodo-production/releases/download/kitodo-production-3.2/kitodo_3-2_config_modules.zip
sudo unzip kitodo_3-2_config_modules.zip -x kitodo_3-2/scripts/*.bat -d /usr/local
sudo mv /usr/local/kitodo_3-2 /usr/local/kitodo
sudo mkdir /usr/local/kitodo/messages
sudo mv diagram diagrams
sudo unzip -j kitodo-3.2.war 'WEB-INF/classes/messages/*' -d /usr/local/kitodo/messages
cd /usr/local/kitodo
sudo mv metadata /mnt/data
sudo ln -s /mnt/data/metadata
sudo mkdir logs temp
# sudo chown -R ‹Admin-Benutzer›:users config messages rulesets xslt #optional
sudo chown -R tomcat8:tomcat8 diagram logs metadata temp users
sudo dos2unix scripts/*.sh
sudo chown tomcat8 scripts/*.sh
sudo chmod 544 scripts/*.sh
cd
Ändern Sie die Datei /usr/local/kitodo/scripts/script_createDirUserHome.sh
wie folgt:
#!/bin/sh
User="$1"
Home="$2"
/bin/mkdir "$Home"
/bin/chmod g+w "$Home"
sudo /bin/chown $User "$Home"
sudo /bin/chgrp tomcat8 "$Home"
Ändern Sie die Datei sudo nano /usr/local/kitodo/scripts/script_createSymLink.sh
wie folgt:
#!/bin/sh
Source="$1"
Target="$2"
User="$3"
/bin/ln -s "$Source" "$Target"
sudo /bin/chown -R $User "$Source"
Erstellen Sie mit dem Kommando sudo visudo -f /etc/sudoers.d/kitodo
eine Datei mit folgendem Inhalt:
User_Alias TOMCAT_USER = tomcat8
Cmnd_Alias CHOWN_METADATA = /bin/chown -R * /usr/local/kitodo/metadata/*
Cmnd_Alias CHOWN_USERS = /bin/chown * /usr/local/kitodo/users/*
Cmnd_Alias CHGRP_USERS = /bin/chgrp tomcat8 /usr/local/kitodo/users/*
TOMCAT_USER ALL=NOPASSWD: CHOWN_METADATA, CHOWN_USERS, CHGRP_USERS
Passen Sie die Default-Einstellungen des Tomcat, /etc/default/tomcat8
an:
Ergänzen Sie die Zeile JAVA_OPTS
, um dem Tomcat mehr Arbeitsspeicher (4G, davon 256m für den Programmcode) zu geben:
JAVA_OPTS="-Djava.awt.headless=true -XX:+UseConcMarkSweepGC -Xmx4G -XX:MaxPermSize=256m"
Wenn systemd
im ProtectSystem
-Modus full
oder strict
läuft (neuere Linux-Distributionen), muss der Schreibzugriff auf die Verzeichnishierarchie unter /usr/local/kitodo/
freigegeben werden, indem in der Datei /lib/systemd/system/tomcat9.service
im Abschnitt [Service]
die Zeile ReadWritePaths=/usr/local/kitodo/
hinzugefügt wird. (Die Zeile ReadWritePaths=
wird für jeden freizugebenden Pfad wiederholt.)
Starten Sie danach den Tomcat neu:
sudo systemctl daemon-reload
sudo service tomcat8 restart
Installieren Sie die Webanwendung:
sudo cp kitodo-3.2.war /var/lib/tomcat8/webapps/kitodo##3.2.war
Erstellen Sie die Datei /etc/logrotate.d/kitodo
z.B. mit folgendem Inhalt:
/usr/local/kitodo/logs/kitodo.log {
copytruncate
daily
rotate 7
ifempty
compress
compresscmd /usr/bin/gzip
uncompresscmd /usr/bin/gunzip
missingok
nomail
}
Sie erreichen die Webanwendung im WWW-Browser unter der Adresse: http://
host:8080/kitodo
. Melden Sie sich mit dem Benutzernamen testadmin
und dem Passwort test
an.
Es öffnet sich die Seite System – Indexierung. Erzeugen Sie das ElasticSearch-Mapping und indexieren Sie den gesamten Index komplett.
Wechseln Sie dann über das Hauptmenü, den “Zauberwürfel” rechts oben, zu Benutzer. Erstellen Sie mit dem “Neu”-Button einen neuen LDAP-Server mit folgenden Einstellungen:
Manager login | cn=admin,dc=nodomain |
nextFreeUnixIdPattern | cn=NextFreeUnixId,dc=nodomain |
URL | ldap://localhost:389/ |
Manager password | LDAP-Admin-Passwort |
Wechseln Sie zum Tab “LDAP-Gruppen”. Ermitteln Sie den Secure Identifier (SID) mit dem Kommando:
sudo net getlocalsid
Passen Sie die Einstellungen der LDAP-Gruppe wie folgt an:
Beispiel | ||
---|---|---|
User DN | cn={login},ou=users,dc=nodomain |
cn={login},ou=users,dc=nodomain |
gidNumber | Gruppennummer | 100 |
sambaSID |
SID-{uidnumber*2+1001}
|
S-1-5-21-123456789-1234567890-1234567890-{uidnumber*2+1001} |
LDAP-Server | den soeben erstellten Server auswählen | Lokaler LDAP-Server |
loginShell | /bin/false |
/bin/false |
sambaPrimaryGruopSID |
SID-1000
|
S-1-5-21-123456789-1234567890-1234567890-1000 |
Aktivieren Sie auf dem Tab “LDAP-Gruppen” unten die LDAP-Authentifizierung. Wechseln Sie dann zur Seite Benutzer – Benutzer und bearbeiten der Reihe nach die Benutzenden. Schreiben Sie bei jedem Benutzenden die LDAP-Konfiguration.
Passen Sie die Konfiguration der Webanwendung unter /var/lib/tomcat8/webapps/kitodo##3.2/WEB-INF/classes/kitodo_config.properties
an: Ändern Sie die Zeile ldap_use
auf den Wert true
.