Overall Satisfaction with Ansible
Ansible is a tool used by our head DevOps engineer and others who elect to do so. It is mainly used for automating server setup/tear down and ensuring concurrency exists across all our application platforms. It's an incredible tool for setting up any environment without having to install the program on the server you wish to target.
- Automating any machine-level processes that you need to do to set up an environment.
- Great for sending out consistent changes to a group of servers.
- Ansible Tower is a paid service, which can be annoying at times. But that is understandable, as it requires an additional level of support from the Ansible team to develop.
- There is a decently large learning curve for someone not familiar with setting up Unix environments. However, there is a very large support community with tons of documentation, so it's not a dealbreaker.
- Allowed us to manage our large application server groups as if they were a single machine. Gives you a ton of freedom in how you want to set up your instances without worrying about how you're going to manage updates.
- Gave our lower-level developers the possibility to change environment-level qualities that they otherwise would've never understood how to do.
- Chef
Chef is something that was used previously by our head engineer and is quite similar to Ansible. They're both great configuration management tools. However, since Ansible is agent-less, we decided to switch for the convenience and quick-start nature of Ansible. Along with that is the fact that Ansible's books are written in YAML vs a fully fleshed language like Ruby, which means it's much easier to pick up, understand, and write for our new users.