Ansible: A quick guide to quicker deployments

As the complexity of web application servers increases, it gets increasingly hard to orchestrate deployments. Today a web application serving a sizable audience requires a diverse array of servers that handle different things, and interact with each other in complex ways.

A web app is likely to have different servers for the database, serving static files, multiple servers for serving dynamic app content, and often servers to run asynchronous tasks like re-sizing images or other longer-running tasks. Each server will have its own setup of installed packages, configuration settings, and active services. To interact with each other these servers will need to know about each other as well. If you set it all up by hand you need to ensure you have the right packages installed, the right configuration files in the right places, and ensure that the right services are running. Its easy to skip a step by mistake, and then waste time scratching your head wondering what went wrong.

This can quickly get repetitive and tedious, and its quite obvious that doing this manually is not the right way. Fortunately there is an increasing array of tools designed to alleviate this headache. Configuration management, or IT Automation software like Chef, Puppet, SaltStack and Ansible are available, and they help you define your configuration in one place, and then apply it to your infrastructure to get everything set up in a jiffy. We’re exploring Ansible, a free and open-source configuration management tool written in Python. While Ansible cannot run on Windows, it can be used to manage and configure Windows servers as well.

Leave a Comment

Your email address will not be published. Required fields are marked *