Mit rsync automatisches Backup auf ein NAS Speicher

Im folgenden erkläre ich wie man seine lokalen Ordner mit einem einfachen Script mittels rsync auf ein NAS sichern kann. Zudem wird das Script nur ausgeführt wenn ich mich im richten WLAN befinde.

Zuerst benötigt man dafür auf dem NAS so genannte “Module” für Rsync. Das sind freigegebene Ordner. Diese kann man sich mit ssh unter /etc/rsyncd.conf anschauen oder bei qnap unter Privilegieneinstellungen >> Freigabe-Ordner (shared folders). Das editieren der rsyncd.conf ist nicht zu empfehlen, da diese z.B. bei der Vergabe eines neuen Passworts für rsync automatisch zurückgesetzt wird bzw. durch Firmware updates auf den meisten NAS Speichern verändert werden könnte.

Bei Qnap könnt ihr Rsync unter der App “Sicherungsstrategien” oder “Hybrid Backup – Sync beta” aktivieren. Dort wird auch das Passwort vergeben. Alternativ kann auch ein SSH User verwendet werden, jedoch ist bei Qnap das nur mit dem Admin User möglich. Ansonsten muss bei Qnap ein anderer SSH Server installiert werden.

Aber nun zum eigentlichen rsync aufruf. Zum Testen könnt ihr folgendes verwenden: Continue reading “Mit rsync automatisches Backup auf ein NAS Speicher”

Jenkins Pipeline

Die neue Pipeline Funktion von Jenkins kann mit Jenkins 1.x und 2.x verwendet werden. Bei Jenkins 2.x gibt es aber auch noch ein Plugin um die einzelnen Stages in einer View zu visualisieren.

Für die Pipeline gibt es auch einen Snippet Generator unter http://localhost:8080/jenkins/job/Pipelinetest/pipeline-syntax/.

Mit dessen Hilfe kann man für die meisten Anwendungsfälle Snippets generieren und diese dann nach den eigenen Anforderungen anpassen.

Der Beispiel Code für einen Github checkout und Maven aufruf sieht dabei wie folgt aus:

Dabei sieht man auch die Änderungen bei Jenkins 2, das Thirdparty Komponenten wie Maven über Variablen und nicht mehr über Pfad Angaben in der Konfiguration gemanagt werden. Die „stage“ aufrufe bilden dabei die einzelnen Schritte welche auch in der Stage View sichtbar sind.

Slim und Ionic und CORS

Wer sich mit Slim und Ionic ein kleine App und Rest Api bauen möchte, kann schnell mit dem Thema CORS in Kontakt kommen. Besonders beim testen auf der lokalen Maschine.

Damit es auch lokal funktioniert. Müssen die folgenden Zeilen am Anfang der index.php hinzugefügt werden (am besten ganz oben):

Dabei kann man natürlich auch die Freigabe auf bestimmte Domains einschränken. Falls man diese drei Zeilen jedoch nicht hinzufügt, erhält man bei einem http.get(…) die folgende Fehlermeldung:

Installation Jenkins 2.x mit Tomcat

Im folgenden Beitrag beschreibe ich die Installation eines Jenkins 2.x in einem Tomcat8. Es ist auch möglich den Jenkins ohne Tomcat laufen zu lassen.

Schritt 1

Installation Tomcat8 unter Linux mit

alternativ kann auch die aktuelle Version unter https://tomcat.apache.org/download-80.cgi heruntergeladen werden und entpackt werden. Dieses Vorgehen ist für Windows zu empfehlen.

Unter Linux ist der Tomcat nach der Installation unter /var/lib/tomcat8/ zu finden.

tomcat8

Schritt 2

Damit Jenkins im Tomcat richtig starten kann, muss JENKINS_HOME im Tomcat Environment gesetzt werden. Alternativ kann JENKINS_HOME auch als Umgebungsvariable gesetzt werden, was aber das betreiben mehrerer Jenkinses auf einem Server verhindert.

Der folgende Code wir in der Datei conf/context.xml eingefügt: Continue reading “Installation Jenkins 2.x mit Tomcat”

Spring Boot – autoreload

Wer bei Spring Boot auch die Autoreload funktion haben möchte, muss die dependencie devtools einbinden:

Dann wird bei jeder Änderung im Classpath, die Anwendung restartet.

Weitere Einstellungsmöglichkeiten findet ihr unter http://docs.spring.io/spring-boot/docs/1.3.x-SNAPSHOT/reference/html/using-boot-devtools.html

Ionic – Anzeigen des Settings Menü GPS

Damit man mit Ionic dem User auch Anzeigen kann das die GPS Daten nicht vorhanden sind und er diese im Settings Menü ändern muss, braucht man die folgenden beiden Plugins

cordova-plugin-request-location-accuracy

cordova-diagnostic-plugin

Mit diesen kann man abfrage ob GPS aktiviert ist und auch den Benutzer zum jeweiligen Menü des OS zu schicken. Damit ist es wie in einer normalen Android App möglich ein “Bitte aktivieren Sie Google Standortdienste” Fenster anzuzeigen.

Spring Boot – Externe Template Dateien verwenden

Spring Boot – Thymeleaf FileTemplateResolver

Wer eine Spring Boot Anwendung baut möchte vielleicht das ein Frontend Entwickler sich um die Thymeleaf Seiten kümmert. Damit aber Spring Boot nicht bei jeder Änderung neugestartet werden muss und der Entwickler einfach das vorhandene jar/war verwenden kann, muss man einen FileTemplateResolver hinzufügen.

Spring Boot selbst liefert keine Implementierung des FileTemplateResolver, deswegen muss man ihn per @Configuration selbst hinzufügen. Wichtig ist auch das dieser mit @PostConstruct erzeugt wird.

Wenn man die folgende Methode integriert hat kann man seine Anwendung mit – Continue reading “Spring Boot – Externe Template Dateien verwenden”