Aegir, Ansible, & Cloud APIs: How we use Drupal to automate our entire Platform-as-a-Service
The Aegir Hosting System has been used for hosting thousands of Drupal sites for over 11 years, using Drupal as a web interface for managing your servers and sites.
In classic Aegir 3.x and earlier, you still need root shell access to install and configure a few things before Aegir can work.
in 2016 I set out to solve this by creating server configuration tools in Ansible and integrating with Cloud server providers like DigitalOcean, Packet, and SoftLayer.
The result was the Aegir Cloud and Aegir Ansible modules.
Now with a single form from node/add/server, you can:
Create a cloud server instance with your choice of data center, OS, memory, etc. and automatically authorizing the Aegir user's SSH key.
Select the services you want installed, like Apache or MySQL preconfigured to work with Aegir.
Add custom Ansible playbooks to each server.
Add custom Ansible variables as YML into a simple text field.
Automatically discover the server's IP address and set DNS records for the server's hostname.
Wait for SSH access via root.
Run the chosen Ansible playbooks with the generated and manually entered Ansible variables.
Get a Red or Green or Orange result if any of those steps failed.
Come to this session to see how we are using this combination of totally free and open source tools to power our platform-as-a-service, devshop.cloud, where we create and destroy DevShop servers on the fly.