I created my own personal repository of Ansible Playbooks to help me automatically process those boring manual steps I keep doing when provisioning systems for my projects. It is a repository I will keep updating the more I get into provisioning projects.

https://github.com/carlessanagustin/ansible-playbooks

The present roles are:

  • ansible: Install full Ansible server environment.
  • base: Install basic packages into a new Ubuntu server.
  • clean: Cleans a Ubuntu previous to export.
  • docker: Install full Docker environment.
  • elasticsearch: Install basic Elasticsearch.
  • hyperv: Install Hyper-V in a Windows machine and, through PowerShell commands, it’s possible to manage images and snapshots.
  • kibana: Install basic Kibana.
  • logstash: Install basic Logstash.
  • nagios: Install a full Nagios monitoring server and publishes the /etc/nagios3 folder into /vagrant for easy access.
  • samba: Install Samba environment and mounts a remote folder into the system.

Why did I choose Ansible between the other configuration management tools?

  • It is agent-less, so I can use it with an SSH or a WinRM port open.

  • Because it is written in Python and it is my preferred programming language, I can import ansible in my Python Scripts.

  • There are many official modules out-of-the-box.

  • I can use it from the prompt with ansible-doc and ansible commands.

  • And last, because its formatting is more SysAdmin (me) but less Developer; easy to read, work, and understand.

  • Inputs: YAML + INI + Jinja2.

  • Outputs: JSON.