Files
ansible-shared/virt/docker/tasks/Debian/Debian_13.yml

205 lines
7.3 KiB
YAML

---
# Add some prerequisites
- name: Installing Docker Prerequisites on {{ ansible_distribution }} {{ ansible_distribution_major_version }}
apt:
update_cache: yes
state: present
name:
- apt-transport-https
- ca-certificates
- gnupg2
#- software-properties-common # not on debian 13
# Add APT GPG key
# NOTE apt_key is deprecated in Debian 13, use get_url and store the key in /etc/apt/trusted.gpg.d/*
- name: Adding Docker APT repository key for {{ ansible_distribution }} {{ ansible_distribution_major_version }}
ansible.builtin.get_url:
url: "https://download.docker.com/linux/debian/gpg"
dest: /etc/apt/trusted.gpg.d/docker.asc
mode: '0644'
force: true
# Add apt repository
- name: Adding Docker APT repository for {{ ansible_distribution }} {{ ansible_distribution_major_version }}
apt_repository:
filename: docker
state: present
repo: 'deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/docker.asc] https://download.docker.com/linux/debian trixie stable'
# Apt update
- name: Updating apt cache
apt:
update_cache: yes
# Get exact apt package docker version based on var docker_version
- name: Finding APT Docker Version String for {{ docker_version }}
shell: "apt-cache madison docker-ce | awk '{ print $3 }' | grep '{{ docker_version }}' | sort | tail -n1"
register: docker_version_output
# Setting docker version string
- name: Set docker_version_string variable to {{ docker_version_output.stdout }}
set_fact:
docker_version_string: "{{ docker_version_output.stdout }}"
# Install docker and docker-compose-plugin
# note that with the version in here it will upgrade docker to this version, it may fail if a newer version is installed
- name: Installing Docker
apt:
update_cache: yes
state: present
# Tell apt to NOT start docker after install
policy_rc_d: 101
name:
- docker-ce={{ docker_version_string }}
- docker-ce-cli={{ docker_version_string }}
- containerd.io
- docker-buildx-plugin
- docker-compose-plugin
# Configure docker /etc/docker/daemon.js (notice docker has NOT started yet because of policy_rc_d)
- name: Creating /etc/docker
file:
path: /etc/docker
owner: root
group: root
state: directory
- name: Templating /etc/daemon.json
template:
src: daemon.json.j2
dest: /etc/docker/daemon.json
owner: root
group: root
mode: 0644
backup: yes
notify: restart docker
# Start docker now that we have copied our custom /etc/docker/daemon.json
- name: Starting docker daemon
service:
name: docker
enabled: yes
state: started
# Install python-docker (required for ansible docker modules)
- name: Installing python3-docker for {{ ansible_distribution }} {{ ansible_distribution_major_version }}
apt:
update_cache: yes
state: present
name: python3-docker
# # Add docker apt GPG key and repo (creates to /etc/apt/sources.list.d/download_docker_com_linux_debian.list )
# - name: Adding Docker apt repository key
# apt_key: url='https://download.docker.com/linux/debian/gpg' state=present
# when: ansible_distribution == 'Debian'
# - name: Adding Docker apt repository key
# apt_key: url='https://download.docker.com/linux/ubuntu/gpg' state=present
# when: ansible_distribution == 'Ubuntu'
# - name: Adding Debian 9 Docker apt repository sources
# apt_repository: repo='deb [arch=amd64] https://download.docker.com/linux/debian stretch stable' state=present
# when: ansible_os_family == "Debian" and ansible_distribution_major_version == "9"
# - name: Adding Debian 10 Docker apt repository sources
# apt_repository: repo='deb [arch=amd64] https://download.docker.com/linux/debian buster stable' state=present
# when: ansible_os_family == "Debian" and ansible_distribution_major_version == "10"
# - name: Adding Debian 11 Docker apt repository sources
# apt_repository: repo='deb [arch=amd64] https://download.docker.com/linux/debian bullseye stable' state=present
# when: ansible_os_family == "Debian" and ansible_distribution_major_version == "11"
# - name: Adding Debian 12 Docker apt repository sources
# apt_repository: repo='deb [arch=amd64] https://download.docker.com/linux/debian bookworm stable' state=present
# when: ansible_os_family == "Debian" and ansible_distribution_major_version == "12"
# - name: Adding Docker apt repository sources for Ubuntu 18
# apt_repository: repo='deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable' state=present
# when: ansible_os_family == "Debian" and ansible_distribution_major_version == "18"
# - name: Adding Docker apt repository sources for Ubuntu 20
# apt_repository: repo='deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable' state=present
# when: ansible_os_family == "Debian" and ansible_distribution_major_version == "20"
# - name: Adding Docker apt repository sources for Ubuntu 22
# apt_repository: repo='deb [arch=amd64] https://download.docker.com/linux/ubuntu jammy stable' state=present
# when: ansible_os_family == "Debian" and ansible_distribution_major_version == "22"
# - name: Adding Docker apt repository sources for Ubuntu 24
# apt_repository: repo='deb [arch=amd64] https://download.docker.com/linux/ubuntu noble stable' state=present
# when: ansible_os_family == "Debian" and ansible_distribution_major_version == "24"
# - name: Update apt cache
# apt:
# update_cache: yes
# - name: find docker version string
# shell: "apt-cache madison docker-ce | awk '{ print $3 }' | grep '{{ docker_version }}' | sort | tail -n1"
# register: docker_version_output
# - name: set docker_version_string variable
# set_fact:
# docker_version_string: "{{ docker_version_output.stdout }}"
# # Install docker and docker-compose-plugin
# # note that with the version in here it will upgrade docker to this version, it may fail if a newer version is installed
# - name: Installing Docker
# apt:
# update_cache: yes
# state: present
# # Tell apt to NOT start docker after install
# policy_rc_d: 101
# name:
# - docker-ce={{ docker_version_string }}
# - docker-ce-cli={{ docker_version_string }}
# - containerd.io
# - docker-buildx-plugin
# - docker-compose-plugin
# # Configure docker /etc/docker/daemon.js (notice docker has NOT started yet because of policy_rc_d)
# # - name: Create /etc/docker
# # file:
# # path: /etc/docker
# # owner: root
# # group: root
# # state: directory
# # - name: Copying daemon.json
# # template:
# # src: daemon.json.j2
# # dest: /etc/docker/daemon.json
# # owner: root
# # group: root
# # mode: 0644
# # backup: yes
# # notify: restart docker
# # Start docker now that we have copied our custom /etc/docker/daemon.json
# - name: Starting docker daemon
# service:
# name: docker
# enabled: yes
# state: started
# # # Install python-docker (required for ansible docker modules)
# # - name: Installing python-docker for Ubuntu 18
# # apt:
# # update_cache: yes
# # state: present
# # name: python-docker
# # when: ansible_os_family == "Debian" and ansible_distribution_major_version == "18"
# # - name: Installing python3-docker for Ubuntu 20+
# # apt:
# # update_cache: yes
# # state: present
# # name: python3-docker
# # when: ansible_os_family == "Debian" and ansible_distribution_major_version >= "20"