Category Archives: Programmier Tools / Werkzeuge

Tools fürs Programmieren, besonders für Java und Web Bereich

Raspberry Pi mit einer Wetterstation ws1080/wh1080 verbinden

Es gibt viele Blogs mit Anleitungen wie man eine Wetterstation vom Typ ws1080/wh1080/ws3000 etc. mit einem Raspberry pi verbindet. Ich habe meinen Anleitung nun als Ansible Playbook unter https://github.com/lightszentip/ansible-playbook-weather1080 veröffentlicht. Somit kann schnell und einfach zwischen dem Raspberry pi 2 und Raspberry pi 3 gewechselt werden und auch eine Neuinstallation ist nicht mehr Aufwendig.

Der Vorteil von Ansible ist das man diese Anleitung schnell und einfach an die verschiedenen Wetterstationen anpassen kann. Zudem ist ein Script enthalten um die Daten von der WH1080/Ws1080 in eine mysql Datenbank zu speichern. Damit hat man die Daten in einem einfachen Format und kann diese an anderen Stellen leicht und einfach wieder verwenden. Es muss dafür nicht eine Software mit manueller Eingabe verwendet werden um die Daten aus der Wetterstation auszulesen.

 

Use password with ansible – security

Mit ansible-vault createsecrethostgroupOne  kann man sein Passwort verschlüsseln:
createsecrethostgroupOne = Name der Variable für das Passwort um es später im Script oder der config zu nutzen.

Wenn man create secrethostgroupOne  oder edit secrethostgroupOne  aufruft muss man ein vault Passwort festlegen.

Danach wird ein Editor geöffnet wo man folgendes eingibt:

Dann im Script:

angeben. Damit beim ausführen des Playbooks auch das Passwort beachtet wird, muss man eine Datei vault.txt anlegen (gleiche Ebene wie das playbook) und dort das vault Passwort eintragen.

Danach kann man dann mit dem Zusatz:

das eingeben des sudo Passwortes einfach überspringen .

SSH Key an alle hosts in ansible/hosts kopieren

Wenn man Ansible verwendet, benötigt man den lokalen ssh public key auf allen in der hosts Datei eingetragen Knoten – außer man verwendet das ansible_ssh_pass.
Damit man aber nicht für jeden Knoten einzeln ssh-copy-id aufrufen muss, hilft das folgenden Pyhton Script:



Die komplette Datei findet ihr unter https://gist.github.com/lightszentip/881593f03a7e3d1b107e3be889547941

Das Script baut auf der Datei von Jiri Tyr hostfile.py auf, welches eine hosts Datei parsed.

Der Aufruf sieht wie folgt aus:

Falls man es auf eine Gruppe einschränken möchte, kann man auch noch –group Groupname mitgeben (dieser ist aber optional). Als Beispiel:

Wie ihr den ssh key generiert, seht ihr unter adding-your-ssh-key-to-the-ssh-agent und den public key vom private key gibt es mit

Das ganze könnt ihr dann mit

testen.

Jenkins Pipeline – War File deployen

Mit dem folgende Script kann man eine war Datei mit Jenkins Pipeline auf einem Tomcat deployen. Für das deployen mit curl auf einem tomcat wird ein User mit der Rolle manager-script benötigt.

Checkout:

Beim checkout wird nur eine Schatten Kopie mit einer Tiefe von 2 vom Ziel Branch heruntergeladen. Das reduziert die Zeit für den checkout. Bei einem

werden hingegen alle branches und auch die History des aktuellen Branches komplett heruntergeladen. Dies wird an dieser Stelle aber nicht benötigt.

Deploy Stage:

Nach dem bauen wird mittels curl einfach die war Datei auf dem Tomcat deployed. Was noch fehlt ist eine Prüfung ob das deployen erfolgreich war und das Neustarten des Tomcats falls nicht. Die Prüfung kann man mit curl oder wget machen und das Neustarten mit Hilfe einer ssh Verbindung auf den Tomcat.

Eigenes Gitbucket mit Qnap NAS und Docker

Auf den NAS Speichern von Qnap ist es möglich Docker Container laufen zu lassen. Dadurch kann man auch Gitbucket auf dem NAS laufen lassen und so sein eigenes “github” im Netzwerk haben.

Gitbucket ist eine Webanwendung welche die Funktionen von Github beinhaltet (minimale Funktionen).

Aber Schritt für Schritt. Zuerst wählt man auf dem NAS Speicher die Anwendung “Container Station” und wählt neuen Container erstellen. Dann verwendet man die Suche und sucht nach “hiono/gitbucket”. Beim erstellen am besten immer den Tab “Docker Hub” verwenden, damit man die aktuellste Version verwendet. Es ist zu empfehlen direkt eine Version auszusuchen anstatt latest. Dazu aber später mehr.

Wichtig bei den Daten sind dann zwei Einstellungen unter “Erweiterte Einstellungen”: Continue reading Eigenes Gitbucket mit Qnap NAS und Docker

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.

Easy and free Tools for Development, Ideas and Projects

Falls ich eine Idee entwickeln möchte und dies mit anderen zusammen – muss ich dafür Geld investieren?

Nein, es gibt viele Projektmanagement Tools und Plattformen wo für den Anfang die free Version ausreicht.

Projektmanagement:

  • Workboard – bietet viele Möglichkeiten die Tasks eines Projektes zu managen und kommt zudem noch mit Reports
  • Trello – Kanban Board mit flexiblen Spalten und mehreren Boards
  • Producteev – Task Manager
  • Bitbucket und Github – einfache Taskfunktion

Zu Kommunikation zwischen mehreren Teammitgliedern bietet sich Slack an. Es kann mit mobilen Geräten aber auch am Desktop verwendet werden.

Zum bearbeiten von Notizen oder Dateien bietet sich neben Dropbox und GoogleDrive auch Evenote an. Es ist ein digitales Notizbuch und wer nur Notizen erstellen möchte (auch mit Bildern) dem dürfte Evernote weiterhelfen.

Docker

Was bringt einem Docker? Docker isoliert z.B. einen Jenkins in einem Container auf deinem Ubuntu Server und ermöglicht es dazu noch weitere Anwendungen in anderen Containern bereitzustellen.

Installation

Aktuell wird Windows von Docker nicht unterstützt. Die folgende Anleitung beschreibt die Installation von Docker auf einem Ubuntu 14.10 Server. Einen solchen Server kann man sich einfach mit Hilfe z.B. der Virtualbox lokal auf seinem Rechner einrichten. Dazu benötigt man ca. 10 GB Festplatten Platz und genug RAM damit die Virtuelle VM nicht zu langsam ist.

Wer noch Ubuntu <= 13.10 verwendet sollte die Anmerkungen unter der Docker URL befolgen.

Docker kann einfach mit dem Tool “wget” heruntergeladen werden und mit sh wird der Installationsprozess gestartet:

Validieren kann man die Installation mit:

Erste Schritte

Um die ersten Kenntnisse und Schritte in Docker zu lernen empfehle ich das Online Tutorial von Docker:

https://www.docker.com/tryit/