Über Cloud-Init installieren

Über Cloud-Init kann ein vorkonfigurierter TopLogic-Server für reines in-app Development bei einem beliebigen Cloud-Anbieter aufgesetzt werden. Hierfür wählt man ein Server-Template mit Ubuntu-Betriebsystem entsprechend den Systemvoraussetzungen und gibt der Installation das folgende Cloud-Init-Script mit:

#cloud-config

apt:
  primary:
    - arches: [default]
      uri: "mirror://mirrors.ubuntu.com/mirrors.txt"
  sources:
    toplogic.list:
      source: "deb https://dev.top-logic.com/nexus/repository/toplogic-deb/ toplogic main"
      keyid: 955A22FF7750F043EA48E580B44EB751B8A3726C
      filename: toplogic.list

packages:
  - fail2ban
  - ufw
  - tomcat9
  - apache2
  - certbot
  - python3-certbot-apache
  - prometheus
  - curl
  - msmtp
  - mailutils
  - mariadb-server
  - mariadb-client
  - libmariadb-java
  - apg
  - net-tools
  - tl-process

package_update: true
package_upgrade: false

runcmd:
  - update-alternatives --set ip6tables /usr/sbin/ip6tables-nft
  - printf "[sshd]\nenabled = true\nbanaction = iptables-multiport" > /etc/fail2ban/jail.local
  - systemctl enable fail2ban
  - ufw allow OpenSSH
  - ufw allow https
  - ufw allow http
  - ufw enable
  - sed -i -e '/^PasswordAuthentication/s/^.*$/PasswordAuthentication no/' /etc/ssh/sshd_config
  - sed -i -e '/^ServerTokens/s/^.*$/ServerTokens Prod/' /etc/apache2/conf-enabled/security.conf
  - sed -i -e '/^ServerSignature/s/^.*$/ServerSignature Off/' /etc/apache2/conf-enabled/security.conf
  - reboot

Das so eingerichtete System verwendet Tomcat 9 als Anwendungscontainer, MariaDB als Datenbank und einen Apache-Webserver als Proxy. Nach der Installation ist das System direkt an Port 80 (HTTP) erreichbar.

Ein Domain-Name für den Rechner und ein passendes Zertifikat für HTTPS muss gegebenfalls noch separat eingerichtet werden und ist für die sichere Kommunikation mit der Cloud-Instanz dringend empfohlen. Über CertBot ist dies kostenlos und unkompliziert möglich.

Log-in in die Anwendung

Nach erfolgreicher Installation ist ein Log-in in die TopLogic-Weboberfläche über http://<ip-adresse-der-cloud-instanz>/ möglich. Es wurde automatisch ein sicheres Initial-Passwort vergeben und am Ende des Startvorgangs in das Anwendungslog geschrieben. Es kann mit dem folgenden Befehl nachgeschlagen werden (bis Version 7.6.0 war das Initial-Passwort fix vorgegeben als root1234). Hierfür ist ein Login in den augesetzten Container notwendig. Dieser kann i.d.R. über die Weboberfläche des Cloud-Anbieters erfolgen:

grep -n3 " Initial password " /var/log/tomcat9/catalina.out

Die Ausgabe könnte wie folgt aussehen:

966-[2023-10-25 13:58:47] [info] *****************************************************
967-[2023-10-25 13:58:47] [info] ***                                               ***
968:[2023-10-25 13:58:47] [info] ***  Initial password for 'root': 702d104d-4f...  ***
969-[2023-10-25 13:58:47] [info] ***                                               ***
970-[2023-10-25 13:58:47] [info] *****************************************************

An dieser Stelle kann jetzt mit dem TopLogic-Tutorial begonnen werden.

Update der Installation

Eine Aktualisierung der TopLogic-Version ist über Apt möglich. Dafür muss man sich in den Server (z.B. per SSH) einloggen und dann die folgenden Befehle eingeben:

sudo apt-get update
sudo apt-get upgrade