From 49e60ce741fbb16e009eddbc73b1650ba8a69b45 Mon Sep 17 00:00:00 2001 From: Yusong Date: Fri, 8 May 2026 19:33:46 +0800 Subject: [PATCH 1/4] test(deps): bump from "ubuntu:24.04" to "ubuntu:26.04" --- .../ansitofu/extensions/molecule/.hosts/group_vars/all.yml | 2 +- whisperpine/ansitofu/extensions/molecule/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/whisperpine/ansitofu/extensions/molecule/.hosts/group_vars/all.yml b/whisperpine/ansitofu/extensions/molecule/.hosts/group_vars/all.yml index c0469ad..b90a03d 100644 --- a/whisperpine/ansitofu/extensions/molecule/.hosts/group_vars/all.yml +++ b/whisperpine/ansitofu/extensions/molecule/.hosts/group_vars/all.yml @@ -1,5 +1,5 @@ # --- used by tasks --- # -container_image: ubuntu-py:24.04 +container_image: ubuntu-py:26.04 molecule_scenario_name: "{{ lookup('env', 'MOLECULE_SCENARIO_NAME') }}" docker_network_name: "ansitofu-molecule-{{ molecule_scenario_name }}" diff --git a/whisperpine/ansitofu/extensions/molecule/Dockerfile b/whisperpine/ansitofu/extensions/molecule/Dockerfile index 6a30d6c..fb74dcb 100644 --- a/whisperpine/ansitofu/extensions/molecule/Dockerfile +++ b/whisperpine/ansitofu/extensions/molecule/Dockerfile @@ -2,7 +2,7 @@ # Ansible requires the target host to have python3 installed. # Therefore, we build a dedicated container image for test purpose. -FROM ubuntu:24.04 +FROM ubuntu:26.04 # Prevent interactive prompts during build. ENV DEBIAN_FRONTEND="noninteractive" From cbedb71e4d1dd5d606d5f04a675de538e73bb855 Mon Sep 17 00:00:00 2001 From: Yusong Date: Fri, 8 May 2026 21:36:01 +0800 Subject: [PATCH 2/4] fix(mongodb): install the "gnupg" package --- whisperpine/ansitofu/roles/consul/defaults/main.yml | 2 +- whisperpine/ansitofu/roles/consul/tasks/install.yml | 6 +----- whisperpine/ansitofu/roles/mongodb/defaults/main.yml | 1 + 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/whisperpine/ansitofu/roles/consul/defaults/main.yml b/whisperpine/ansitofu/roles/consul/defaults/main.yml index f2c97a9..74949e0 100644 --- a/whisperpine/ansitofu/roles/consul/defaults/main.yml +++ b/whisperpine/ansitofu/roles/consul/defaults/main.yml @@ -3,7 +3,7 @@ consul_user: "consul" consul_group: "consul" consul_dependencies: - - gnupg + - gnupg # required by the "ansible.builtin.apt_repository" module - ca-certificates # required by the "ansible.builtin.get_url" module - iproute2 # make the "hostvars[inventory_hostname].ansible_default_ipv4.address" fact be gathered diff --git a/whisperpine/ansitofu/roles/consul/tasks/install.yml b/whisperpine/ansitofu/roles/consul/tasks/install.yml index 5c588a8..df996d8 100644 --- a/whisperpine/ansitofu/roles/consul/tasks/install.yml +++ b/whisperpine/ansitofu/roles/consul/tasks/install.yml @@ -1,12 +1,8 @@ -- name: Update apt package cache - ansible.builtin.apt: - update_cache: true - cache_valid_time: 3600 - - name: Install required dependencies ansible.builtin.apt: name: "{{ consul_dependencies }}" state: present + update_cache: true no_log: true - name: Create consul group diff --git a/whisperpine/ansitofu/roles/mongodb/defaults/main.yml b/whisperpine/ansitofu/roles/mongodb/defaults/main.yml index 6ae2e29..8f9b73f 100644 --- a/whisperpine/ansitofu/roles/mongodb/defaults/main.yml +++ b/whisperpine/ansitofu/roles/mongodb/defaults/main.yml @@ -1,4 +1,5 @@ mongodb_dependencies: + - gnupg # required by the "ansible.builtin.apt_repository" module - ca-certificates # required by the "ansible.builtin.get_url" module - iproute2 # make the "hostvars[inventory_hostname].ansible_default_ipv4.address" fact be gathered - cron # required by the "ansible.builtin.cron" module From f2df391c77596caecf05bda585ad1ad64c0d405e Mon Sep 17 00:00:00 2001 From: Yusong Date: Fri, 8 May 2026 21:51:04 +0800 Subject: [PATCH 3/4] chore: rename the gpg key for "install_docker" and "consul" --- whisperpine/ansitofu/roles/consul/tasks/install.yml | 4 ++-- whisperpine/ansitofu/roles/install_docker/tasks/main.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/whisperpine/ansitofu/roles/consul/tasks/install.yml b/whisperpine/ansitofu/roles/consul/tasks/install.yml index df996d8..b34371f 100644 --- a/whisperpine/ansitofu/roles/consul/tasks/install.yml +++ b/whisperpine/ansitofu/roles/consul/tasks/install.yml @@ -21,12 +21,12 @@ - name: Download consul gpg key ansible.builtin.get_url: url: "{{ consul_gpg_url }}" - dest: /tmp/consul.asc + dest: /tmp/consul.gpg mode: "0644" - name: Convert consul gpg key to binary ansible.builtin.command: - cmd: gpg --dearmor -o "{{ consul_key_file }}" /tmp/consul.asc + cmd: gpg --dearmor -o "{{ consul_key_file }}" /tmp/consul.gpg creates: "{{ consul_key_file }}" - name: Add HashiCorp apt repository diff --git a/whisperpine/ansitofu/roles/install_docker/tasks/main.yml b/whisperpine/ansitofu/roles/install_docker/tasks/main.yml index a49dc3f..0c69389 100644 --- a/whisperpine/ansitofu/roles/install_docker/tasks/main.yml +++ b/whisperpine/ansitofu/roles/install_docker/tasks/main.yml @@ -8,12 +8,12 @@ - name: Download Docker GPG key ansible.builtin.get_url: url: "{{ install_docker_gpg_url }}" - dest: /tmp/docker.asc + dest: /tmp/docker.gpg mode: "0644" - name: Convert Docker GPG key to binary ansible.builtin.command: - cmd: gpg --dearmor -o "{{ install_docker_key_file }}" /tmp/docker.asc + cmd: gpg --dearmor -o "{{ install_docker_key_file }}" /tmp/docker.gpg creates: "{{ install_docker_key_file }}" - name: Add Docker repository From 18fe55ccf790b2ba0a50b736319acd0d3307773d Mon Sep 17 00:00:00 2001 From: Yusong Date: Sat, 9 May 2026 15:52:38 +0800 Subject: [PATCH 4/4] feat(infra): change the ec2 image from ubuntu 24.04 to 26.04 --- infra/aws-ec2/main.tf | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/infra/aws-ec2/main.tf b/infra/aws-ec2/main.tf index f5cae25..09f5611 100644 --- a/infra/aws-ec2/main.tf +++ b/infra/aws-ec2/main.tf @@ -30,8 +30,10 @@ data "aws_ami" "ubuntu_24_04" { # Find filters in Ubuntu docs: # https://documentation.ubuntu.com/aws/aws-how-to/instances/find-ubuntu-images/ filter { - name = "name" - values = ["ubuntu/images/hvm-ssd-gp3/ubuntu-noble-24.04-amd64-server-*"] + name = "name" + # Ubuntu 24.04: "ubuntu/images/hvm-ssd-gp3/ubuntu-noble-24.04-amd64-server-*". + # Ubuntu 26.04: "ubuntu/images/hvm-ssd-gp3/ubuntu-resolute-26.04-amd64-server-*". + values = ["ubuntu/images/hvm-ssd-gp3/ubuntu-resolute-26.04-amd64-server-*"] } }