Ansible role which installs Docker on Dubas Cloud's managed servers.
It is a wrapper around the official Docker installation instructions for Debian-based distributions. It is designed to be as simple as possible, while still being flexible enough to allow for customizations.
- Ansible 2.13 or higher.
- Debian
- bullseye, bookworm
- Ubuntu
- focal, jammy
Variables with a suffix _default are defined in vars and should not be changed. To override them, define the variable without the suffix in your playbook.
-
docker_version- Default:
latest - Description: Docker version to install. Does not apply when
docker_packages_defaultis overridden, so you will need to set this manually per package. - Type:
string - Example:
5:24.0.6-1~ubuntu.22.04~jammy
- Default:
-
docker_packages_absent- Default:
unset - Description: Packages to remove. If unset, the role will use
docker_packages_absent_default. - Type:
list - Example:
['containerd', 'docker-compose', 'docker.io', 'runc']
- Default:
-
docker_packages- Default:
unset - Description: Packages to install. If unset, the role will use
docker_packages_default. - Type:
list - Example:
['docker-ce', 'docker-ce-cli', 'containerd.io']
- Default:
-
docker_users- Default:
[] - Description: Users to add to the
dockergroup. - Type:
list - Example:
['ansible']
- Default:
-
docker_daemon_options-
Default:
{} -
Description: Options to add to the Docker daemon configuration.
-
Type:
dict -
Example:
docker_daemon_options: log-driver: json-file log-opts: max-size: 10m max-file: 3
-
-
docker_daemon_management_disabled- Default:
false - Description: Disable daemon management. Useful if you want to manage the daemon yourself.
- Type:
bool - Example:
true
- Default:
-
docker_service_management_disabled- Default:
false - Description: Disable service management. Useful if you want to manage the service yourself.
- Type:
bool - Example:
true
- Default:
-
docker_service_state- Default:
started - Description: State of the Docker service.
- Type:
string - Example:
stopped
- Default:
-
docker_service_enabled- Default:
true - Description: Enable the Docker service on boot.
- Type:
bool - Example:
false
- Default:
-
docker_repository- Default:
https://download.docker.com/linux - Description: Docker repository to use. Useful if you want to use a different trusted repository.
- Type:
string
- Default:
-
docker_architecture_mapping-
Default:
docker_architecture_mapping: aarch64: arm64 armv7l: armhf x86_64: amd64
-
Description: Mapping of Ansible architecture to Docker architecture.
-
Type:
dict
-
-
docker_distribution_mapping-
Default:
docker_distribution_mapping: Linux Mint: Ubuntu elementary OS: Ubuntu Pop!_OS: Ubuntu
-
Description: Mapping of Ansible distribution to Docker distribution. This is used to determine the correct repository to use for the Ubuntu-based distributions, but not limited to that.
-
Type:
dict
-
docker_apt_dependencies- Default:
['ca-certificates', 'curl', 'gnupg', 'lsb-release'] - Description: Dependencies listed in the Docker Engine installation instructions, excluding
lsb-releasewhich is needed for determining the distribution release. - Type:
list - Example:
['ca-certificates', 'curl', 'gnupg']
- Default:
docker_apt_key_url- Default:
{{ docker_repository }}/{{ docker_ansible_distribution | lower }}/gpg - Description: URL to the Docker GPG key.
- Type:
string - Example:
https://download.docker.com/linux/ubuntu/gpg
- Default:
docker_apt_key_directory- Default:
/etc/apt/keyrings - Description: Directory to store the Docker GPG key as listed in the Docker Engine installation instructions.
- Type:
string - Example:
/usr/share/keyrings
- Default:
docker_apt_key_file- Default:
docker.gpg - Description: Filename of the Docker GPG key as listed in the Docker Engine installation instructions.
- Type:
string - Example:
docker-archive-keyring.gpg
- Default:
docker_apt_repository_channel- Default:
stable - Description: Channel of the Docker repository to use.
- Type:
string - Example:
nightly
- Default:
docker_apt_repository_arch- Default:
{{ docker_architecture_mapping[ansible_architecture] | default(ansible_architecture) }} - Description: Architecture of the Docker repository to use.
- Type:
string - Example:
arm64
- Default:
docker_apt_repository- Default:
deb [arch={{ docker_apt_repository_arch }} signed-by={{ docker_apt_key_directory }}/{{ docker_apt_key_file }}] {{ docker_repository }}/{{ docker_ansible_distribution | lower }} {{ ansible_distribution_release }} {{ docker_apt_repository_channel }} - Description: Docker repository to use, you can override this to use a different trusted repository.
- Type:
string - Example:
deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu focal stable
- Default:
docker_apt_repository_file- Default:
docker - Description: Filename of the Docker repository as listed in the Docker Engine installation instructions.
- Type:
string - Example:
docker-ce
- Default:
None.
Create a requirements.yml file in your project:
---
roles:
- name: dubas.docker
src: https://github.com/dubas-pro/ansible-role-docker.git
version: 1.0.0Install the role:
ansible-galaxy install --role-file requirements.ymlCreate a playbook playbook.yml:
---
- name: Example
hosts: all
become: true
roles:
- role: dubas.dockerThis project is licensed under the terms of the EUPL-1.2 or later.