Aegir on Backdrop: proof of concept
Contents
Moving from drush to bee
Following on my post about Aegir in 2025, I found that using Backdrop as a Drupal7 replacement works quite nicely. Drush, however, is another story. Drush does not support Backdrop (there is a sort of shim, but it’s not really a compatibility layer). A popular alternative to Drush on Backdrop is bee. It does work nicely as a CLI tool for Backdrop, and the usage is somewhat similar, but it is a completely different program. For example, Bee does not support drush aliases, and Aegir uses them a lot.
In other words, all the drush part of Aegir has to be rewritten. That’s a major hurdle.
That’s OK though. I had been toying with using Aegir as an Ansible inventory source. Jon had written aegir_ansible some time ago, and I had been using it as part of hosting_civicrm_ansible to do things like setup systemd timers (cron replacements) and running various scripts. Furthermore, in order to support Drupal 10, we had separated a lot of bits where drush would “bootstrap” a Drupal site in order to do things, making provision behave more like a regular CLI tool that doesn’t know what CMS it is running commands for. Most of the time, drush was doing an “exec” for other CLIs, such as drush, wp-cli or cv.
Example
I have a first proof of concept in place:
If we run bee hosting-queued
in a terminal, we can see the same output:
We can also run the same command on the shell:
|
|
I’ve slowly been committing to the github repos, and also created a composer project to create the Aegir platform, as well as install instructions: https://github.com/coopsymbiotic/aegir-on-backdrop/
There are many bits missing, however, notably how to install the Symbiotic Ansible scripts globally on the system. It’s documented in our ansible repo but it’s not yet easy to install.
Why Ansible?
I had previously been using Ansible to setup crons and timers, but also manage sftp access, deploy ssh keys.
- It has a good templating engine that is well documented and has plenty of copy-pastable examples online
- It’s easy to use from the command-line
- Many sysadmins are already familiar with it
- It has good error mangement
- It can run commands in batch, on multiple resources (ex: “launch DB upgrades on all sites in a given platform”)
- I was already using it and had already written code for integrating Ansible and Aegir.
- Now that Aegir is an inventory system, and Ansible is the backend stack, it will be easier to replace one or the other in the future.
- People can use their own Ansible scripts while still use Aegir as the frontend (and that includes adding modules to Aegir, which can add their own information to the inventory).
Like any tool, there are pros and cons, but I’m pretty comfortable with it so far.
Author Mathieu Lu
LastMod 2024-11-17