“People often ask me how does Ansible compete
with other configuration management tools? We
don’t, we compete with Bash.”
-- Greg DeKoenigsberg,
CfgMgmtCamp 2016, Gent (BE), 2016-02-02
Using Ansible, we can reduce the service interruption time, test the infrastructure,
reduce the risk of accidents, and seamless integration the development, testing
and production environment.
● No agents to install on remote systems (SSH + python)
● Code in YAML
● Appropriate for managing small-medium setups
● Acquired by RedHat in October 2015.
Ansible: PlayBooks - Roles usage
- hosts: webservers
If roles/x/tasks/main.yml exists, tasks listed therein will be added to the play.
If roles/x/handlers/main.yml exists, handlers listed therein will be added to the
● Core modules are included with Ansible and are written
and maintained by the Ansible development team. Core
modules are the most important modules and are used for
common administration tasks.
● Extras modules are currently included with Ansible but
may be promoted to core or shipped separately in the
future. They are generally not maintained by the Ansible
team but by the community.
● Custom modules are modules developed by end users
- name: example copying file with owner and permissions
● Ansible Tower is a web-based solution that makes Ansible
even more easy to use for IT teams of all kinds. It’s
designed to be the hub for all of your automation tasks.
● Tower allows you to control access to who can access
what, even allowing sharing of SSH credentials without
someone being able to transfer those credentials.
Inventory can be graphically managed or synced with a
wide variety of cloud sources. It logs all of your jobs,
integrates well with LDAP, and has an amazing browsable
REST API. Command line tools are available for easy
integration with Jenkins as well.
● Ansible roles provided by community
● Setup server without knowledge
● Reduce risk of human error
● Respond and scale in pace with demand
● Infrastructure as the code
● Slow with larger infrastructures (20+ servers)