From d1758b692e517433e44f0be8c846373efb979f5f Mon Sep 17 00:00:00 2001 From: alessandrovitali Date: Tue, 4 Aug 2026 19:26:33 +0200 Subject: [PATCH] refactor: docker role --- roles/docker/tasks/main.yml | 60 +++++++++++++++++++++++++++++++++---- 1 file changed, 55 insertions(+), 5 deletions(-) diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml index 3449ae3..1dd5ee0 100644 --- a/roles/docker/tasks/main.yml +++ b/roles/docker/tasks/main.yml @@ -1,17 +1,60 @@ --- -- name: Install necessary Docker packages +- name: Install Docker prerequisites ansible.builtin.apt: name: - - docker.io - - docker-compose + - ca-certificates + - curl + state: present + update_cache: true + become: true + +- name: Ensure APT keyrings directory exists + ansible.builtin.file: + path: /etc/apt/keyrings + state: directory + mode: "0755" + become: true + +- name: Download Docker official GPG key + ansible.builtin.get_url: + url: "https://download.docker.com/linux/{{ ansible_distribution | lower }}/gpg" + dest: /etc/apt/keyrings/docker.asc + mode: "0644" + become: true + +- name: Add Docker official APT repository + ansible.builtin.apt_repository: + repo: >- + deb [arch={{ 'amd64' if ansible_architecture == 'x86_64' else 'arm64' if ansible_architecture == 'aarch64' else ansible_architecture }} + signed-by=/etc/apt/keyrings/docker.asc] + https://download.docker.com/linux/{{ ansible_distribution | lower }} + {{ ansible_distribution_release }} + stable + state: present + filename: docker + update_cache: true + become: true + +- name: Install modern Docker CE packages + ansible.builtin.apt: + name: + - docker-ce + - docker-ce-cli + - containerd.io + - docker-buildx-plugin + - docker-compose-plugin state: present become: true -- name: Ensure Docker service is running +- name: Ensure Docker services are running and enabled ansible.builtin.service: - name: docker + name: "{{ item }}" state: started enabled: true + loop: + - docker + - containerd + become: true - name: Create docker user for container execution ansible.builtin.user: @@ -24,6 +67,13 @@ create_home: false become: true +- name: Add deployment user to docker group + ansible.builtin.user: + name: deployment + groups: docker + append: true + become: true + - name: Create target for docker compose ansible.builtin.file: path: /opt/docker