GitMerge 2017, Brüssel

GitMerge – Was ist das denn? Die GitMerge ist eine Konferenz von GitHub organisiert. Realisiert durch zahlreiche Sponsoren wie GitLab, Atlassian BitBucket und amazon webservices ist diese Konferenz gespickt mit großen Namen.

Dieses Jahr konnte ich teilnehmen und bin sehr angetan. Am ersten Tag gab es Workshops, am zweiten Tag Talks. Die Vortragenden kamen von Unternehmen mit ebenso großen Namen wie die der Sponsoren. Facebook, Microsoft und ebenfalls Atlassian waren hier vertreten.
Am ersten Abend hat Atlassian eingeladen zu einer Runde kühle Getränke im penta hotel. Neben drei kurzen Lightning-Talks gab’s Getränke und ein reichhaltiges Buffet. Wir (meine drei Kollegen Henrik, Thomas & Uli) haben Menschen aus der ganzen Welt kennengelernt. Venezuela, Spanien, Belgien, USA und England. Es verbindet doch sehr, wenn sich alle für das gleiche Thema interessieren.

Der zweite Tag startete mit einem reichlichen Frühstück. Egal ob die Performance bei git lfs oder aliase schreiben wie die Götter, alle Vorträge waren super.

Die wichtigsten Links und Informationen hab ich Euch hier zusammengestellt:


Thema URL
git aliase von Tim Pettersen https://bitbucket.org/tpettersen/git-aliases
Oh, shit, git! http://ohshitgit.com/
git imerge – incremental merge and rebase https://github.com/mhagger/git-imerge
Jedi Mind Tricks for git http://www.slideshare.net/jankrag/jedi-mind-tricks-for-git

Im nächsten Jahr bin ich gerne wieder dabei, sollte man sich nicht entgehen lassen.
Das 2017er Video gibt es noch nicht, aber dafür das von 2016

Ein paar Bilder für die Eindrücke.

Let’s Encrypt Zertifikate automatisch erneuern

Hallo Zertifikatfreunde!

In dem Beitrag „Kostenloses SSL Zertifikat“ habe ich gezeigt, wie man sich bei Let’s Encrypt ein kostenloses Zertifikat besorgt. Jetzt stand die erste Erneuerung an und ich dachte mir, warum nicht als cron? Der Mensch an sich ist faul und will so wenig wie möglich selber machen. Wir (Sebastian und ich) haben die Zertifikate zusammen auf dem Server abgelegt, so dass ich hier direkt alle überprüfen und gegebenenfalls aktualisieren kann.

Viele Anregungen habe ich aus den Community Foren, aber den Großteil konnte ich von einem Blog übernehmen: Automatic renewal of Let’s Encrypt issued certificates.

Hier zu habe ich erst mal ein Shell-Skript in /etc/cron.monthly/issue-certificates.sh  angelegt. Der Inhalt des Skriptes sieht folgendermaßen aus:

Das Skript prüft, wie lange die Zertifikate noch gültig sind und erneuert diese bei Bedarf. Um hier flexibel bei den Domains zu bleiben, wird mit einer ini-File gearbeitet. Der Inhalt der Datei(en) sieht so aus:

Als erstes wird überprüft, ob das Verzeichnis  /etc/letsencrypt/live überhaupt vorhanden ist. Dort liegen alle Zertifikate. Danach wird mit Hilfe von openssl das Ablaufdatum der Zertifikate überprüft. Der Domainname und seine Aliase werden in  $domains gespeichert. Der Name der ini-File entspricht dem Namen der „Hauptdomain“ (zB example.com).

Nachdem alle Namen gespeichert sind, wird die Funktion issueCerts  mit den Parametern $inifile  und $domains  aufgerufen. Diese können dann mit $1  und $2  verwendet werden.

Die volle Zeile würde so aussehen:

Das Ergebnis wird per Mail an die angegebene Adresse gesendet. Bei einem Fehler wird der errorlog von Let’s Encrypt angehangen.

Viel Spaß beim automatisieren!

Webentwicklung mit Vagrant und Virtualbox

Und warum sollte man sich selber einen Server auf dem Rechner schaffen, wenn man doch schon irgendwo einen stehen hat? Da gibt es viele Antworten. Mit das wichtigste ist, dass die Dateien alle lokal vorhanden sind. Ich kann schnell Suchen und Navigieren, meine Tests ausführen oder auch mal neue Konfigurationen (PHP 7, HHVM oder MariaDB) testen. Ebenso spart man sich das ständige Deployment.

Grundlagen

Als Grundlage dient immer Vagrant und VirtualBox in der jeweils aktuellsten Version. Beides wird mit den Standardeinstellungen installiert, danach sind keine weiteren Einstellungen notwendig.

Allgemeine PHP Projekte

Für allgemeine PHP Projekte greife ich auf eine generierte Box von phansible.com zurück. Je nach Anforderungen wechsle ich zwischen MySQL und MariaDB, sowie PHP und HHVM.

Unter „Basic Options“ empfiehlt es sich unter Mac OS X und Linux den „Synced Folder Type“ auf NFS zu setzen.
Als Webserver kommt ausschließlich Nginx zum Einsatz.

phansible.com Konfiguration
phansible.com Konfiguration

Lädt man nun die Zip Datei herunter, erhält meine eine fertige Vagrantfile inklusive aller Rollen für Ansible.

(mehr …)

Kostenloses SSL Zertifikat mit let’s encrypt

Ihr seid die selbst-signierten Zertifikate leid und wollt endlich ein kostenloses SSL Zertifikat? Kein Problem mit Let’s Encrypt. Dies ist nun aus der geschlossenen beta raus und kann von jedem genutzt werden.  Das einzige Problem hier ist, dass die Zertifikate alle 3 Monate erneuert werden müssen. Um das zu automatisieren überlege ich mir noch was. Jetzt wird erst mal manuell eins erstellt.

Die Vorgehensweise ist eigentlich relativ einfach, ich beschreibe nur kurz den Weg für Server mit Nginx, da es dort keine automatische Installation gibt.

Als erstes muss man sich an eine Stelle auf dem Server (let’s encrypt empfiehlt ab hier die Arbeit als root) das Git Repository klonen und in den Ordner wechseln.

Seid ihr dem Ordner angekommen, kann man nun mit einem einzigen Befehl sich bei Let’s Encrypt authentifizieren bzw. registrieren und ein Zertifikat „bestellen“.

Kurz zu den Parametern. Mit certonly  werden die Zertifikate nur abgelegt und nicht installiert. Die authentifizierung findet durch --webroot  statt. Wird eine andere Art der Authentifizierung verwendet, dann muss der Webserver vorher gestoppt werden, da letsencrypt die Ports 80 und 443 benötigt. Das wollen wir natürlich im laufenden Betrieb nicht.
Mit --email  kann der Schritt der weiteren Authentifizierung übersprungen werden. Das Webroot (also da wo eure Webseite liegt), wird mit -w  bestimmt. Für jede Domain für die das Zertifikat gelten solle, wird ein -d  angehangen.

Wenn der Befehl ausgeführt wurde, werden erst mal alle Abhängigkeiten für das OS installiert. Das kann je nach Server etwas dauern. Nach der Installation stehen die Zertifikate bereit. Ihr findet diese dann unter  /etc/letsencrypt/live/www.example.com . Folgende Dateien wurden angelegt:

Um in Ajenti die Zertifikate zu verwenden, werden die oben beschriebenen Dateien unter Websites -> SSL angegeben. Unter Ports noch 443 mit SSL angeben und dann läuft eure Seite auch auf https.

Verwendet ihr nur Nginx ohne Verwaltungstools wie Ajenti, dann werden die in die Konfiguration wie folgt angegeben

Jetzt nur noch den Nginx einmal neu starten und wir sind fertig.

Falls ihr für Ajenti noch ein kombiniertes Zertifikat braucht, dann geht das so

Immer dran denken: Alle 3 Monate muss das Zertifikat erneuert werden. Das geht ganz einfach mit dem Befehl oben.

Viel Spaß mit damit!