1. Systemvoraussetzungen

1.1. Java

Der FVA Simulation Hub 1.0.0-SNAPSHOT setzt zur Ausführung Java in der Version 17 voraus.

1.2. FVA-Workbench

Die Ausführung von Aufgaben setzt die FVA-Workbench voraus. Folgende Versionen werden unterstützt:

  • 7.1.0

  • 7.1.1

1.3. FVA-Lizenzserver

Der FVA Simulation Hub muss mit Floating-Lizenzen betrieben werden. Dazu ist der Einsatz des FVA-Lizenzservers erforderlich.

2. Ausführung der Anwendung

2.1. Windows

Erstellen Sie das Installationsverzeichnis

$ cd [PATH_TO_APPS]
$ mkdir FVA-Simulation-Hub

Entpacken Sie innerhalb des erstellten Verzeichnisses das Installationsarchiv

$ cd FVA-Simulation-Hub
$ "C:\Program Files\7-Zip\7z.exe" e -spf [PATH_TO]\FVA_Simulation_Hub_v[VERSION].zip

(Optional) Editieren Sie die Datei bin/run.conf.bat.example und benennen Sie sie um zu bin/run.conf.bat um Java-Umgebungsvariablen zusetzen.

Editieren Sie die Datei config/application.yml.example und benennen Sie sie um zu config/application.yml um Konfigurationsparameter der Anwendung zu setzen.

Wechseln Sie in das Installationsverzeichnis und starten Sie die Anwendung

$ cd [PATH_TO_APPS]/FVA-Simulation-Hub
$ bin/run.cmd
Der hier beschriebene Start der Anwendung sollte nur für Testzwecke verwednet werden. Für den produktiven Betrieb sollte die Anwendung als Dienst betrieben werden.

Die Anwendung startet standardmäßig unter dem Port 8080.

Nach dem Start können Sie die erfolgreiche Ausführung im Browser testen. Klicken Sie dazu den folgenden Link: http://localhost:8080/

Verwenden Sie zum Beenden der Anwendung von der Kommandozeile aus die Tastenkombination [STRG]+[C]. Dadurch ermöglichen Sie der Anwendung ein "sanftes" Beenden mit dem automatischen Herunterfahren aller gestarteten FVA-Workbench-Instanzen.

2.2. Linux

Für die Installation und die Ausführung von FVA-Workbench-Instanzen ist Windows als Betriebssystem erforderlich. Eine Installation unter Linux ist nur bei Load Balancing möglich.

Erstellen Sie das Installationsverzeichnis

$ cd [PATH_TO_APPS]
$ mkdir fva-simulation-hub

Entpacken Sie innerhalb des erstellten Verzeichnisses das Installationsarchiv

$ cd fva-simulation-hub
$ tar -zxf [PATH_TO]/FVA_Simulation_Hub_v[VERSION].tar.gz

(Optional) Editieren Sie die Datei bin/run.conf.example und benennen Sie sie um zu bin/run.conf um Java-Umgebungsvariablen zusetzen.

Editieren Sie die Datei config/application.yml.example und benennen Sie sie um zu config/application.yml um Konfigurationsparameter der Anwendung zu setzen.

Wechseln Sie in das Installationsverzeichnis und starten Sie die Anwendung

$ cd [PATH_TO_APPS]/fva-simulation-hub
$ bash bin/run.sh
Der hier beschriebene Start der Anwendung sollte nur für Testzwecke verwednet werden. Für den produktiven Betrieb sollte die Anwendung als Dienst betrieben werden.

Die Anwendung startet standardmäßig unter dem Port 8080.

Nach dem Start können Sie die erfolgreiche Ausführung im Browser testen. Klicken Sie dazu den folgenden Link: http://localhost:8080/

3. Ausführung als Dienst

3.1. Windows (NSSM)

Die Installation nach dieser setzt Anleitung die Anwendung NSSM (https://nssm.cc/) voraus.

Service konfigurieren und starten

$ nssm.exe install <servicename> [PATH_TO_APPS]\FVA-Simulation-Hub\bin\run.cmd
$ nssm.exe set <servicename> AppDirectory [PATH_TO_APPS]\FVA-Simulation-Hub
$ nssm.exe start <servicename>

Service überwachen

Status prüfen

$ nssm.exe status <servicename>

Log-Dateien schreiben

$ nssm.exe start <servicename>
$ nssm.exe set <servicename> AppStdout [PATH_TO_APPS]\FVA-Simulation-Hub\logs\service.log
$ nssm.exe set <servicename> AppStderr [PATH_TO_APPS]\FVA-Simulation-Hub\logs\service-error.log

Service stoppen und entfernen

$ nssm.exe stop <servicename>
$ nssm.exe remove <servicename> confirm

3.2. Windows (Windows Service Wrapper)

Die Installation nach dieser Anleitung setzt das .NET Framework 2.0 oder 4.0 voraus.

Service konfigurieren und starten

$ cd [PATH_TO_APPS]\FVA-Simulation-Hub\bin\windows-service
$ move service.xml.example service.xml
$ notepad service.xml
    # Setzen Sie einen JMX port
    # Setzen Sie den Pfad zur Java-EXE

$ service.exe install
$ service.exe start

Service überwachen

Status prüfen

$ cd [PATH_TO_APPS]\FVA-Simulation-Hub\bin\windows-service
$ service.exe status

Service stoppen und entfernen

$ cd [PATH_TO_APPS]\FVA-Simulation-Hub\bin\windows-service
$ service.exe stop
$ service.exe uninstall

3.3. Linux (systemd)

Service konfigurieren und starten

Navigieren Sie zum Installationsverzeichnis

$ cd [PATH_TO_APPS]/fva-simulation-hub

Vergeben Sie ausführende Berechtigung für das Start-Script

$ chmod +x bin/run.sh

Erstellen und starten Sie den Service

$ cp [PATH_TO_APPS]/fva-simulation-hub/bin/systemd/fva-simulation-hub.service /etc/systemd/system/
$ nano /etc/systemd/system/fva-simulation-hub.service
    # 'WorkingDirectory' -> Setzen Sie hier das Installationsverzeichnis
    # 'ExecStart' -> Setzen Sie hier den vollständigen Pfad zur run.sh
    # 'SyslogIdentifier' -> Setzen Sie hier eine ID für das System-Log

$ systemctl daemon-reload
$ systemctl enable fva-simulation-hub
$ systemctl start fva-simulation-hub

Service überwachen

Status prüfen

$ systemctl status fva-simulation-hub
$ journalctl -u fva-simulation-hub -b

Service stoppen und entfernen

$ systemctl stop fva-simulation-hub.service
$ systemctl disable fva-simulation-hub.service
$ rm /etc/systemd/system/fva-simulation-hub.service
$ systemctl daemon-reload
$ systemctl reset-failed

4. Reverse Proxy

In diesem Abschnitt wird die Einrichtung eines Reverse Proxy unter Linux beschrieben. Die aufgeführten Einstellungen können aber auch alle unter Windows verwendet werden.

4.1. Nginx

Voraussetzungen

Es wird angenommen, dass Zertifikatsdatein bereits unter den folgenden Pfaden zur Verfügung stehen:

/etc/pki/tls/certs/[DOMAIN]/cert.pem
/etc/pki/tls/certs/[DOMAIN]/fullchain.pem
/etc/pki/tls/certs/[DOMAIN]/privkey.pem

NginX installieren

Falls noch nicht vorhanden, kann Nginx mit dem folgenden Kommando installiert werden:

$ yum install nginx

Konfiguration erstellen

Erstellen Sie die Datei /etc/nginx/conf.d/[SUBDOMAIN].conf mit dem folgenden Inhalt:

server {
    listen 80;
    listen [::]:80;

    server_name [SUBDOMAIN].[DOMAIN];
    # example: server_name my-app.example.com;

    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    listen [::]:443 ssl;

    server_name [SUBDOMAIN].[DOMAIN];
    # example: server_name my-app.example.com;

    ssl_certificate /etc/pki/tls/certs/[DOMAIN]/fullchain.pem;
    # example: ssl_certificate /etc/pki/tls/certs/example.com/fullchain.pem;
    ssl_certificate_key /etc/pki/tls/certs/[DOMAIN]/privkey.pem;
    # example: ssl_certificate_key /etc/pki/tls/certs/example.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:[APP_PORT];
        # example: proxy_pass http://127.0.0.1:8080;

        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $http_host;
    }
}

Stellen Sie sicher, dass Sie alle der folgenden Platzhalter ersetzt haben:

  • [DOMAIN]

  • [SUBDOMAIN]

  • [APP_PORT]

Konfiguration testen

Testen Sie die Konfiguration mit dem folgenden Kommando:

$ nginx -t

NginX neustarten

Mit dem folgenden Kommando können Sie Nginx neustarten und die Anpasungen werden aktiv:

$ systemctl restart nginx

4.2. Apache

Voraussetzungen

Es wird angenommen, dass Zertifikatsdatein bereits unter den folgenden Pfaden zur Verfügung stehen:

/etc/letsencrypt/live/[SUBDOMAIN].[DOMAIN]/cert.pem
/etc/letsencrypt/live/[SUBDOMAIN].[DOMAIN]/chain.pem
/etc/letsencrypt/live/[SUBDOMAIN].[DOMAIN]/fullchain.pem
/etc/letsencrypt/live/[SUBDOMAIN].[DOMAIN]/privkey.pem

Apache installieren

Falls noch nicht vorhanden, kann Apache mit dem folgenden Kommandos installiert werden:

$ sudo apt-get install apache2
$ sudo a2enmod proxy_http
$ sudo a2enmod proxy_ajp
$ sudo a2enmod ssl
$ sudo service apache2 restart

Konfiguration erstellen

Erstellen Sie die Datei /etc/apache2/sites-available/[SUBDOMAIN].conf mit dem folgenden Inhalt:

<VirtualHost *:80>
    ServerName [SUBDOMAIN].[DOMAIN]
    # example: ServerName my-app.example.com
    ServerAdmin webmaster@localhost

    Redirect / https://[SUBDOMAIN].[DOMAIN]
    # example: Redirect / https://my-app.example.com

    ErrorLog /var/log/apache2/error.log
    LogLevel warn
    CustomLog /var/log/apache2/access.log combined
    ServerSignature On
</VirtualHost>

Erstellen Sie die Datei /etc/apache2/sites-available/[SUBDOMAIN]-ssl.conf mit dem folgenden Inhalt:

<IfModule mod_ssl.c>
    <VirtualHost *:443>
        ServerName [SUBDOMAIN].[DOMAIN]
        # example: ServerName my-app.example.com
        ServerAdmin webmaster@localhost

        ProxyRequests     Off
        ProxyPreserveHost On

        <Proxy *>
            Require all granted
        </Proxy>

        ProxyPass / http://localhost:[APP_PORT]/
        <Location />
            ProxyPassReverse /
        </Location>

        ErrorLog /var/log/apache2/error.log
        LogLevel warn
        CustomLog /var/log/apache2/access.log combined

        SSLCertificateFile /etc/letsencrypt/live/[SUBDOMAIN].[DOMAIN]/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/[SUBDOMAIN].[DOMAIN]/privkey.pem
        Include /etc/letsencrypt/options-ssl-apache.conf
    </VirtualHost>
</IfModule>

Stellen Sie sicher, dass Sie alle der folgenden Platzhalter ersetzt haben:

  • [DOMAIN]

  • [SUBDOMAIN]

  • [APP_PORT]

Konfiguration aktivieren

Führen Sie die folgenden Kommandos aus, um die Konfiguration zu aktivieren:

$ sudo a2ensite [SUBDOMAIN].conf
$ sudo a2dissite 000-default
$ sudo a2ensite [SUBDOMAIN]-ssl.conf
$ sudo service apache2 reload

Hin und wieder ist zudem ein Neustart erforderlich:

$ sudo service apache2 restart