feat: initial installation role for docker

This commit is contained in:
2026-05-24 17:13:31 +02:00
commit 8d136caa99
8 changed files with 146 additions and 0 deletions

55
tasks/debian.yml Normal file
View File

@@ -0,0 +1,55 @@
---
- name: Install Docker prerequisites
ansible.builtin.apt:
name:
- ca-certificates
- curl
state: present
update_cache: true
become: true
- name: Create Docker keyring directory
ansible.builtin.file:
path: /etc/apt/keyrings
state: directory
mode: '0755'
become: true
- name: Download Docker GPG key
ansible.builtin.shell:
cmd: >
curl -fsSL https://download.docker.com/linux/{{ ansible_distribution | lower }}/gpg
| gpg --dearmor -o /etc/apt/keyrings/docker.gpg
creates: /etc/apt/keyrings/docker.gpg
become: true
- name: Set Docker GPG key permissions
ansible.builtin.file:
path: /etc/apt/keyrings/docker.gpg
mode: '0644'
become: true
- name: Add Docker apt repository
ansible.builtin.copy:
content: >
deb [arch={{ ansible_architecture | replace('x86_64', 'amd64') | replace('aarch64', 'arm64') }}
signed-by=/etc/apt/keyrings/docker.gpg]
https://download.docker.com/linux/{{ ansible_distribution | lower }}
{{ ansible_distribution_release }} stable
dest: /etc/apt/sources.list.d/docker.list
mode: '0644'
become: true
- name: Install Docker packages
ansible.builtin.apt:
name: "{{ docker_packages }}"
state: present
update_cache: true
become: true
- name: Enable and start Docker service
ansible.builtin.systemd:
name: docker
enabled: "{{ docker_service_enabled }}"
state: "{{ docker_service_state }}"
become: true

9
tasks/main.yml Normal file
View File

@@ -0,0 +1,9 @@
---
- name: Assert supported OS family
ansible.builtin.assert:
that:
- ansible_os_family in ['Debian', 'RedHat']
fail_msg: "Unsupported OS family: {{ ansible_os_family }}"
- name: Include OS-specific installation tasks
ansible.builtin.include_tasks: "{{ ansible_os_family | lower }}.yml"

27
tasks/redhat.yml Normal file
View File

@@ -0,0 +1,27 @@
---
- name: Install Docker prerequisites
ansible.builtin.dnf:
name:
- dnf-plugins-core
state: present
become: true
- name: Add Docker yum repository
ansible.builtin.get_url:
url: https://download.docker.com/linux/centos/docker-ce.repo
dest: /etc/yum.repos.d/docker-ce.repo
mode: '0644'
become: true
- name: Install Docker packages
ansible.builtin.dnf:
name: "{{ docker_packages }}"
state: present
become: true
- name: Enable and start Docker service
ansible.builtin.systemd:
name: docker
enabled: "{{ docker_service_enabled }}"
state: "{{ docker_service_state }}"
become: true