Files
jeet fa67a195ab Fix Docker install for Ubuntu 22.04+ and ARM64 OCI instances
- Replace deprecated apt_key/apt_repository with modern keyrings approach (signed-by)
- Use ansible_distribution_release instead of hardcoded focal
- Auto-detect arch: arm64 for aarch64 (Ampere), amd64 for x86
- Replace docker-compose (v1, EOL) with docker-compose-plugin (v2)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 22:21:24 -04:00

93 lines
2.7 KiB
YAML

- name: Install Docker on Debian, Ubuntu, or Raspbian
hosts: Docker
become: true
gather_facts: true
tasks:
- name: Install required system packages
apt:
name:
- apt-transport-https
- ca-certificates
- curl
- software-properties-common
- virtualenv
state: latest
update_cache: true
when: ansible_os_family == "Debian"
- name: Create apt keyrings directory
ansible.builtin.file:
path: /etc/apt/keyrings
state: directory
mode: '0755'
when: ansible_os_family == "Debian"
- name: Download Docker GPG key
ansible.builtin.get_url:
url: https://download.docker.com/linux/ubuntu/gpg
dest: /etc/apt/keyrings/docker.asc
mode: '0644'
force: false
when: ansible_os_family == "Debian"
- name: Add Docker Repository
ansible.builtin.apt_repository:
repo: "deb [arch={{ 'arm64' if ansible_architecture == 'aarch64' else 'amd64' }} signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable"
state: present
filename: docker
when: ansible_os_family == "Debian"
- name: Update apt and install Docker packages
ansible.builtin.apt:
name:
- docker-ce
- docker-ce-cli
- containerd.io
- docker-compose-plugin
state: latest
update_cache: true
when: ansible_os_family == "Debian"
- name: Install Docker dependencies for RedHat/CentOS
package:
name:
- yum-utils
- device-mapper-persistent-data
- lvm2
state: present
when: ansible_os_family == "RedHat"
- name: Add Docker repository for RedHat/CentOS
yum_repository:
name: docker-ce-stable
description: Docker CE Stable - $basearch
baseurl: https://download.docker.com/linux/centos/7/$basearch/stable
enabled: yes
gpgcheck: yes
gpgkey: https://download.docker.com/linux/centos/gpg
when: ansible_os_family == "RedHat"
- name: Install Docker for RedHat/CentOS
package:
name: docker-ce
state: present
when: ansible_os_family == "RedHat"
- name: Add authenticated user to Docker group
user:
name: "{{ ansible_user }}"
groups: docker
append: yes
when: ansible_os_family == "Debian" or ansible_os_family == "RedHat"
- name: Ensure Docker service is enabled and started
systemd:
name: docker
enabled: yes
state: started
- name: Reset connection to refresh user group membership
meta: reset_connection