mirror of
https://github.com/KevinMidboe/playbooks-retailor.git
synced 2026-09-07 13:32:06 +00:00
99 lines
2.7 KiB
YAML
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 }}"
|