Skip to content

ansible: prepare runner provisioning for Ubuntu bare-metal hosts#223

Merged
theihor merged 1 commit into
mainfrom
ubuntu-bare-metal-runners
Jun 2, 2026
Merged

ansible: prepare runner provisioning for Ubuntu bare-metal hosts#223
theihor merged 1 commit into
mainfrom
ubuntu-bare-metal-runners

Conversation

@theihor

@theihor theihor commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Add support for provisioning Ubuntu 24.04 (Noble) bare-metal AWS hosts as runners, alongside the existing Amazon Linux 2 (RedHat family) and s390x LinuxONE (Debian family) hosts, without changing behavior for either.

  • base: start (and enable) the docker service on Debian hosts, mirroring the RedHat path. On Ubuntu cloud-init first boot docker.io may not be up yet when qemu-user-static / the runner units need it; idempotent on s390x.
  • base/runner: make the apt installs resilient to first-boot dpkg-lock contention from apt-daily/unattended-upgrades (lock_timeout + retries).
  • runner: derive runner names from the EC2 instance ID on all EC2 hosts (system_vendor == "Amazon EC2"), not just Amazon Linux, so Ubuntu EC2 hosts get stable, collision-free names. Non-EC2 hosts (s390x) still skip the metadata lookup; the retained Amazon-distribution clause keeps AL2 behavior identical.
  • add ansible/requirements.yml (community.docker, amazon.aws) and document it, for the manual operator workflow / ansible-core installs.
  • fix stale runner_libbpf_ci_repo_branch defaults (master -> main).

Add support for provisioning Ubuntu 24.04 (Noble) bare-metal AWS hosts as
runners, alongside the existing Amazon Linux 2 (RedHat family) and s390x
LinuxONE (Debian family) hosts, without changing behavior for either.

- base: start (and enable) the docker service on Debian hosts, mirroring
  the RedHat path. On Ubuntu cloud-init first boot docker.io may not be up
  yet when qemu-user-static / the runner units need it; idempotent on s390x.
- base/runner: make the apt installs resilient to first-boot dpkg-lock
  contention from apt-daily/unattended-upgrades (lock_timeout + retries).
- runner: derive runner names from the EC2 instance ID on all EC2 hosts
  (system_vendor == "Amazon EC2"), not just Amazon Linux, so Ubuntu EC2
  hosts get stable, collision-free names. Non-EC2 hosts (s390x) still skip
  the metadata lookup; the retained Amazon-distribution clause keeps AL2
  behavior identical.
- add ansible/requirements.yml (community.docker, amazon.aws) and document
  it, for the manual operator workflow / ansible-core installs.
- fix stale runner_libbpf_ci_repo_branch defaults (master -> main).

Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev>
@theihor theihor merged commit ad11ee3 into main Jun 2, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant