Merge pull request #365 from j-koehler/i205-install-docker-packages-explicitly

#205 - install Docker packages explicitly
This commit is contained in:
Jeff Geerling 2022-08-01 10:01:25 -05:00 committed by GitHub
commit 11345ab410
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 23 additions and 14 deletions

View File

@ -43,11 +43,11 @@ jobs:
distro: distro:
- rockylinux8 - rockylinux8
- centos7 - centos7
- ubuntu2204
- ubuntu2004 - ubuntu2004
- ubuntu1804 - ubuntu1804
- debian11 - debian11
- debian10 - debian10
- debian9
- fedora34 - fedora34
steps: steps:

View File

@ -14,10 +14,16 @@ Available variables are listed below, along with default values (see `defaults/m
# Edition can be one of: 'ce' (Community Edition) or 'ee' (Enterprise Edition). # Edition can be one of: 'ce' (Community Edition) or 'ee' (Enterprise Edition).
docker_edition: 'ce' docker_edition: 'ce'
docker_package: "docker-{{ docker_edition }}" docker_packages:
docker_package_state: present - "docker-{{ docker_edition }}"
- "docker-{{ docker_edition }}-cli"
- "docker-{{ docker_edition }}-rootless-extras"
docker_packages_state: present
The `docker_edition` should be either `ce` (Community Edition) or `ee` (Enterprise Edition). You can also specify a specific version of Docker to install using the distribution-specific format: Red Hat/CentOS: `docker-{{ docker_edition }}-<VERSION>`; Debian/Ubuntu: `docker-{{ docker_edition }}=<VERSION>`. The `docker_edition` should be either `ce` (Community Edition) or `ee` (Enterprise Edition).
You can also specify a specific version of Docker to install using the distribution-specific format:
Red Hat/CentOS: `docker-{{ docker_edition }}-<VERSION>` (Note: you have to add this to all packages);
Debian/Ubuntu: `docker-{{ docker_edition }}=<VERSION>` (Note: you have to add this to all packages).
You can control whether the package is installed, uninstalled, or at the latest version by setting `docker_package_state` to `present`, `absent`, or `latest`, respectively. Note that the Docker daemon will be automatically restarted if the Docker package is updated. This is a side effect of flushing all handlers (running any of the handlers that have been notified by this and any other role up to this point in the play). You can control whether the package is installed, uninstalled, or at the latest version by setting `docker_package_state` to `present`, `absent`, or `latest`, respectively. Note that the Docker daemon will be automatically restarted if the Docker package is updated. This is a side effect of flushing all handlers (running any of the handlers that have been notified by this and any other role up to this point in the play).

View File

@ -1,8 +1,12 @@
--- ---
# Edition can be one of: 'ce' (Community Edition) or 'ee' (Enterprise Edition). # Edition can be one of: 'ce' (Community Edition) or 'ee' (Enterprise Edition).
docker_edition: 'ce' docker_edition: 'ce'
docker_package: "docker-{{ docker_edition }}" docker_packages:
docker_package_state: present - "docker-{{ docker_edition }}"
- "docker-{{ docker_edition }}-cli"
- "docker-{{ docker_edition }}-rootless-extras"
- "containerd.io"
docker_packages_state: present
# Service options. # Service options.
docker_service_manage: true docker_service_manage: true

View File

@ -18,14 +18,13 @@ galaxy_info:
- all - all
- name: Debian - name: Debian
versions: versions:
- stretch
- buster - buster
- bullseye - bullseye
- name: Ubuntu - name: Ubuntu
versions: versions:
- xenial
- bionic - bionic
- focal - focal
- jammy
galaxy_tags: galaxy_tags:
- web - web
- system - system

View File

@ -5,18 +5,18 @@
- include_tasks: setup-Debian.yml - include_tasks: setup-Debian.yml
when: ansible_os_family == 'Debian' when: ansible_os_family == 'Debian'
- name: Install Docker. - name: Install Docker packages.
package: package:
name: "{{ docker_package }}" name: "{{ docker_packages }}"
state: "{{ docker_package_state }}" state: "{{ docker_packages_state }}"
notify: restart docker notify: restart docker
ignore_errors: "{{ ansible_check_mode }}" ignore_errors: "{{ ansible_check_mode }}"
when: "ansible_version.full is version_compare('2.12', '<') or ansible_os_family not in ['RedHat', 'Debian']" when: "ansible_version.full is version_compare('2.12', '<') or ansible_os_family not in ['RedHat', 'Debian']"
- name: Install Docker (with downgrade option). - name: Install Docker packages (with downgrade option).
package: package:
name: "{{ docker_package }}" name: "{{ docker_packages }}"
state: "{{ docker_package_state }}" state: "{{ docker_packages_state }}"
allow_downgrade: true allow_downgrade: true
notify: restart docker notify: restart docker
ignore_errors: "{{ ansible_check_mode }}" ignore_errors: "{{ ansible_check_mode }}"