From the Intern's Desk: Server Creation & Automation with Ansible
For the bulk of my summer here at Jungle Disk, I’ve learned everything about Ansible in order to eventually create a way to automatically make test machines using both Google Compute Engine through the Google Cloud Platform and Amazon Web Services. Ansible is a great tool to use for server creation and automation. It uses a declarative language called YAML to describe the system configuration. YAML is a language that is both easy to learn and understand, so there is no need for necessarily complex code or use of a plethora of variables within the code. It’s very straightforward as to configuring the system, it almost reads as plain English, if English used equal signs and colons more often.
So why is it worth the time and effort to learn an entirely new language and tool in order to simply create different systems? Efficiency. Sure if you only needed one or two virtual machines to test on it would be faster to configure them manually, but when you go through a number of machines frequently it becomes tedious to manually configure them to have the correct file systems and programs installed.
Ansible takes the hassle away and does it all for you in what is called a playbook. A playbook is the final file that you would run to configure the system. It is built from individual tasks and roles that come together in order to complete the playbook. Being able to keep tasks separate into their own roles, allows for many different playbooks to call on any of the roles that have been created in able to create dynamic plays without having to rewrite code.
At the end of the day, taking a small amount of time to learn how to use Ansible can save you and your team so much more in the long run by automating your server creation.