Running Aegir 3 on Ubuntu 20.04 and 22.04 with Drupal 9

Created on 20 December 2023, 6 months ago
Updated 13 May 2024, about 2 months ago

Problem/Motivation

There are no up to date, complete instructions anywhere we can find for running Aegir 3 on Ubuntu LTS (20.04/22.04). We have seen queries in the Aegir issue queues here on Drupal.org and elsewhere, but no coherent answer. We have recently made some updates to our Ansible roles to get Aegir 3 working with Drupal 9. For a while the only way to do so was with a remote web server, but with recent work (such as Drupal 7 core supporting PHP 8.1, and things like 🐛 Default value of field is incorrect Fixed ) to fix PHP incompability problems, the remote server is no longer needed. We'd like to report on our efforts for the community. If folks find this info useful, it could, presumably, ultimately be incorporated into the Aegir 3 docs.

TL;DR: Here is a working example repo. Follow the instructions in the README to get an operational Aegir 3 that can host D9 in about 15 minutes.

In particular, we use Ansible roles to install Aegir 3 from git source in order to:

  • Provide an alternative to the now-defunct Debian repository, and
  • Allow the user to specify particular git commits or branches of dependencies when testing or developing.

-- UPDATE: running D10 is now addressed by #3445832: Host Drupal 10 on Aegir 3 .

Steps to reproduce

N/A

Proposed resolution

Provide documentation pointing to the available resources and installation steps.

Remaining tasks

Our work builds on the brilliant Ansible roles previously developed (but now largely unmaintained) by Jeff Geerling . In order to get our Aegir 3 Ansible installation working on Ubuntu 20.04 and 22.04, we have had to do several things:

  1. Update our Ansible Aegir role to use Drupal core 7.99. - DONE.
  2. Fork and fix @geerlingguy's PHP version management role so it supports recent PHP versions (8.1 and 8.2, in particular). Although Aegir 3 itself is a D7 site, this step is needed for deploying the remote D9 web server. - DONE.
  3. In our existing fork of @geerlingguy's PHP installation role: ensure the configured PHP version is used to adjust the PHP CLI memory limit in the correct directory under /etc that matches the requested version of PHP. - DONE.
  4. Update our Ansible Aegir role to ensure the configured PHP version is incorporated into dependency package names, following the Ubuntu convention, so that the correct packages are installed. - DONE.
  5. Our installation makes use of the Aegir Skynet queue daemon. Default permissions for its startup script have changed in more recent Ubuntu, and we can no longer assume the script is executable at installation time; instead, we must explicitly ensure this is so. We were also using the wrong Ansible variable for the Skynet installation path. - DONE.
  6. To support Ansible 2.16.6 in Ubuntu 22.04, migrate our Ansible code from include (which is deprecated) to include_tasks, with associated fixes for become -- DONE and DONE, respectively.
  7. Ensure /var/aegir permissions are correct (the OS defaults change with Ubuntu 22.04) -- DONE.

User interface changes

None.

API changes

None.

Data model changes

None.

📌 Task
Status

Active

Version

3.0

Component

Install process

Created by

🇨🇦Canada llamech

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Production build 0.69.0 2024