Multi-Project Pipeline Graphs
Fri, 23 Jun 2017 18:00:52 +0200
Nice!
#^GitLab 9.3 Released with Code Quality and Multi-Project Pipeline Graphs
#CI/CD
#^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!
#CI/CD
Dockerized
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":
Should also get my private projects into containers next.
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.
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
#Continuous Delivery #CD
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:
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.
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 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
#^opscode/chef-summit-2014
#Docker #Chef #CM
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
#DockerCGN
#^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).
#DockerCGN
Tue, 07 Oct 2014 21:41:33 +0200
#^Bonn Agile Meetup - Oktober 2014: Docker - Einführung und Microservices mit Docker | Data in Transit
War ein sehr interessanter Abend. Ein paar gute Ideen mitgenommen. Werde mir auf jeden Fall mal Fig ansehen um Container leichter zu verbinden.
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?
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
#^ 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.
Veewee
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. 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.
#^jedi4ever/veewee
#^jedi4ever/veewee
veewee - Easing the building of vagrant boxes
This website is tracked using the Piwik analytics tool. If you do not want that your visits are logged this way you can set a cookie to prevent Piwik from tracking further visits of the site (opt-out).