Multi-Project Pipeline Graphs

 Fri, 23 Jun 2017 18:00:52 +0200 

#^GitLab 9.3 Released with Code Quality and Multi-Project Pipeline Graphs

GitLab 9.3 Released with Code Quality, Multi-Project Pipeline Graphs, Conversational Development Index, Improved Internationalization, Snippet Descriptions, and much more!



 Fri, 09 Dec 2016 19:02:47 +0100 
Nearly all web projects are moved to #Docker containers now. The old infrastructure was mostly based on CentOS6/7 and the main reason for this step was the annoyance of legacy #PHP projects and their PHP version requirement conflicts. I don't need a cluster or swarm, so I have a single instance with #CentOS based #Project Atomic only. The dockerized projects include:
static pages with nginx
#TYPO3 7.6
#Drupal 8.2
#Piwik 2.17
#Revive Adserver 4.x
#OXID eShop 4.[9|10]

Here are some completely subjective "best practices":
  • I was a bit disappointed about most available images in Docker's Hub. But make use of the official mariadb, php, drupal, nginx images!
  • Use your Dockerfile and no massive entrypoint scripts.
  • Don't try to build a base images for all your projects, the projects have all too different requirements. Found it much easier to build custom images from the official PHP images directly with only what was really needed for the projects.
  • Think about mail delivery requirements. Does your application requires mail(), or can you configure a SMTP server. Use sSMTP if you need a local MTA.
  • Get your persistent volumes right and use the correct #SELinux labels.
  • A local repository makes deployment much easier.
  • Use #Jenkins to build and deploy new images.
  • Don't use --link, use Docker networks instead!
  • jwilder/nginx-proxy still has some bugs, especially with custom nginx configurations, but a wonderful tool.
  • jrcs/letsencrypt-nginx-proxy-companion and it was never easier to get certificates.
  • Think about reboots. How you want your containers to be managed? Services for systemctl work quite well so far.
  • Redirect your application logs to the right output. Log management I should take a look at again.

Should also get my private projects into containers next.
 Wed, 02 Nov 2016 22:58:16 +0100 
#^Introduction to DevOps: Transforming and Improving Operations
Learn how to transform your organization using the principles and practices of DevOps.

"Introduction to DevOps: Transforming and Improving Operations” aims to help you develop a good working knowledge of the concept of DevOps, covering the foundation, principles, and practices of DevOps. This course will focus on the successful patterns used by high performance organizations over the past 10 years.

IP-based virtual hosts in a container

 Mon, 24 Oct 2016 18:34:46 +0200 last edited: Mon, 24 Oct 2016 18:45:59 +0200  
I have a Docker container with a nginx reverse proxy with name based virtual hosts and also wanted to have IP-based virtual hosts. But I always got the default server configuration, even I saw in the logs that the correct destination IP was logged, but the listen statements for the ip:port just had no effect.
It seems not to work with the default bridge network. Running the container with --net=host solved this problem and also the IP-based vhosts worked.

Dave Farley: The Rationale for Continuous Delivery

 Wed, 12 Oct 2016 23:17:35 +0200 
#^Dave Farley: The Rationale for Continuous Delivery
Dave Farley bietet in seiner Keynote der Continuous Lifecycle 2015 einen lehrreichen historischen Abriss zur Entwicklung von Continuous Delivery hin zu DevOps.

#Continuous Delivery #CD

Tear down docker test containers based on image name

 Thu, 01 Sep 2016 16:49:47 +0200 
Given your #CI generates #Docker images from your Git commits and tags them with something like web01-qa:$BUILD_NUMBER. Right now I can not set a name for the container that gets spun up after every commit, so I needed a solution to tear down the old containers after successful start of a new container based on the image they were created from. This is what I came up with:

docker ps --format "{{.ID}}\t{{.Image}}" | awk -F ':' '/web01-qa/{print $NF, $0}' | sort -r -n | tail -n+2 | awk '/web01-qa/{system("docker stop " $2)}'
Get all running containers, sort them by $BUILD_NUMBER for the image name containing web01-qa, stop all matching containers except the one from the newest image.

Or use docker rm -f if not interested in the old containers anymore.

Blue Ocean

 Thu, 02 Jun 2016 17:50:37 +0200 
#^Introducing Blue Ocean: a new user experience for Jenkins

In recent years developers have become rapidly attracted to tools that are not only functional but are designed to fit into their workflow seamlessly and are a joy to use. This shift represents a higher standard of design and user experience that Jenkins needs to rise to meet.
We are excited to share and invite the community to join us on a project we’ve been thinking about over the last few months called Blue Ocean.
Blue Ocean is a project that rethinks the user experience of #Jenkins, modelling and presenting the process of software delivery by surfacing information that’s important to development teams with as few clicks as possible, while still staying true to the extensibility that is core to Jenkins.

Automatic server hardening by -T-

 Fri, 16 Jan 2015 10:36:41 +0100 
This is interesting. A project from Deutsche Telekom with #Chef and #Puppet modules for various hardening tasks, such as OS, SSH, MySQL, PostgreSQL, Nginx, Apache. Under Apache 2 license. Just the supported OS versions are not that current.

#^Hardening Framework

Hardening adds a layer into your automation framework, that configures your operating systems and services. It takes care of difficult settings, compliance guidelines, cryptography recommendations, and secure defaults. GitHub Chef Supermarket GitHub Chef Supermarket GitHub Chef Supermarket GitHub Chef Supermarket GitHub Puppet Forge GitHub Puppet F...

Buzzword alert!

 Mon, 05 Jan 2015 17:16:33 +0100 
Building better software on schedule with DevOps - ADMIN Magazine
DevOps makes IT departments more efficient and makes their employees happier – but what is it? We describe some basic ingredients of the DevOps recipe.

Docker, Chef, & Immutable Infrastructure

 Sun, 02 Nov 2014 01:13:33 +0100 
chef-summit-2014 - Wiki for the Chef Community Summit - 2014
Docker, Chef, & Immutable Infrastructure

#Docker #Chef #CM

CoreOS Meetup live stream

 Tue, 14 Oct 2014 11:39:16 +0200 
There will be a live stream from tonight's Docker Cologne meetup about #CoreOS with Brandon Philips (CTO, CoreOS).

#^CoreOS Meetup Cologne, October 14, 2014

Video stream/recording of the October 14, 2014 event in Cologne, hosted by Giant Swarm. Talks featuring Brandon Philips (CTO, CoreOS) and Luke Marsden (CTO, ClusterHQ).

 Tue, 07 Oct 2014 21:41:33 +0200 
#^Bonn Agile Meetup - Oktober 2014: Docker - Einführung und Microservices mit Docker | Data in Transit
Für das Meetup am 7. Oktober freuen wir uns euch zwei Vorträge zum Thema Container-Virtualisierung mit Docker zu präsentieren. Die agile Softwareentwicklung birgt immer neue Herrausforderung rund um Individuen, Prozesse, Organisation und Infrastruktur. Wir möchten uns den Themen Infrastruktur und Organisation widmen. Docker ist hier eine Teilan...

War ein sehr interessanter Abend. Ein paar gute Ideen mitgenommen. Werde mir auf jeden Fall mal Fig ansehen um Container leichter zu verbinden.

Feel welcome to Ruby

 Tue, 07 Oct 2014 16:28:10 +0200 
I should feel pity for everyone who has to work with #Ruby and rubygems. What a fucking dependency and incompatibility hell.

I used to install mailcatcher through gem install in my Vagrant provisioning scripts for a long time. Suddenly a dependency requires a newer Ruby version than what is available on CentOS6. On CentOS7 it still works, but installs another dependent package in a version that causes Encoding::CompatibilityErrors. Installing an older version of the package and everything is fine. And yet another runtime dependency is not installed by gem and needs to be installed manually. Oh and in CentOS6 gem installs it to /usr/bin in CentOS7 suddenly to /usr/local/bin #WTF?!?

At least I can handle all this in a Puppet module and reuse it, but why must these scripts get so fucked up? :-!

Infrastructure as Code

 Tue, 22 Apr 2014 00:54:26 +0200 
I must say I still feel a bit strange writing tests for scripts that should install or configure a program for me. But it is also quite cool if you have some scripts written for CentOS and then just add one line to your config file and add Debian for example and see if it also does what you want there, too.

#^ Welcome to Test Kitchen - KitchenCI
Test Kitchen - Your infrastructure deserves tests too.

Test Kitchen is a test harness tool to execute your configured code on one or more platforms in isolation.

red Cookbook

 Sun, 23 Feb 2014 23:14:24 +0100 
Finally got a Chef cookbook together that will take a minimal CentOS image, provision it and deliver you a running redmatrix installation. It's my first cookbook and I need to clean up some things and test bit more, but I hope I can release it next week. This should make it easier together with Vagrant to get a development installation.


 Sat, 22 Feb 2014 00:52:48 +0100 
I am getting too lazy. There is nothing to do when Veewee is installing your VM images an prepares them for Vagrant. :-D Why I did not use this before? Such a nice tool! Next getting Chef to provision the base boxes and set up a redmatrix dev machine for me to continue.

veewee - Easing the building of vagrant boxes