Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. I’m using it for Nousmotards and decided to build an Ansible role for it to make it simpler to deploy. Why did I built it as other projects like Kargo already exists? I just wanted a simple and maintainable role based on CoreOS official documentation. That’s what I did: This role bootstrap a Kubernetes cluster based on CoreOS Container Linux for production usages.

Continue reading

Some of you may not be familiar with the terms “Rolling upgrade” or “Rolling restart”. This is the action of upgrading or restarting a cluster without service interruption (alias zero downtime). In most cases, this is done node by node, but in fact it depends of the technology you’re managing and the number of active nodes in your cluster. At Nousmotards we have several Java Spring Boot applications running. Restarting one application can take up to 1 min.

Continue reading

As I wanted to upgrade it and because it has been asked several time, I upgraded the consul-template Ansible role to manage official binaries (and upgrades). Here are the new vars: consul_template_version: '0.11.0' consul_template_arch: 'linux_amd64' consul_template_http_src: "https://github.com/hashicorp/consul-template/releases/download/v{{consul_template_version}}/consul_template_{{consul_template_version}}_{{consul_template_arch}}.zip" You can of course find the role to Ansible Galaxy: https://galaxy.ansible.com/deimosfr/consul-template/ I hope you’ll enjoy this new version :-)

Continue reading

For a new project (will talk about it later), I needed to use Neo4J (graph database if you don’t know it yet). I tried to cover more features than the current existing Ansible roles available on Ansible Galaxy. More will come in the next weeks. I also tried to make it simple to install it and do not force dependencies at maximum. Here are parameters you can set: # Select neo4j version neo4j_package: neo4j # community version #neo4j_package: neo4j-advanced #neo4j_package: neo4j-enterprise # Neo4j spatial plugin neo4j_install_spatial: false neo4j_spatial_version: '0.

Continue reading

Since several weeks, I’m playing a lot with Debian Jessie as a server. I discovered some bugs, reported them to Debian, they’ve been fixed etc…good news! I also wanted to test the new version of LXC. So I decided to upgrade my 2 personal servers to Jessie. But that wasn’t so easy with Systemd. I still encounter non critical issues and going to prepare report bugs for Debian (cgroups issues with systemd).

Continue reading

Packer is a really great solution to make an image in several formats (VirtualBox, Docker…). I recently wanted to deploy it on a Jenkins server to automatically perform image build with the help of Packer. That’s why I’ve wrote a Packer role for Ansible really easy to use. You simply have to set (or let them by defaults) vars: # Packer version to install packer_version: '0.7.5' # Packer destination folder packer_destination: '/usr/bin' It will install the desired version :-)

Continue reading

Packer is one of the tools I’ve used in the past to build VirtualBox boxes. You can find what I’ve done on my GitHub account. For Smash project, I wanted to make a packer configuration to manage Docker and VirtualBox. I also wanted to call Ansible to build specific images for each needs. The goal is to be able to build cloud image ready to start, without any special dependencies. This because I need different usages:

Continue reading

Author's picture

Pierre Mavro / Deimosfr


SRE Lead DevOps at Criteo  •  Nousmotards Co-Founder

Paris - France