GRM-4: refactor: consolidate systemd checks and deduplicate role structure

This commit is contained in:
Emil Simeonov
2026-06-18 03:36:19 +02:00
parent b3838eb180
commit 0cea9b9490
13 changed files with 262 additions and 47 deletions
+52 -17
View File
@@ -1,7 +1,23 @@
---
- name: Check if Docker is already installed
ansible.builtin.command: docker --version
register: docker_check
changed_when: false
failed_when: false
- name: Install Docker (Debian/Ubuntu)
when: ansible_facts['os_family'] == 'Debian'
when:
- ansible_facts['os_family'] == 'Debian'
- docker_check.rc != 0
block:
- name: Remove old Docker apt repository files
ansible.builtin.file:
path: "{{ item }}"
state: absent
loop:
- /etc/apt/sources.list.d/docker.list
- /etc/apt/keyrings/docker.gpg
- name: Install prerequisite packages
ansible.builtin.apt:
name:
@@ -13,21 +29,20 @@
update_cache: true
- name: Add Docker GPG key
ansible.builtin.apt_key:
url: https://download.docker.com/linux/{{ ansible_distribution | lower }}/gpg
keyring: /etc/apt/keyrings/docker.gpg
when: ansible_distribution != 'Ubuntu' or ansible_distribution_major_version | int >= 22
ansible.builtin.get_url:
url: https://download.docker.com/linux/{{ ansible_facts['distribution'] | lower }}/gpg
dest: "{{ docker_gpg_key_path }}"
mode: "0644"
- name: Add Docker repository
ansible.builtin.apt_repository:
repo: >-
deb [arch={{ ansible_architecture }}
signed-by=/etc/apt/keyrings/docker.gpg]
https://download.docker.com/linux/{{ ansible_distribution | lower }}
{{ ansible_distribution_release }} stable
filename: docker
ansible.builtin.deb822_repository:
name: docker
types: deb
uris: https://download.docker.com/linux/{{ ansible_facts['distribution'] | lower }}
suites: "{{ ansible_facts['distribution_release'] }}"
components: stable
signed_by: "{{ docker_gpg_key_path }}"
state: present
update_cache: true
- name: Install Docker packages
ansible.builtin.apt:
@@ -37,9 +52,12 @@
- containerd.io
- docker-compose-plugin
state: present
update_cache: true
- name: Install Docker (Arch Linux)
when: ansible_facts['os_family'] == 'Archlinux'
when:
- ansible_facts['os_family'] == 'Archlinux'
- docker_check.rc != 0
block:
- name: Install Docker packages
community.general.pacman:
@@ -49,15 +67,32 @@
state: present
update_cache: true
- name: Ensure Docker service is running
- name: Ensure Docker service is running (systemd)
ansible.builtin.systemd:
name: docker
state: started
enabled: true
when: systemd_available.stat.exists
- name: Start Docker daemon manually (no systemd)
ansible.builtin.shell: nohup dockerd > /var/log/dockerd.log 2>&1 &
when:
- not systemd_available.stat.exists
- docker_check.rc != 0
changed_when: true
- name: Wait for Docker daemon to be ready
ansible.builtin.command: docker version
register: docker_ready
until: docker_ready.rc == 0
retries: 10
delay: 2
changed_when: false
when: not systemd_available.stat.exists
- name: Add user to docker group
ansible.builtin.user:
name: "{{ ansible_user | default(ansible_user_id) }}"
name: "{{ ansible_user | default(ansible_facts['user_id']) }}"
groups: docker
append: true
when: ansible_user is defined or ansible_user_id is defined
when: ansible_user is defined or ansible_facts['user_id'] is defined