====== Unattended Installation von ASV unter Debian, Ubuntu-Server ====== //Dokumentation geprüft//: Ubuntu 18.04 LTS ===== Grundsätzliches zur Installation unter Linux ===== Der ASV-Server sollte grundsätzlich auf einem Linux-Serversystem installiert werden. In der Regel wird zu diesem Zweck ein Linux-System mit minimaler Softwareausstattung gewählt um höchstmögliche Stabilität zu erwirken. Diese Serversysteme werden überwiegend über die Kommandozeile administriert. Sofern man sich von einem Linux-Desktopsystem (Ubuntu, Mint, etc) per ''ssh'' einloggt, kann sogar der graphische Installations- und Update-Vorgang von ASV ausgeführt werden. Die beschriebene Vorgehensweise kann bei Bedarf auch von einem Linux-Live-system ausgeführt werden. Von einem Windows PC aus funktioniert der ssh-Zugang mittels Putty auch. ===== Vorbereitung des Server-Betriebssystems ===== Debian oder Ubuntu-Server Grundinstallation ohne graphisches Desktopsystem mit Internetzugang, statischer IP-Adresse oder zumindest festem Namen im lokalen Netzwerk. ===== Installation ===== Vor der Installation des ASV-Servers muss [[alle:technik:install:postgres:linux:start|PostgreSQL Server installiert]] werden. Folgende Dateien müssen auf den Server übertragen werden: * 2.X.XXX_XXX_XX_by-installer.zip * ssl_Z_KM2018_1234.p12 Es wird empfohlen, als Installationsordner ''/opt/asv'' zu verwenden. Es kann aber auch ein anderer Ordner gewählt werden. Dabei ist zu beachten, dass keine Leerzeichen, Umlaute oder Sonderzeichen im Pfad verwendet werden. sudo adduser asvdss sudo mkdir /opt/asv sudo chown asvdss:asvdss /opt/asv Evtl. muss das Paket für ''unzip'' erst installiert werden: apt-get install zip Die weiteren Schritte als Benutzer ''asvdss'' durchführen: sudo su --login asvdss cd /opt/asv mkdir server mkdir installer_2.X.XXX cd installer_2.X.XXX **__ACHTUNG: Das gezippte Installationsfile 2.X.XXX_XXX_XX_by-installer.zip bzw. das Installationsverzeichnis müssen nun im Verzeichnis installer_2.X.XXX liegen!__** unzip 2.X.XXX_XXX_XX_by-installer.zip cd install chmod u+x *.sh Die folgende Datei mit dem Namen "auto-install.xml" muss ebenfalls im Ordner ''installer_2.X.XXX/install'' abgelegt und angepasst werden. Folgendes ist unbedingt in diesem XML-File zu prüfen und ggf. anzupassen (insbesondere die postgres-Konfigurationswerte und - bei Bedarf - die Zertifikatsdaten): * Variable installPath : Der absolute Pfad des Installationsverzeichnisses des DSS, hier /opt/asv/server * Variable clientCertificateKeyStore : Der relative oder absolute Pfad zur Zertifikatsdatei .p12 mit dem Namen der Zertifkatsdatei * Variable clientCertificatePassword : Das Passwort zum zugehörigen Zertifikat .p12 * Variable postgreHost : Host der Postgresdatenbank, hier localhost * Variable postgrePort : Die Portnummer der Postgresdatenbank * Variable postgreUsername : Der Benutzer Postgres, hier postgres (default) * Variable postgrePassword : Das Passwort des Postgresusers * Variable postgreDatabase : Die Datenbank, hier postgres * Variabel postgreSchema : Das Schema, hier asv * Variable postgreSchemaPwd : Das Passwort für das Schema * Variable postgreDBName : Der Datenbankname, hier asv **Sollten Sie eine unattended Erstinstallation des ASV Servers mit einer integrierten H2-Datenbank vornehmen wollen, so ändern Sie einfach die Eintragung useH2 von false auf true im TargetPanel der auto-install.xml-Datei. Die restlichen Zeilen müssen bestehen bleiben, wobei die Eintragungen für die Postgres-Datenbank vorhanden sein sollen aber für die Installation irrelevant sind.** //HierStehtDerRelativeOderAbsolutePfadZurZertifikatsdateit/ssl_Z_KM20XX_asv.zauner.p12// //HierStehtDasZertifikatpasswort// localhost 5432 postgres geheimesPOSTGRESpasswort postgres asv geheimesASVpasswort asv __ACHTUNG HINWEIS:__ Der einfachste Weg, ein erstes Skript zu generieren, besteht darin, eine Installation durchzuführen und am Ende des Prozesses das automatisch generierte XML-File (siehe oben) zu speichern: {{alle:technik:installation:unattendedinstall.jpg?nolink|}} Anschließend können die Einstellungen für Installationspfad, Port oder IP-Adresse angepasst werden. Ausführen der Installation des ASV-Servers und Kontrolle der Protokolldatei: ./install-unattended.sh >install.log 2>&1 less install.log Legen Sie die folgende Datei im Ordner ''/opt/asv'' ab. heute=`date +%Y%m%d_%T` cd /opt/asv/server/bin mkdir -p ../logs if test -d ../logs/old then mv ../logs/nohup.*.out ../logs/old fi nohup ./dssctl start >../logs/nohup.$heute.out 2>&1 & Die Datei ausführbar machen und testweise ausführen. chmod u+x cron_start.sh ./cron_start.sh less logs/nohup.*.out less logs/asv.log Beendet werden die Dienste mit: cd /opt/asv/server/bin ./dssctl stop --user sys --password '!!ASV!!' --time 0 Zur Konfiguration eines robusten Starts des Servers wird im Ordner ''configuration'' folgende Datei angelegt oder ergänzt: #Diese Datei sollte mit einer Leerzeile beginnen #Anpassung der Konfiguration #Falls die Datenbank noch nicht erreichbar ist, soll es verzögert mehrmals versucht werden. DB_ConnectionTrials=4 DB_ConnectionWaitingTime=15 Ziel ist es, dass bei einem Start des Linux-Servers die Dienste DSS und Updateservice automatisch gestartet werden. Dazu muss die Datei crontab bearbeitet werden. Es wurde dazu eingefügt, dass nach dem Ladevorgang des Betriebssystems 120 Sekunden gewartet wird, ehe die Dienste vom System automatisch gestartet werden. Die Dauer von 120 Sekunden "Wartezeit" ergibt sich aus dem Bootvorgang einer virtuellen Linuxmaschine. Ggf. muss diese Zeit noch angepasst werden, weil evtl. noch nicht alle Systemprogramme und -dienste zur Verfügung stehen. Hier muss man also an der Stellschraube etwas drehen. Dazu in der crontab (immer noch als user asvdss) zum Start der Dienste folgende Zeile eintragen (''crontab -e''): @reboot sleep 120 && /opt/asv/cron_start.sh Den Server neu starten. reboot now