From 28827dd5d34e1e31bf8014154ceb3f239f708806 Mon Sep 17 00:00:00 2001 From: Gregory Ballantine Date: Mon, 28 Sep 2026 09:12:54 -0400 Subject: [PATCH] Switching CI runners to podman --- playbooks/docker.yml | 4 +-- playbooks/podman.yml | 59 ++++++++++++++++++++++++++++++++++++++++++++ playbooks/site.yml | 2 ++ 3 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 playbooks/podman.yml diff --git a/playbooks/docker.yml b/playbooks/docker.yml index 82f83ec..42b9850 100644 --- a/playbooks/docker.yml +++ b/playbooks/docker.yml @@ -1,9 +1,7 @@ --- - name: Install and configure Docker - hosts: - - ci_servers - - ci_runners + hosts: ci_servers become: true roles: diff --git a/playbooks/podman.yml b/playbooks/podman.yml new file mode 100644 index 0000000..b1e0d72 --- /dev/null +++ b/playbooks/podman.yml @@ -0,0 +1,59 @@ +--- + +- name: Install and configure Podman + hosts: ci_runners + become: true + + vars: + # Packages common to both Debian and RHEL families + podman_base_packages: + - podman + - podman-docker + + # Debian/Ubuntu specific packages + podman_debian_packages: + - podman-compose + + # RHEL-family specific packages (adjust or add epel-release if compose is needed) + podman_rhel_packages: [] + + # Set to true if you need the Docker-compatible API socket (e.g., for Woodpecker CI) + podman_enable_socket: true + + tasks: + - name: Gather distribution-specific facts + ansible.builtin.setup: + gather_subset: + - "!all" + - distribution + - os_family + + - name: Install Podman packages on Debian/Ubuntu + ansible.builtin.apt: + name: "{{ podman_base_packages + podman_debian_packages }}" + state: present + update_cache: true + cache_valid_time: 3600 + when: ansible_facts['os_family'] == 'Debian' + + - name: Install Podman packages on RHEL/Rocky/AlmaLinux/CentOS + ansible.builtin.dnf: + name: "{{ podman_base_packages + podman_rhel_packages }}" + state: present + when: ansible_facts['os_family'] == 'RedHat' + + - name: Enable and start system-wide Podman socket + ansible.builtin.systemd: + name: podman.socket + state: started + enabled: true + when: podman_enable_socket + + - name: Verify Podman installation + ansible.builtin.command: podman --version + register: podman_version_output + changed_when: false + + - name: Show installed Podman version + ansible.builtin.debug: + msg: "Installed {{ podman_version_output.stdout }}" diff --git a/playbooks/site.yml b/playbooks/site.yml index 8512457..3d94dc2 100644 --- a/playbooks/site.yml +++ b/playbooks/site.yml @@ -12,6 +12,8 @@ import_playbook: munin.yml - name: Gitea import_playbook: gitea.yml +- name: Podman + import_playbook: podman.yml - name: Docker import_playbook: docker.yml - name: Apache