Configuration and Management of Applications

Hi, guys! We hope that we managed to interest you with the theme of Ansible, and you had already time to get acquainted with it a little if you had previously used other tools. This time we would like to tell about our experience of work with Ansible. As you know, we have several applications and actively use it to automate the configuration of the infrastructure. To this end, we have developed a number of Ansible roles which you are welcome to explore and use if you wish.

The set of roles we have developed can be easily applied to a wide range of tasks and the list will be constantly updated. Here`re only some of available roles (see corresponding Readme files for detailed descriptions):

  • an-application - an Ansible role which allows to deploy applications. It downloads a project from the specified git repository or URL, prepare application for deployment, let you keep the required number of last releases.

  • backup - a role for backup management that includes its configuration for MySQL and PostgreSQL databases, various storages, notifiers and compressors. The role allows to automate the backup process with the Cron utility.

  • firewall - as you can guess from a title, the role is intended for installation and configuration of a firewall with UFW.

  • nginx - a role that installs and configures the NGINX web server. You can use it to specify SSL settings and configure any number of sites. The role's configurations may differ depending on your goals. It can be used as a load balances, for managing static landing pages or backend with various features.

  • users - a role for managing user and group accounts.

  • hosts-configure - a role which allows to configure hosts in accordance with the playbook inventory file. It adds rules to /etc/hosts, binding the hostnames from the inventory to their private IPs.

  • dependent-software - this role updates the repository cache and installs the required packages specified with the appropriate list variable.

  • ruby - a role that allows to install/update and configure Ruby and necessary dependencies with rbenv.

  • systemd-service - the role creates and configures systemd service unit files. It allows you to run certain services automatically in the background, enable or disable them for specific events, manage groups of processes, configure dependencies on other units and many others.

Such is our usage of Ansible capabilities and it works as it should. We are sure that the workflow should be as automated as possible so that the team can concentrate on their main tasks, without being distracted by the configuration of applications constantly. Try it as well and feel free to share Ansible solutions and roles you have written for your application needs with our team.

Riter development team