Files
playbooks-retailor/roles/umami/docker/tasks/main.yml
T

99 lines
2.7 KiB
YAML

---
- name: Ensure required system packages are present
ansible.builtin.apt:
name:
- ca-certificates
- curl
- gnupg
- lsb-release
state: present
update_cache: true
cache_valid_time: 3600
- name: Ensure /etc/apt/keyrings directory exists
ansible.builtin.file:
path: /etc/apt/keyrings
state: directory
mode: "0755"
- name: Check if Docker GPG key already present
ansible.builtin.stat:
path: /etc/apt/keyrings/docker.asc
register: docker_gpg_key
- name: Download Docker's official GPG key
ansible.builtin.get_url:
url: https://download.docker.com/linux/ubuntu/gpg
dest: /etc/apt/keyrings/docker.asc
mode: "0644"
when: not docker_gpg_key.stat.exists
- name: Add Docker apt repository (deb822 format)
ansible.builtin.deb822_repository:
name: docker
types: [deb]
uris: "https://download.docker.com/linux/ubuntu"
suites: "{{ ansible_distribution_release }}"
components: [stable]
architectures: "{{ docker_apt_arch }}"
signed_by: /etc/apt/keyrings/docker.asc
state: present
register: docker_repo_added
- name: Update apt cache after adding Docker repo
ansible.builtin.apt:
update_cache: true
when: docker_repo_added.changed
- name: Install Docker Engine and plugins
ansible.builtin.apt:
name: "{{ docker_packages }}"
state: present
notify: restart docker
- name: Ensure docker service is started and enabled
ansible.builtin.systemd:
name: docker
state: "{{ docker_service_state }}"
enabled: "{{ docker_service_enabled }}"
- name: Ensure docker group exists
ansible.builtin.group:
name: docker
state: present
- name: Add user(s) to the docker group
ansible.builtin.user:
name: "{{ item }}"
groups: docker
append: true
loop: "{{ docker_users_to_add }}"
register: docker_group_added
- name: Notify about needing to re-login for group changes
ansible.builtin.debug:
msg: >-
User '{{ item.item }}' was added to the docker group. They will need to
log out and back in (or start a new SSH session) for this to take effect
without using sudo for docker commands.
loop: "{{ docker_group_added.results }}"
when: item.changed
- name: Verify Docker is installed and working
ansible.builtin.command: docker --version
register: docker_version_output
changed_when: false
- name: Show installed Docker version
ansible.builtin.debug:
msg: "{{ docker_version_output.stdout }}"
- name: Verify Docker Compose plugin is installed
ansible.builtin.command: docker compose version
register: docker_compose_version_output
changed_when: false
- name: Show installed Docker Compose version
ansible.builtin.debug:
msg: "{{ docker_compose_version_output.stdout }}"