I’ve been managing a handful of servers lately, and the whole process quickly reached the point when it’s very hard to figure out all the steps I need to do to reproduce a particular server in case of a failure (or even a simple migration). Docker makes simple deployments easy to migrate, but you still need to install Docker, Docker Compose, set up appropriate firewall rules, set up WireGuard tunnels, configure automatic updates, add monitoring agents, etc.
Setting up a server isn’t as easy and fast as it may sound. Ansible is a great open source tool that allows me to manage my fleet with ease. It also helps me to make sure that I didn’t miss any important steps. It works over SSH, and I believe people can benefit from using it even if they have to manage a single server.
Ansible is one of the tools which enable to define infrastructure as code. There are a few other tools in the market, but Ansible seem to work pretty well for my use cases, so I guess I’ll stick with it for now.