Ansible® is an open source software for managing the state of infrastructure and for automating administrative processes. It facilitates the deployment, configuration, maintenance, and orchestration of systems and applications within services through shared infrastructure elements.

Ansible® makes it possible to manage hundreds or even thousands of systems simultaneously – as if they were one system. Thanks to this, even a single service installed on multiple systems can be configured. It saves time and eliminates problems related to manual service configuration. It also helps maintain the environment in compliance with all safety standards. Thanks to scalability and cross-platforming, it enables efficient use of resources from all types of hosts. It is worth noting that Ansible® enables managing both Linux, BSD as well as Windows®.

How does Ansible® work?

Agent-less

Ansible® is an agentless platform. This means there is no need to install any additional software on managed client servers. Ansible® connects to them using SSH protocol, which provides high security and does not require additional resources, security policies, or open ports. The solution also doesn't need an additional, custom infrastructure, which makes it much easier to deploy.

Playbooks

Ansible® uses a very simple YAML write format (and it's even simpler than JSON!), making it easy to use and understand. The process of automating tasks is very clear to the administrator. The platform can also be used on network devices, making it much easier to change configurations on switches, routers, or other network devices.
Ansible® can be used both ad hoc (issuing console commands for specific servers) and based on pre-prepared playbooks containing all scheduled events.

Idempotence

A very important feature of Ansible® is idempotence. This means that performing the same task multiple times will not change the state of the system. For example, when a database is initialized, it will only be populated with data the first time (unless we choose otherwise). Each subsequent execution will check whether the database has been initialized and, if it has, it will proceed to the next task without performing any changes to the system.

When is Ansible® not enough?

Due to its local, console nature (in the sense of terminal), Ansible® can cause problems in more complex environments. For example, two administrators might want to run two mutually exclusive tasks at the same time. An additional problem it the history of operations, access to logs or the ability to share a selected part of the infrastructure by several users.

The answer to these and many other challenges is the EuroTower solution.