205 lines
7.3 KiB
YAML
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"
|