Automation And Configuration Management With Ansible

Ansible is open-source software that makes it easy to automate IT systems. It combines several functional areas that are usually covered by different solutions:

  • Configuration management
  • Ad-hoc command execution
  • Deployment

The Ansible project was started in 2012 by Michael DeHaan. In 2013 the company AnsibleWorks was founded, which commercially drives the further development of Ansible. Ansible is developed in the programming language Python and licensed under the GNU General Public License (GPLv3).

Since its inception, Ansible has grown rapidly: On GitHub, it is in the top 10 Python projects and contains contributions from over 700 developers. About every 3 months a new feature is released.

Configuration Management

Compared to Puppet and other solutions, Ansible positions itself as a simpler and more robust solution. Ansible does not require an Ansible server or Ansible agents but can be applied directly to the target system via SSH. This eliminates the need to install and manage the configuration software itself. No previous bootstrapping is necessary and an upgrade or error cannot result in systems any longer being accessible. At the same time, Ansible is also practical for small setups, even for a single host.

Ansible does not use its own syntax for configuration but is based on the established YAML format. The configuration files, called Playbooks, are easy to read and write

Besides, numerous modules for the configuration of various systems and services are already included (including EC2, PostgreSQL, APT, Yum, Git, Cron, and Debconf)

Recurring elements in Playbooks can be swapped out to roles and used multiple times.

Ad-hoc command execution

Once a list of hosts, called Ansible Inventory, exists for configuration management, this list can also be used for ad hoc commands. Here the same modules are used as for writing playbooks:

Deployment

Since Ansible is not executed automatically, but by explicit call, it is also suitable for software deployment with appropriate playbooks. A playbook can for example clone or pull a git repo and trigger database migrations or restart services. At the same time, the playbook can ensure that the target system is prepared accordingly, a task that usually requires a separate configuration management tool in addition to the deployment tool.

Conclusion

We recommend Ansible because it offers excellent opportunities for automated infrastructure configuration while requiring only minimal prerequisites compared to the competition so that the user does not have to write anything more than the Playbook scripts in advance. Ansible has a strong community that guarantees the sustainability of the project.

Do you also want to configure an automated task in your company for better project deployment? The DevOps engineers of Heyooo DevOps consulting company will be happy to support you in the implementation! Please give us a quote.

Related Article