Files
ansible/roles/docker/tasks/docker_rollout.yml
2025-10-23 17:58:41 +02:00

98 lines
3.0 KiB
YAML

---
- name: Make sure that the required packages for Docker are installed
remote_user: ansible
ansible.builtin.apt:
name: "{{ item }}"
state: present
update_cache: true
loop: "{{ docker_rollout_apt_requirements }}"
- name: Install docker and jsondiff for pip
remote_user: ansible
become: true
ansible.builtin.pip:
name: "{{ item }}"
state: present
extra_args: "--break-system-packages"
loop: "{{ docker_rollout_pip }}"
- name: Make sure we have a 'docker' group
ansible.builtin.group:
name: docker
state: present
- name: Make sure, there are no Docker Installations
remote_user: ansible
ansible.builtin.shell: for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
args:
executable: /bin/bash
register: docker_ensured_removed
changed_when: docker_ensured_removed.rc != 0
- name: Add keyrings folder to apt
remote_user: ansible
ansible.builtin.shell: sudo install -m 0755 -d /etc/apt/keyrings
args:
executable: /bin/bash
register: docker_keyrings
changed_when: docker_keyrings.rc != 0
- name: Add Dockers official GPG key
remote_user: ansible
ansible.builtin.shell: sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
args:
executable: /bin/bash
register: docker_keyring
changed_when: docker_keyring.rc != 0
- name: Add permissions to docker.asc in the keyrings folder
remote_user: ansible
ansible.builtin.shell: sudo chmod a+r /etc/apt/keyrings/docker.asc
args:
executable: /bin/bash
register: docker_perm
changed_when: docker_perm.rc != 0
- name: Verifying that we have the right key with the fingerprint
remote_user: ansible
ansible.builtin.shell: >
set -o pipefail && curl -fsSL https://download.docker.com/linux/debian/gpg
| gpg --dearmor | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
args:
executable: /bin/bash
register: docker_verification
changed_when: docker_verification.rc != 0
- name: Configure Docker for Debian Bookworm stable repo
remote_user: ansible
ansible.builtin.shell: >
set -o pipefail && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
args:
executable: /bin/bash
register: docker_configure_apt
changed_when: docker_configure_apt.rc != 0
- name: Updating apt packages
remote_user: ansible
ansible.builtin.apt:
update_cache: true
- name: Install Docker
remote_user: ansible
ansible.builtin.apt:
name: "{{ item }}"
state: present
update_cache: true
loop: "{{ docker_rollout_installation }}"
- name: Add users to Docker group
remote_user: ansible
ansible.builtin.user:
name: "{{ item.docker_group }}"
group: "docker"
append: true
loop:
- {docker_group: "ansible"}
notify: Docker_Restart_Handler