In the last post, I talked about how to manage Docker and VirtualBox with Vagrant. This post follows the last one, with the integration of Ansible as a provisioner. Once again, I’m using it for the Smash project. With Ansible, I made several “group_vars” files containing custom and common information related to the used environment (dev, uat, staging…). This helps to setup different kind of environment easily. Vagrant will help to build images with Ansible deployed inside.
For my personal usages, I wanted do use DotDeb and MySQL playbooks. I first looked at the current ones on the Ansible Galaxy. However I did not find a good one for my needs. I first wanted to try to contribute to an existing one. But I needed to have them quickly and unfortunately didn’t have the time to do it. That’s why I made 2 new Ansible roles and added them to Ansible Galaxy.
If like me, you were using the Ansible Galaxy website to find and download your playbook for your favorite apps, you may missed a feature. It happened to me when I had to manage several playbook roles. I first wanted to use Git submodules to do it. However I preferred to search another way to do like like Puppet can do with R10K because I am working on a project with some unfamiliar Git users.
Following the deployment blog post I made on ES/Kibana/Fluentd, I released new version of Fluentd and Kibana playbooks to support the latests versions of themselves and ElasticSearch. ElasticSearch 1.4 version is ,out which doesn’t changed anything for the deployment. However Kibana requires to enable an ElasticSearch configuration option now, to work properly. I updated the Kibana playbook for it. On its side, Fluentd has the major release 2.0 out and I updated Ansible playbook for the best integration with Debian Wheezy.
First of all I will only talk about open sources solutions. I don’t want to take part of any commercial one. In addition, I will focus on only 4 solutions which seem to me the most used at this time. I will also talk about my history, my level on each one and why I recommend or not that solution. Puppet is in my opinion the most known solution. Because of the marketing they were/are doing, because it was a good alternative compared to the old cfengine.
During the last weeks I started to play with Elasticsearch, Fluentd and Kibana. I made a documentation to help on deploying it easily. As you may know, I’m an Ansible fan, so I made Ansible playbooks to deploy a complete infrastructure (server and clients). They will deploy this kind of architecture: On the client side, Fluentd clients will get syslog and Nginx logs, to send them to the Fluentd server. On the server side, a Fluentd receiver will be there to get data from other Fluentd clients.
In the previous posts, I’ve introduced my Ansible playbooks for kibana and Elasticsearch. You may now be happy to know that I’ve made an Ansible playbook for Fluentd as well. If you still don’t see what those tree ansible playbook can do when they are combined together, you’ll see in the next post :-)