58 lines
1.6 KiB
YAML

---
- name: Install prerequisites
ansible.builtin.package:
name:
- ca-certificates
- curl
- gnupg
- lsb-release
state: present
- name: Ensure docker keyring dir
ansible.builtin.file:
path: /etc/apt/keyrings
state: directory
mode: "0755"
- name: Add Docker GPG (dearmored)
ansible.builtin.get_url:
url: https://download.docker.com/linux/ubuntu/gpg
dest: /etc/apt/keyrings/docker.gpg
mode: "0644"
register: docker_gpg_raw
- name: Dearmor Docker GPG if needed
ansible.builtin.shell: |
gpg --dearmor < /etc/apt/keyrings/docker.gpg > /etc/apt/keyrings/docker.gpg.tmp
mv /etc/apt/keyrings/docker.gpg.tmp /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
args:
creates: /etc/apt/keyrings/docker.gpg.tmp
when: docker_gpg_raw is changed
- name: Map architecture to repo arch
ansible.builtin.set_fact:
repo_arch: "{{ 'arm64' if ansible_architecture in ['aarch64','arm64'] else 'amd64' }}"
- name: Add Docker repo (correct arch + signed-by)
ansible.builtin.copy:
dest: /etc/apt/sources.list.d/docker.list
mode: "0644"
content: |
deb [arch={{ repo_arch }} signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable
- name: apt update
ansible.builtin.apt:
update_cache: true
- name: Install Docker Engine & Compose plugin
ansible.builtin.apt:
name:
- docker-ce
- docker-ce-cli
- containerd.io
- docker-buildx-plugin
- docker-compose-plugin
update_cache: true
state: present