feat: Migrate roles to Podman

This commit is contained in:
Tobias J. Endres 2025-09-02 18:34:05 +02:00
parent b227385ae5
commit 5b142f5c0b
5 changed files with 40 additions and 87 deletions

View File

@ -1,66 +0,0 @@
---
- name: Ensure all previously installed docker packages are uninstalled
apt:
name:
- docker.io
- docker-compose
- docker-compose-v2
- docker-doc
- podman-docker
state: absent
purge: true
- name: Install dependencies
apt:
name:
- ca-certificates
- curl
state: present
- name: Add Docker's official GPG key
shell: |
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
args:
creates: /etc/apt/keyrings/docker.gpg
- name: Add Docker repository
become: true
apt_repository:
repo: "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable"
state: present
update_cache: true
- name: Read docker sources list
slurp:
src: /etc/apt/sources.list.d/download_docker_com_linux_ubuntu.list
register: docker_sources_list
- name: Display docker sources list
debug:
var: docker_sources_list.content | b64decode
- name: Install Docker and related components
become: true
apt:
name:
- docker-ce
- docker-ce-cli
- containerd.io
- docker-buildx-plugin
- docker-compose-plugin
state: present
- name: Add user to the docker group
user:
name: "{{ ansible_user }}"
groups: docker
append: true
when: ansible_user != "root"
- name: Start and enable Docker service
service:
name: docker
state: started
enabled: true

View File

@ -14,20 +14,20 @@
mode: '0644'
become: true
- name: Deploy Gitea container using Docker Compose V2
community.docker.docker_compose_v2:
project_src: "{{ gitea_data_path }}"
state: present
- name: Deploy Gitea container using Podman Compose
ansible.builtin.shell:
cmd: podman-compose -f {{ gitea_data_path }}/docker-compose.yml up -d
chdir: "{{ gitea_data_path }}"
become: true
- name: Ensure Gitea container is running
community.docker.docker_container_info:
name: "{{ gitea_container_name }}"
register: container_info
ansible.builtin.shell:
cmd: "podman ps -a --filter name={{ gitea_container_name }} --format '{{.Status}}'"
register: gitea_container_status
changed_when: false
- name: Restart Gitea container if not running
community.docker.docker_container:
name: "{{ gitea_container_name }}"
state: started
restart: true
when: not container_info.container.State.Running
ansible.builtin.shell:
cmd: "podman restart {{ gitea_container_name }}"
when: "'Exited' in gitea_container_status.stdout"
become: true

View File

@ -77,13 +77,17 @@
become: true
- name: Deploy Containers
community.docker.docker_compose_v2:
project_src: /opt/network
state: present
restart: true
ansible.builtin.shell:
cmd: podman-compose -f /opt/network/docker-compose.yml up -d
chdir: /opt/network
become: true
- name: Ensure Nginx container is running
community.docker.docker_container_info:
name: "{{ nginx_proxy_manager_container_name }}"
register: nginx_container_info
ansible.builtin.shell:
cmd: "podman ps -a --filter name={{ nginx_proxy_manager_container_name }} --format '{{.Status}}'"
register: nginx_container_status
changed_when: false
- name: Display Nginx container status
debug:
var: nginx_container_status.stdout

View File

@ -4,7 +4,22 @@
name: podman
state: present
- name: Install python3-pip
ansible.builtin.apt:
name: python3-pip
state: present
- name: Install podman-compose
ansible.builtin.pip:
name: podman-compose
state: present
- name: Install podman-docker (optional, for docker command alias)
ansible.builtin.apt:
name: podman-docker
state: present
- name: Install containers.podman collection
ansible.builtin.command: ansible-galaxy collection install containers.podman
args:
creates: ~/.ansible/collections/ansible_collections/containers/podman

View File

@ -1,6 +1,6 @@
---
- name: Run PostgreSQL Docker container
docker_container:
- name: Run PostgreSQL Podman container
containers.podman.podman_container:
name: "{{ postgres_container_name }}"
image: postgres
state: started