Installation: Unterschied zwischen den Versionen

Aus Letto-Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 10: Zeile 10:


== Installation unter Ubuntu 18.04 ==
== Installation unter Ubuntu 18.04 ==
* Download von Ubuntu Server [http://cdimage.ubuntu.com/releases/18.04/release/] (Vorsicht nicht die Live-DVD verwenden!) und Erzeugung eines Boot Mediums [https://wiki.ubuntuusers.de/Ubuntu-CD/] (zB. DVD)
* Download von Ubuntu Server [http://cdimage.ubuntu.com/releases/18.04/release/] und Erzeugung eines Boot Mediums [https://wiki.ubuntuusers.de/Ubuntu-CD/] (zB. DVD)
* Installation mit einem Benutzer letto
* Installation mit einem Benutzer '''letto'''
* Installation der benötigten Packete:
* Bei der Installation nur den '''OpenSSH Server''' mit installieren
<pre>
* Der Server sollte über eine '''funktionierende Namensauflösung''' aus dem '''Internet''' erreichbar sein.
# letzte Updates einspielen
* Eine gegebenenfalls vor dem Server sitzende Firewall sollte ins Internet mindestens folgende Ports freischalten:
apt-get -y update
** Eingehend TCP: 22(ssh), 80(HTTP), 443(HTTPS)
apt-get -y upgrade
** Eingehend ICMP: echo(ping)
apt-get -y dist-upgrade
** Ausgehend TCP: 22(ssh), 80(HTTP), 443(HTTPS)
apt-get -y autoremove
** Ausgehend UDP: 53(DNS)
** Ausgehend ICMP: echo(ping)
** Und natürlich alle Antworten auf ausgehende Anfragen
** Falls eine Authentifizierung über LDAP gewünscht wird muss natürlich der LDAP oder AD-Server mit den notwendigen Ports erreichbar sein.


# Installation einer aktuellen Java8-JDK (hier die Open-JDK, es kann aber auch die Oracle-JDK verwendet werden)
* Konfiguration des Servers
apt-get install -y openjdk-8-jre openjdk-8-jdk openjdk-8-demo openjdk-8-doc openjdk-8-jre-headless openjdk-8-source
** Starten des Servers
** Wechseln zu Benutzer root.<pre>sudo su</pre>
** Wechsel in das Verzeichnis opt<pre>cd /opt</pre>
** '''Download''' des Installationsscripts<pre>wget https://letto.at/download/letto/install-letto-ubuntu.sh</pre>
** Script in einem Editor '''konfigurieren''' <pre>nano install-letto-ubuntu.sh</pre>
*** Setzen von DNS-Namen, Passwörtern, Email und Heap-Speicher
*** Die Definition "Config=0" auf "Config=1" ändern
*** Mit <Strg>-O und Enter das Script speichern
*** Mit <Strg>-X den Editor verlassen
** Seten von Ausführungsrechten <pre>chmod 755 install-letto-ubuntu.sh</pre>
** Script '''starten''' <pre>./install-letto-ubuntu.sh</pre>


# Maxima,Inkscape,komprimierer
* Zertifikat für den Server installieren:<br>Bei der Standardeinstellung wurde noch das selbstsignierte Zertifikat vom Apache2 in der Datei /etc/apache2/sites-enabled/letto.conf eingebunden. Dieses Zertifikat kann nun durch ein eigenes gültiges Zertifikat für den Server-DNS-Namen ersetzt werden. <br> Falls kein eigenes Zertifikat vorhanden ist, kann auch mit dem Certbot ein selbstzertifiziertes Zertifikat installiert werden. Hierzu kann wie folgt vorgegangen werden:
apt-get install -y maxima inkscape arj zip unzip
** Starten des certbot als root-Benuter <pre>certbot --apache -d meinedomain.at</pre>
*** Hierbei müssen einige Fragen wie email etc. beantwortet werden.
** Eintragen des certbot in einen Cronjob wie zB. in der Datei /etc/crontab <pre>05 05 * * * root certbot renew</pre>


# Tex
* Datensicherung einrichten: <br>Die Datensicherung wird durch das Script so eingerichtet, das täglich in das Verzeichnis /sicherung gesichert wird. Diese Verzeichnis sollte nun auf eine externe Hardware regelmäßig mit einem sinnvollen Archivierungskonzept gesichert werden.
apt-get install -y tex-common texinfo texlive-latex-extra fig2ps ttm texlive-full texlive-plain-extra


# Samba und cifs für die Autentifizierung an einer Windows Domain
* Konfiguration von LeTTo : <br> Nun kann der Server über seine URL erreicht und konfiguriert werden.
#apt-get install -y samba realmd sssd adcli libwbclient-sssd krb5-user sssd-tools packagekit
#apt-get install -y samba-common samba-common-bin samba-libs
 
# Installation von MySQL, wenn es am Server installiert wird
apt-get install -y apache2 php mysql-server mysql-client phpmyadmin
</pre>


== Installation unter Ubuntu 20.04 ==
== Installation unter Ubuntu 20.04 ==
* Download von Ubuntu Server [http://cdimage.ubuntu.com/releases/20.04/release/]und Erzeugung eines Boot Mediums [https://wiki.ubuntuusers.de/Ubuntu-CD/] (zB. DVD)
* Download von Ubuntu Server [http://cdimage.ubuntu.com/releases/20.04/release/]und Erzeugung eines Boot Mediums [https://wiki.ubuntuusers.de/Ubuntu-CD/] (zB. DVD)
* Installation mit einem Benutzer letto
* Installation mit einem Benutzer '''letto'''
* Installation der benötigten Packete:
* Bei der Installation nur den '''OpenSSH Server''' mit installieren
<pre>
* Der Server sollte über eine '''funktionierende Namensauflösung''' aus dem '''Internet''' erreichbar sein.
# letzte Updates einspielen
* Eine gegebenenfalls vor dem Server sitzende Firewall sollte ins Internet mindestens folgende Ports freischalten:
apt-get -y update
** Eingehend TCP: 22(ssh), 80(HTTP), 443(HTTPS)
apt-get -y upgrade
** Eingehend ICMP: echo(ping)
apt-get -y dist-upgrade
** Ausgehend TCP: 22(ssh), 80(HTTP), 443(HTTPS)
apt-get -y autoremove
** Ausgehend UDP: 53(DNS)
 
** Ausgehend ICMP: echo(ping)
# Installation einer aktuellen Java8-JDK (hier die Open-JDK, es kann aber auch die Oracle-JDK verwendet werden)
** Und natürlich alle Antworten auf ausgehende Anfragen
apt-get install -y openjdk-8-jre openjdk-8-jdk openjdk-8-demo openjdk-8-doc openjdk-8-jre-headless openjdk-8-source
** Falls eine Authentifizierung über LDAP gewünscht wird muss natürlich der LDAP oder AD-Server mit den notwendigen Ports erreichbar sein.
 
# Maxima,Inkscape,komprimierer
apt-get install -y maxima inkscape arj zip unzip scour
 
# Tex
apt-get install -y tex-common texinfo texlive-base texlive-latex-recommended texlive texlive-latex-extra texlive-full fig2ps ttm
 
# Installation von Apache und MySQL, wenn es am Server installiert wird
apt-get install -y apache2 php mysql-server mysql-client python3-certbot-apache net-tools software-properties-common
</pre>
 
= Einrichten der Datenbank =
* Die Konfiguration kann über phpmyadmin,den mysql Konsolen-Client, MySQLWorkbench, oder irgend ein anderes Admin-Tool für die MySQL-Datenbank erfolgen.
* Anlegen eines Benutzers "letto" mit Zugriffsrecht auf die Datenbank "letto". Bitte verwenden sie '''keine Sonderzeichen oder Umlaute im Passwort''', da dies zu Problemen bei der Datenbankverbindung führen kann!!
<pre>
mysqldatabase=letto
mysqluser=letto
mysqlpassword=[passwort]
mysqlltidatabase=lettolti
mysqlltiuser=lettolti
mysqlltipassword=[ltipasswort]
echo "GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;"|mysql -u root -h localhost mysql
echo "flush privileges;"|mysql -u root -h localhost mysql
echo "create database if not exists $mysqldatabase ;"|mysql -u root -h localhost
echo "CREATE USER if not exists '$mysqluser'@'localhost' IDENTIFIED WITH mysql_native_password BY '$mysqlpassword';"|mysql -u root -h localhost mysql
echo "GRANT ALL PRIVILEGES ON $mysqldatabase.* TO '$mysqluser'@'localhost';"|mysql -u root -h localhost mysql
echo "create database if not exists $mysqlltidatabase;"|mysql -u root -h localhost
echo "CREATE USER if not exists '$mysqlltiuser'@'localhost' IDENTIFIED WITH mysql_native_password BY '$mysqlltipassword';"|mysql -u root -h localhost mysql
echo "GRANT ALL PRIVILEGES ON $mysqlltidatabase . * TO '$mysqlltiuser'@'localhost';"|mysql -u root -h localhost mysql
echo "flush privileges;"|mysql -u root -h localhost mysql
</pre>
* Den Rest erledigt der Letto-Server
* Einstellung an der Datei mysqld.cnf als root
<pre>
nano /etc/mysql/mysql.conf.d/mysqld.cnf
</pre>
Am Ende der Datei einfügen:
<pre>
[mysqld]
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
default-time-zone='SYSTEM'
</pre>
* Mysql neu starten
<pre>
service mysql restart
</pre>
 
= Installation des Webservers =


Als Webserver wird von uns eine Kombination aus Apache-Server und TomEE 8 empfohlen. Der Apache-Server hostet alle statischen Dateien wie Images, Videos, Javascript-Libraries und stellt die Zertifikate für die https-Verbindung zur Verfügung.
* Konfiguration des Servers
* [[Installation TomEE-8]]
** Starten des Servers
* [[Betreiben hinter einem Apache-Server|Konfiguration Apache-Server]]
** Wechseln zu Benutzer root.<pre>sudo su</pre>
** Wechsel in das Verzeichnis opt<pre>cd /opt</pre>
** '''Download''' des Installationsscripts<pre>wget https://letto.at/download/letto/install-letto-ubuntu-20.04.sh</pre>
** Script in einem Editor '''konfigurieren''' <pre>nano install-letto-ubuntu.sh</pre>
*** Setzen von DNS-Namen, Passwörtern, Email und Heap-Speicher
*** Die Definition "Config=0" auf "Config=1" ändern
*** Mit <Strg>-O und Enter das Script speichern
*** Mit <Strg>-X den Editor verlassen
** Seten von Ausführungsrechten <pre>chmod 755 install-letto-ubuntu-20.04.sh</pre>
** Script '''starten''' <pre>./install-letto-ubuntu-20.04.sh</pre>


Zu Testzwecken wird empfohlen, den Produktionsserver und die neue TomEE8-Version parallel zu verwenden.
* Zertifikat für den Server installieren:<br>Bei der Standardeinstellung wurde noch das selbstsignierte Zertifikat vom Apache2 in der Datei /etc/apache2/sites-enabled/letto.conf eingebunden. Dieses Zertifikat kann nun durch ein eigenes gültiges Zertifikat für den Server-DNS-Namen ersetzt werden. <br> Falls kein eigenes Zertifikat vorhanden ist, kann auch mit dem Certbot ein selbstzertifiziertes Zertifikat installiert werden. Hierzu kann wie folgt vorgegangen werden:
Siehe [[Umstieg von Glassfish 4.1 auf TomEE 8]]
** Starten des certbot als root-Benuter <pre>certbot --apache -d meinedomain.at</pre>
*** Hierbei müssen einige Fragen wie email etc. beantwortet werden.
** Eintragen des certbot in einen Cronjob wie zB. in der Datei /etc/crontab <pre>05 05 * * * root certbot renew</pre>


Die folgenden Links zeigen auf die '''veraltelte Installation''' unter TomEE-7 oder Glassfish 4.1
* Datensicherung einrichten: <br>Die Datensicherung wird durch das Script so eingerichtet, das täglich in das Verzeichnis /sicherung gesichert wird. Diese Verzeichnis sollte nun auf eine externe Hardware regelmäßig mit einem sinnvollen Archivierungskonzept gesichert werden.
* [[Installation Glassfish Server|Installation Glassfish 4.1 - veraltet]]
* [[Installation TomEE Server|Installation TomEE 7 - veraltet]]
* [[Betreiben hinter einem Apache-Server]]


* Konfiguration von LeTTo : <br> Nun kann der Server über seine URL erreicht und konfiguriert werden.
= globale Konfiguration =
= globale Konfiguration =
Folgende Einstellungen sollte der [[Globaler Administrator|globale Administrator]] vornehmen:
Folgende Einstellungen sollte der [[Globaler Administrator|globale Administrator]] vornehmen:

Version vom 10. September 2021, 07:01 Uhr

Allgemeines

Der Letto-Server wurde in Java für JavaEE [1] Server entwickelt. Prinzipiell sollte Letto auf jedem JavaEE-Server unter Windows oder Linux lauffähig sein. Wir haben jedoch als Severumgebung nur Ubuntu-Server mit TomEE getestet und empfehlen deshalb auch diese Laufzeitumgebung.

Als Datenbank wird eine MySQL-Datenbank verwendet, welche idealerweise am gleichen Server wie der TomEE läuft. Es ist jedoch auch mögliche einen zentralen MySQL-Server zu verwenden welcher im LAN zur Verfügung steht.

Installation des Ubuntu Servers

Der Server kann entweder direkt auf einer PC-Hardware oder in einer virtuellen Umgebung installiert werden. Wir gehen hier nur auf die Direktinstallation ein, virtuelle Systeme sollten aber analog dazu installiert werden können.

Installation unter Ubuntu 18.04

  • Download von Ubuntu Server [2] und Erzeugung eines Boot Mediums [3] (zB. DVD)
  • Installation mit einem Benutzer letto
  • Bei der Installation nur den OpenSSH Server mit installieren
  • Der Server sollte über eine funktionierende Namensauflösung aus dem Internet erreichbar sein.
  • Eine gegebenenfalls vor dem Server sitzende Firewall sollte ins Internet mindestens folgende Ports freischalten:
    • Eingehend TCP: 22(ssh), 80(HTTP), 443(HTTPS)
    • Eingehend ICMP: echo(ping)
    • Ausgehend TCP: 22(ssh), 80(HTTP), 443(HTTPS)
    • Ausgehend UDP: 53(DNS)
    • Ausgehend ICMP: echo(ping)
    • Und natürlich alle Antworten auf ausgehende Anfragen
    • Falls eine Authentifizierung über LDAP gewünscht wird muss natürlich der LDAP oder AD-Server mit den notwendigen Ports erreichbar sein.
  • Konfiguration des Servers
    • Starten des Servers
    • Wechseln zu Benutzer root.
      sudo su
    • Wechsel in das Verzeichnis opt
      cd /opt
    • Download des Installationsscripts
      wget https://letto.at/download/letto/install-letto-ubuntu.sh
    • Script in einem Editor konfigurieren
      nano install-letto-ubuntu.sh
      • Setzen von DNS-Namen, Passwörtern, Email und Heap-Speicher
      • Die Definition "Config=0" auf "Config=1" ändern
      • Mit <Strg>-O und Enter das Script speichern
      • Mit <Strg>-X den Editor verlassen
    • Seten von Ausführungsrechten
      chmod 755 install-letto-ubuntu.sh
    • Script starten
      ./install-letto-ubuntu.sh
  • Zertifikat für den Server installieren:
    Bei der Standardeinstellung wurde noch das selbstsignierte Zertifikat vom Apache2 in der Datei /etc/apache2/sites-enabled/letto.conf eingebunden. Dieses Zertifikat kann nun durch ein eigenes gültiges Zertifikat für den Server-DNS-Namen ersetzt werden.
    Falls kein eigenes Zertifikat vorhanden ist, kann auch mit dem Certbot ein selbstzertifiziertes Zertifikat installiert werden. Hierzu kann wie folgt vorgegangen werden:
    • Starten des certbot als root-Benuter
      certbot --apache -d meinedomain.at
      • Hierbei müssen einige Fragen wie email etc. beantwortet werden.
    • Eintragen des certbot in einen Cronjob wie zB. in der Datei /etc/crontab
      05 05 * * * root certbot renew
  • Datensicherung einrichten:
    Die Datensicherung wird durch das Script so eingerichtet, das täglich in das Verzeichnis /sicherung gesichert wird. Diese Verzeichnis sollte nun auf eine externe Hardware regelmäßig mit einem sinnvollen Archivierungskonzept gesichert werden.
  • Konfiguration von LeTTo :
    Nun kann der Server über seine URL erreicht und konfiguriert werden.

Installation unter Ubuntu 20.04

  • Download von Ubuntu Server [4]und Erzeugung eines Boot Mediums [5] (zB. DVD)
  • Installation mit einem Benutzer letto
  • Bei der Installation nur den OpenSSH Server mit installieren
  • Der Server sollte über eine funktionierende Namensauflösung aus dem Internet erreichbar sein.
  • Eine gegebenenfalls vor dem Server sitzende Firewall sollte ins Internet mindestens folgende Ports freischalten:
    • Eingehend TCP: 22(ssh), 80(HTTP), 443(HTTPS)
    • Eingehend ICMP: echo(ping)
    • Ausgehend TCP: 22(ssh), 80(HTTP), 443(HTTPS)
    • Ausgehend UDP: 53(DNS)
    • Ausgehend ICMP: echo(ping)
    • Und natürlich alle Antworten auf ausgehende Anfragen
    • Falls eine Authentifizierung über LDAP gewünscht wird muss natürlich der LDAP oder AD-Server mit den notwendigen Ports erreichbar sein.
  • Konfiguration des Servers
    • Starten des Servers
    • Wechseln zu Benutzer root.
      sudo su
    • Wechsel in das Verzeichnis opt
      cd /opt
    • Download des Installationsscripts
      wget https://letto.at/download/letto/install-letto-ubuntu-20.04.sh
    • Script in einem Editor konfigurieren
      nano install-letto-ubuntu.sh
      • Setzen von DNS-Namen, Passwörtern, Email und Heap-Speicher
      • Die Definition "Config=0" auf "Config=1" ändern
      • Mit <Strg>-O und Enter das Script speichern
      • Mit <Strg>-X den Editor verlassen
    • Seten von Ausführungsrechten
      chmod 755 install-letto-ubuntu-20.04.sh
    • Script starten
      ./install-letto-ubuntu-20.04.sh
  • Zertifikat für den Server installieren:
    Bei der Standardeinstellung wurde noch das selbstsignierte Zertifikat vom Apache2 in der Datei /etc/apache2/sites-enabled/letto.conf eingebunden. Dieses Zertifikat kann nun durch ein eigenes gültiges Zertifikat für den Server-DNS-Namen ersetzt werden.
    Falls kein eigenes Zertifikat vorhanden ist, kann auch mit dem Certbot ein selbstzertifiziertes Zertifikat installiert werden. Hierzu kann wie folgt vorgegangen werden:
    • Starten des certbot als root-Benuter
      certbot --apache -d meinedomain.at
      • Hierbei müssen einige Fragen wie email etc. beantwortet werden.
    • Eintragen des certbot in einen Cronjob wie zB. in der Datei /etc/crontab
      05 05 * * * root certbot renew
  • Datensicherung einrichten:
    Die Datensicherung wird durch das Script so eingerichtet, das täglich in das Verzeichnis /sicherung gesichert wird. Diese Verzeichnis sollte nun auf eine externe Hardware regelmäßig mit einem sinnvollen Archivierungskonzept gesichert werden.
  • Konfiguration von LeTTo :
    Nun kann der Server über seine URL erreicht und konfiguriert werden.

globale Konfiguration

Folgende Einstellungen sollte der globale Administrator vornehmen:

Lizenz-Key einspielen

  • Der Lizenz-Key wird einfach in das Feld "Lizenz-Key" kopiert und mit "Lizenz übernehmen" bestätigt
  • Wird der Lizenz-Key korrekt angenommen, so ist letto danach einsatzbereit

Einspielen der Daten

Konfiguration der globalen Einstellungen

  • Im Dialog "Globale Konfiguration" müssen noch die Parameter für Server, AD-Login und Schule eingestellt werden.
  • Als globaler Administrator kann man mit dem Menüpunkt "AD-check" die Authentifikation an einem LDAP-Server oder an einem Active-Directory konfigurieren.

letzte wichtige Server-Konfigurationen

Folgende Konfigurationen sollten noch vorgenommmen werden, werden aber in diesem Wiki nicht explizit beschrieben, sondern sollten von einem Linux/Unix-Fachmann vorgenommen werden.

  • Letto beim Systemstart automatisch starten
  • Datensicherung einrichten
  • Firewall einrichten
  • Zertifikat für den Glassfish für https
  • Verlinkungen und Weiterleitungen auf den Server einrichten