CoreOS is a lightweight Linux operating system designed for clustered deployments providing automation, security, and scalability for your most critical applications. I’ve been playing with CoreOS to replace Debian hosts which run Docker containers on Nousmotards project. CoreOS helps on simplifying bare metal deployment and avoid managing OS upgrade. As I’m still an Ansible lover, I’ve made 2 roles: CoreOS Ansible: Ansible role to deploy pypy to CoreOS to be able to get Ansible prerequisites CoreOS: Ansible CoreOS role to deploy CoreOS on bare metal servers If you want to quickly look at the result:
Continue reading

Long time since my last post. This one is not very technical post, but it’s a nice to have solution if you use grep usually. Are not you fed up to type vim and search the line after a grep command ? If yes, this post is for you. First of all, you may know that an alternative more user friendly to grep exist, called ag (perf comparison). I really like ag and grep, but something make me loose my time since several years and I’m pretty sure it’s your case too.
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

This title can sounds like a troll, but this is not the case! I’m writing this post as a feedback. When I spoke during an Ansible meetup presenting Nousmotards infrastructure, I had several questions regarding why I chose monit as the init system instead of supervisord. That’s what encouraged me to write this post and that’s why I wanted to clarify here the things. Introduction Docker is made to run a process in a confined area.
Continue reading

I’m using Graphite at work and for my Nousmotards project. For Nousmotards, I’m using the Graphite version available in the default Debian Jessie repositories. This to avoid mismatch django dependencies etc… A few days ago, I wanted to try Graphite events to get something pretty cool in Grafana : This to be able to know when a new app version is deployed and make it easier to understand when an issue occurs.
Continue reading

Hi all ! Long time since last blog post ! I’m using Jenkins with Ansible on my Nousmotards project for building docker containers or deploying into production. You may noticed that you’ve no Ansible color when running it into Jenkins! The simple way to correct it is to export an environment variable in your Jenkins job: export ANSIBLE_FORCE_COLOR=true Now that’s pretty cool! However, you may also noticed that there’s some kind of lags on the console when you want to see a real time console log on Jenkins.
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

Author's picture

Pierre Mavro / Deimosfr


SRE Lead DevOps at Criteo  •  Nousmotards Co-Founder

Paris - France