Ubuntu 16.4: Tägliches Restarten von Tomcat

Aktuell zickt eine Applikation auf dem Tomcat. Bis das Problem behoben ist, muss ich den Tomcat täglich restarten. Das soll jede Nacht um Mitternacht passieren:

Subversion neues Projekt anlegen

Ich betreibe einen Subversion-Server. Meine Projekte liegen alle unter dem SVN-Home Verzeichnis

Hin und wieder kommt es vor, dass darauf ein neues Projekt angelegt werden muss.

  1. Projekt-Vezeichnis erstellen
  2. SVN-Projekt anlegen
  3. Berechtigungen korrekt setzen
  4. SVN-Verzeichnisse tag, branches und trunk erstellen.
    Dazu Checke ich das Projekt aus und erstelle anschliessend die Verzeichnisse in der „Working Copy“
  5. Nun die Verzeichnisse einchecken

Und „schon“ kann man loslegen mit dem schönen neuen SVN-Projekt 🙂

Subversion auf Ubuntu 16.04 installieren/migrieren

Dieser Beitrag dient mir um meine durchgeführten Schritte später nachvollziehen zu können.

Ich installiere einen Subversion-Server und migriere meine alten Repositories aus Subversion Version 1.6 nach Version 1.9.

Subversion und Apache installieren

Subversion-Gruppe erstellen

Eigener User sowie Apache User der Subversion-Gruppe hinzufügen

Anschliessend aus- und wieder einloggen. Erst dann werden die Änderungen aktiv.

Nun das SVN-Home und Projekt-Verzeichnis anlegen

Nun das Subversion-Repository für das Projekt erstellen

Berechtigungen setzen

WebDAV für Subversion konfigurieren

Config-File /etc/apache2/mods-available/dav_svn.conf anpassen

Apache restarten

User-File für Zugang auf WebDAV erstellen
die -c Option nur beim erstellen verwenden. Bei Modifikationen eines bestehenden Files den Befehl ohne -c ausführen.

Jetzt kann das vorhin erstellte Projekt über WebDAV ausgecheckt werden. Versuchen wir’s:

Migrieren der Repositories des alten Servers in den neuen Server

Dazu exportieren ich das alte Repository in ein Dump-File:

Es besteht nun auch die Möglichkeit aus diesem Dump-File spezielle Verzeichnisse weiter zu exportieren:

Nun kann das Dump-File auf dem neuen Server importiert werden

Achtung: Wenn man ein Subfolder importiert, müssen die Parent-Folder exsistieren, sonst gibts einen Fehler „svnadmin: E160013: Datei nicht gefunden: »/trunk/myproject«
In diesem Falle muss also noch „trunk“ als Folder im neuen „myproject“ erstellt werden.

svndumpfilter3

Es kann vorkommen, dass das extrahieren von tags mit dem Fehler „svndumpfilter: Ungültiger Quellpfad einer Kopie“ fehlschlägt. Das kann offenbar auftreten, wenn man Files/Order im Repository kopiert/verschoben hat. Selbstverständlich habe ich das 🙂
Die Lösung bietet eine Erweiterung von svndumpfilter, svndumpfilter3. Gefunden hier. Dieses Phyton-Script herunterladen und folgendermassen starten:

Die –untangle Option zeigt auf das lokale SVN-Repository Root. Svndumpfliter3 benutzt dieses Repository um die Probleme auzulösen bzw. zu convertieren.

Reverse Proxy

Meinen Subversion-Server betreibe ich hinter einem Apache2 Reverse Proxy. Damit dies auch sauber funktioniert muss der redirect auf dem ReverseProxy angepasst werden. Anosten kann es zu 405-Fehlern kommen „Method not allowed“. Dazu definiere ich im VirtualHost folgende Location:

Referenzen

Nextcloud Sync mit Ftp-Server

Hier habe ich beschrieben, wie man auf Nextcloud einen FTP-Server als externen Speicher konfigurieren kann. Mit einem kleinen Hack ist es damit möglich Files von einem FTP-Server auf Nextcloud zu „pushen“. Wirklich funktioniert hat das bei mir nicht zufriedenstellend. – Das wird so von Nextcloud/Owncloud auch nicht offiziell supported. Zeit für einen zweiten Anlauf.

Der Use-Case ist immer noch derselbe:

  • Mein Drucker kann auf einen FTP-Server scannen, nicht aber in ein Webdav Verzeichnis
  • Ich möchte die gescannten Dokumente aber direkt in Nextcloud haben und mich nicht noch zusätzlich mühsam auf den FTP-Server connecten um die Dokumente abzuholen.

Statt den FTP Server als externer Speicher hinzuzufügen, mounte ich nun auf dem FTP-Server das Nextcloud-Verzeichnis mittels davfs2.

Dazu richte ich auf Nextcloud einen speziellen User ein, der nur für das Scanning verwendet wird. Dieser User teilt dann das Scan-Verzeichnis mit anderen Nextcloud-Usern.

davfs2 installieren

Nextcloud Webdav als root mounten

Der mount kann folgendermassen durchgeführt werden:

Damit dies automatisch beim Systemstart passiert, trage ich dies in /etc/fstab ein. Bitte beachten, dass ich zusätzlich die Option „noauto“ hinzufüge. Ein direktes mounten beim booten (auto) schlägt fehl, weil das Netzwerk zu diesem Zeitpunkt noch nicht aufgebaut ist. Das automatische mounten kommt später.

Nun wird jeweils noch der Webdav-User inkl. Passwort abgefragt. Diese Infos kann man im file /etc/davfs2/secrets hinterlegen:

Nun sollte ein mount automatisch funktionierten:

Der Trick liegt nun dabei, dass das der FTP-Server in das Verzeichnis nextcloudScan schreibt. Meinen FTP Drucker konfiguriere ich entsprechend. Damit schreibt der Drucker direkt nach nextcloud.

Automatisch beim booten mounten

Das file /etc/rc.local wird nach dem booten ausgeführt. Hier hinterlege ich nun noch meinen mount-Befehl:

…Voilà, jetzt werden alle Einträge in der fstab gemounted.

Das lokale FTP-Verzeichnis mit rsync nach nextcloud synchen

Ansonsten könnte man auch das FTP-Verzeichnis mit rsync synchronisieren. Das ist aber mit obiger Lösung so nicht mehr nötig.

Referenzen

FTP Server auf Ubuntu 16.04.1 (vsftpd)

Installation

Das standard-Directory ist /srv/ftp, welches für den User ftp bei der Installation eingerichtet wird.

Konfiguration

In File /etc/vsftpd.conf folgendes Konfig anpassen (reboot nicht vergessen):

Grundsätzlich erlaubt vsftpd allen Systemusern den Zugriff über FTP. Nun soll aber nicht allen Systemusern der Zugriff erlaubt werden. Dafür modifizieren wird das file /etc/vsftpd.chroot_list. Die in diesem File enthaltenen User können  zugreifen:

User erstellen

Einen User erstellen, der auf FTP Zugriff erhalten soll

Verschlüsselung

Ich erstelle die Möglichkeit über FTPS zu kommunizieren. Dazu in /etc/vsftpd.conf folgende Zeilen erfassen:

Mit Filezilla verbinden

Referenzen

Update ESXi Patch-Bundle

  1. ESXi 5.5 in Maintenance-Mode wechseln / alle VMs stoppen
  2. Upload ESXi Patch-File auf ESXi host (zip)
  3. Schauen, welche Profile im Zip-File vorhanden sind:

    Resultat

    „no-tools“ ist das Profile ohne die VmWare-Tools, „standard“ ist das Update mit allem drum und dran. Es kann auch sein, dass ein Profilname mit „s“ endet (z.B. ESXi-5.5.0-20151004001s-standard). Dieser Patch würde dann nur die Security-Updates beinhalten.
  4. Jetzt kann das Upate durchgeführt werden
  5.  Jetzt den ESXi-Host durchstarten.
  6. Wichtig: Beim esxcli-Befehl die update Option, NICHT die install-Option verwenden. Die Update-Option esetzt die bereits vorhandenen Pakete auf dem ESXi-Host mit neuen Versionen aus dem Bundle. Vorhandene Pakete auf dem ESXi-Host, welche nicht im Bundle vorhanden sind werden nicht gelöscht.
    Die Install-Option würde Pakete, des ESXi-Hosts, welche nicht im Bundle vorhanden sind, löschen (komplette „reinstallation“).

Referenzen:

ESXi Embedded Host-Client

VmWare Host-Client, der den mittlerweile ziemlich veralteten vSphere Client ablösen soll:

https://labs.vmware.com/flings/esxi-embedded-host-client

Einmal auf dem ESXi-Host installiert kann man den HTML5 Host-Client über https://<host:port>/ui/ abrufen.

Einzelne VMs kann man z.B. über vmrc://192.168.2.30/?moid=41 aufrufen. Dazu muss natürlich auch erst „VmWare Remote Client“ vmrc auf den lokalen System installiert werden.

Leider funktioniert bei mir der Embedded Host-Client bzw. der HTML5-Client im zusammenspiel mit meinem ESXi 5.5 Host nicht wirklich. Der Host und die VMs können toll eingesehen werden. Aktionen wie Herunterfahren, etc. können aber nicht durchgeführt werden. Geschweige denn kann eine Konsole zu den VMs geöffnet werden.

Fazit: Aktuell bleibt einem ESXi (free) User immer noch nichts anderes übrig als den alten verstaubten vSphere Client zu benutzen.,..

 

Let’s encrypt

letsencrypt ist eine Zertifizierungsstelle, welche es erlaubt Zertifikate vollautomatisch und GRATIS zu generieren. Damit entfällt endlich die müsahme manuelle Erstellung von Zertifikaten. Und so geht es:

Ich installiere letsencrypt auf einem Ubuntu 16.04 System mit installiertem Apache:

  1. Letsencrypt installieren
  2. Zertifikat generieren
    Ich generiere das Zertifikat mit „certonly“. Damit modifiziert mir letsencrypt nicht das Apache-Config File. Dieses möchte ich selber modifizieren… Für jede Domain kann dieser Befehl wiederholt werden:

    Und voilà:
  3. Das Script erstellt vollautomatisch die benötigten Zertifikate und legt diese ab unter

    Das Zertifikat kann nun am conf-File des Apachen eingetragen werden

Renewal

Letsencrypt stellt Zertifikate aus, welche 90 Tage gültig sind. Es wird empfohlen, dass alle 60 Tage ein renewal durchgeführt wird. Dies kann am einfachsten über einen cron-job erledigt werden, der monatlich ausgeführt wird:

Sonos: Gut zu wissen

Hints, Tips und Tricks rund um Sonos

Mein Sonos System umfasst insgesamt 7 Player (1 Sonos Soundbar und 6 Sonos Play:1). Sonos erstellt und unterhält sein eigenes Netz (Sonos-Net) selber. Grundsätzlich funktioniert das „out of the box“. Es kann aber doch manchmal nötig sein das Sonos-Net zu optimieren. Dazu anbei ein paar nützliche Infos:

Tools

Auf jeder Sonos-Box läuft ein Webserver, den man über den Browser ansprechen kann. Dabei können einige nützliche Infos eingesehen oder aber auch Einstellungen vorgenommen werden:

http://IP:1400/support/review Übersicht über die Sonos Box. Hier kann auch die Network-Matrix aufgerufen werden
http://IP:1400/advconfig.htm Einstellen der Root-Bridge (FirstZP und Priority auf „enabled“).
http://IP:1400/reboot Reboot der Sonos Box
http://IP:1400/region.htm WLAN Region sezten  (bei uns EU – Europa)
http://IP:1400/tools.htm Netzwerktools wie Ping, Traceroute, nslookup
http://IP:1400/status Status-Seite
http://IP:1400/wifictrl?wifi=off Stellt das WIFI bis zum nächsten Reboot ab
http://IP:1400/wifictrl?wifi=persist-off Stellt das WIFI Interface komplett ab. Wenn man nur über Kabel arbeiten möchte
http://IP:1400/status/scanresults Scanresults zeigt euch alle WLAN-Verbindungen an, welche von Sonos erreicht wurden. Kann je nachdem noch nützlich sein, für Android Smartphones gibt es da noch bessere Apps
http://<IP SONOS DEVICE>:1400/status/tracks_summary Mit diesem Befehl kannst Du dir die Anzahl der Tracks anzeigen lassen

Nützliche Links: