Topic
Topic

A new way to Multisite: migrating Aegir to GitHub for WSU Vancouver

About 7 years ago, Washington State University, Vancouver set up their 11 websites on Aegir using a single Drupal 8 codebase. Thanks to Aegir, our client and friend Aaron Thorne was able to maintain all 11 websites by himself, despite not being a Drupal developer. Eventually, though, it was time for something new.

Last year, they contacted me to upgrade their sites and the hosting platform, but keep it inside their own private server infrastructure.

We took our time to figure out how we could design a new model for a multisite codebase, hosting, testing.

How can we implement reliable quality controls and automated delivery across all 11 sites? How can we make it as easy as possible for developers and system administrators to maintain? How can we leave WSU Vancouver with a system that they can use long term, so that they can update their codebase... forever?

The answer? A new self-contained system using DDEV, GitHub Actions, and clever usage of settings.php and Drush aliases.

I gotta be honest: as a developer, working this way has been a dream.

Aegir, Ansible, & Cloud APIs: How we use Drupal to automate our entire Platform-as-a-Service

Date
10 May 19

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:

  1. Create a cloud server instance with your choice of data center, OS, memory, etc. and automatically authorizing the Aegir user's SSH key. 
  2. Select the services you want installed, like Apache or MySQL preconfigured to work with Aegir.
  3. Add custom Ansible playbooks to each server.
  4. Add custom Ansible variables as YML into a simple text field. 
  5. Automatically discover the server's IP address and set DNS records for the server's hostname.
  6. Wait for SSH access via root.
  7. Run the chosen Ansible playbooks with the generated and manually entered Ansible variables.
  8. 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.

Provision 4.x: Developer Sneak Peak - Drupal NYC

Date
3 Jan 18
Tags

Aegir's back-end is getting an overhaul after 10 years of service. We're developing a brand new Symfony console based CLI for all of your website management needs: Provision 4.x.

With the power of Symfony console we've completely re-written Provision to be as easy and clear as possible, and flexible enough to work anywhere: cloud or workstation.

Can this new CLI become the defacto dev-test-production website management tool? Is it wrong to write DevOps tools in PHP? Can we keep Aegir going for another 10 years? 

 

Cloud Management with Drupal and Ansible - DrupalGovCon

Date
25 Jul 19
Tags

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:

  1. Create a cloud server instance with your choice of data center, OS, memory, etc. and automatically authorizing the Aegir user's SSH key. 
  2. Select the services you want installed, like Apache or MySQL preconfigured to work with Aegir.
  3. Add custom Ansible playbooks to each server.
  4. Add custom Ansible variables as YML into a simple text field. 
  5. Automatically discover the server's IP address and set DNS records for the server's hostname.
  6. Wait for SSH access via root.
  7. Run the chosen Ansible playbooks with the generated and manually entered Ansible variables.
  8. 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.

 

Slides available: https://docs.google.com/presentation/d/1JYtG7KPoJF4IipIb8j2YBS9Gtupgkrrh0rj4qBxn4Zs/edit#slide=id.p

Aegir on Docker: Faster Development, Better Testing, Easier Deployment.

In the last few days We've been able to get Aegir working in a docker container.

See http://github.com/aegir-project/dockerfiles for the code and https://hub.docker.com/r/aegir/hostmaster/ for the images.  There are example docker-compose.yml file in the codebase that you can use to launch aegir really quickly.

Bats of a Feather: HubDrop, DevShop, & Aegir at DrupalCon Austin

I'm on the plane headed to my 4th DrupalCon, and this one is looking like a good time.  

So much is happening this year. Drupal 8 is getting closer and closer to release, more and more Drupal businesses and services are being launched, and we continue to develop our Drupal products.

While my session on DevShop wasn't accepted, I am personally involved in a lot of BoF sessions this year.