-
Notifications
You must be signed in to change notification settings - Fork 63
Installationsanleitung für Kitodo.Production 3.5
- 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 9, MariaDB, 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 tomcat9 mariadb-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 7 installieren müssen.
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/7.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 MariaDB-Server erstellen und den Zugriff für Production konfigurieren.
sudo mariadb
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.5.0/kitodo_3-5-0.sql
mariadb -u kitodo -pkitodo -D kitodo < kitodo_3-5-0.sql
Laden Sie das Samba-Schema in LDAP:
wget https://raw.githubusercontent.com/zentyal/samba/master/examples/LDAP/samba.ldif
cat samba.ldif | 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 als 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
ntlm auth = yes
lanman auth = no
client ntlmv2 auth = 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.5.0/kitodo-3.5.0.war
wget https://github.com/kitodo/kitodo-production/releases/download/kitodo-production-3.5.0/kitodo_3-5-0_config_modules.zip
sudo mkdir /usr/local/kitodo
sudo unzip kitodo_3-5-0_config_modules.zip -x scripts/*.bat -d /usr/local/kitodo
Wenn Sie die Übersetzungstexte der grafischen Oberfläche lokal verändern wollen, führen Sie die beiden folgenden Kommandos aus. Dies hat den Nachteil, dass bei künftigen Updates neu hinzugekommene Beschriftungen nicht automatisch zur Verfügung stehen. Daher ist dieser Schritt optional. (Wichtig: Wenn Sie die Übersetzungstexte nicht anpassen wollen, darf auch der Ordner /usr/local/kitodo/messages
nicht erstellt werden.)
sudo mkdir /usr/local/kitodo/messages
sudo unzip -j kitodo-3.5.0.war 'WEB-INF/classes/messages/*' -d /usr/local/kitodo/messages
Anschließend geht es in jedem Fall so weiter:
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 tomcat:tomcat diagrams logs metadata temp users
sudo dos2unix scripts/*.sh
sudo chown tomcat 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 tomcat "$Home"
Ändern Sie die Datei /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 = tomcat
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 tomcat9 /usr/local/kitodo/users/*
TOMCAT_USER ALL=NOPASSWD: CHOWN_METADATA, CHOWN_USERS, CHGRP_USERS
Passen Sie die Default-Einstellungen des Tomcat, /etc/default/tomcat9
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"
Bearbeiten Sie die Datei /lib/systemd/system/tomcat9.service
: Fügen Sie im Abschnitt [Service]
die Zeile ReadWritePaths=/usr/local/kitodo/
hinzu. (Die Zeile ReadWritePaths=
darf wiederholt werden.) Ändern Sie den Wert von NoNewPrivileges
auf false
.
Starten Sie danach den Tomcat neu:
sudo systemctl daemon-reload
sudo service tomcat9 restart
Installieren Sie die Webanwendung:
sudo cp kitodo-3.5.0.war /var/lib/tomcat9/webapps/kitodo##3.5.0.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 |
sambaLogonHours | FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |