Automating all the things with Ansible

Ansible is a tool for automating IT tasks. It's one of my preferred tools to use, and one that I've written about and presented talks on previously.

It's typically thought of as a tool for managing configuration on servers. For example. you have a new VPS that you want to use as a web server, so it needs Nginx, MySQL, PHP, etc to be installed - or whatever your application uses. You define the desired state and run Ansible, which will perform whatever tasks are needed to get to that state.

Ansible though does include modules for interacting with services like Amazon AWS and DigitalOcean to create the servers and resources, and not just configure them.

It also doesn't just work on servers. I use Ansible to configure my local development environment, to ensure that dependencies and tools are installed, and requirements like my SSH keys and configuration are present and correct.

Lastly, I use Ansible to deploy application code onto servers and automatically run any required steps, ensuring that deployments are simple, robust and repeatable.

In the next few emails, I'll explain how I've been able to utilise Ansible for each of these situations.

Want to learn more about how I use Ansible? Register for my upcoming free email course.