From 83e2c066c18dc9d794583e892a7e9c2abf4e4773 Mon Sep 17 00:00:00 2001 From: jwhb Date: Thu, 7 Apr 2022 11:01:19 +0200 Subject: [PATCH 1/5] Allow skipping of service management --- README.md | 3 ++- defaults/main.yml | 1 + handlers/main.yml | 1 + tasks/main.yml | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8bf9e5f..94390ae 100644 --- a/README.md +++ b/README.md @@ -21,11 +21,12 @@ The `docker_edition` should be either `ce` (Community Edition) or `ee` (Enterpri 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). + docker_service_manage: true docker_service_state: started docker_service_enabled: true docker_restart_handler_state: restarted -Variables to control the state of the `docker` service, and whether it should start on boot. If you're installing Docker inside a Docker container without systemd or sysvinit, you should set these to `stopped` and set the enabled variable to `no`. +Variables to control the state of the `docker` service, and whether it should start on boot. If you're installing Docker inside a Docker container without systemd or sysvinit, you should set `docker_service_manage` to `false`. docker_install_compose: true docker_compose_version: "1.26.0" diff --git a/defaults/main.yml b/defaults/main.yml index 9e56e9a..4c4b9a2 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -5,6 +5,7 @@ docker_package: "docker-{{ docker_edition }}" docker_package_state: present # Service options. +docker_service_manage: true docker_service_state: started docker_service_enabled: true docker_restart_handler_state: restarted diff --git a/handlers/main.yml b/handlers/main.yml index a173b0d..79ac35c 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -2,3 +2,4 @@ - name: restart docker service: "name=docker state={{ docker_restart_handler_state }}" ignore_errors: "{{ ansible_check_mode }}" + when: docker_service_manage | bool diff --git a/tasks/main.yml b/tasks/main.yml index f050dd6..ce59fe6 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -43,6 +43,7 @@ state: "{{ docker_service_state }}" enabled: "{{ docker_service_enabled }}" ignore_errors: "{{ ansible_check_mode }}" + when: docker_service_manage | bool - name: Ensure handlers are notified now to avoid firewall conflicts. meta: flush_handlers From ff374062487a0035f1d824daf89b4d07f81fb0ac Mon Sep 17 00:00:00 2001 From: Michael G Date: Thu, 23 Jun 2022 07:02:31 +0200 Subject: [PATCH 2/5] Avoid string-based module configuration Configure module parameters as a YAML dict instead of string. --- handlers/main.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/handlers/main.yml b/handlers/main.yml index a173b0d..1848733 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -1,4 +1,6 @@ --- - name: restart docker - service: "name=docker state={{ docker_restart_handler_state }}" + service: + name: docker + state: "{{ docker_restart_handler_state }}" ignore_errors: "{{ ansible_check_mode }}" From 028a764e833737b076e65ac3a3fdb01dc964ae9c Mon Sep 17 00:00:00 2001 From: Aram Akhavan Date: Tue, 5 Jul 2022 19:26:16 -0700 Subject: [PATCH 3/5] add installation of docker plugin from repo --- README.md | 6 ++++++ defaults/main.yml | 5 +++++ tasks/main.yml | 17 +++++++++++++++++ 3 files changed, 28 insertions(+) diff --git a/README.md b/README.md index 8bf9e5f..390874e 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,12 @@ You can control whether the package is installed, uninstalled, or at the latest Variables to control the state of the `docker` service, and whether it should start on boot. If you're installing Docker inside a Docker container without systemd or sysvinit, you should set these to `stopped` and set the enabled variable to `no`. + docker_install_compose_plugin: false + docker_compose_package: docker-compose-plugin + docker_compose_package_state: present + +Docker Compose Plugin installation options. These differ from the below in that docker-compose is installed as a docker plugin (and used with `docker compose`) instead of a standalone binary. + docker_install_compose: true docker_compose_version: "1.26.0" docker_compose_arch: x86_64 diff --git a/defaults/main.yml b/defaults/main.yml index 9e56e9a..a909b99 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -9,6 +9,11 @@ docker_service_state: started docker_service_enabled: true docker_restart_handler_state: restarted +# Docker Compose Plugin options. +docker_install_compose_plugin: false +docker_compose_package: docker-compose-plugin +docker_compose_package_state: present + # Docker Compose options. docker_install_compose: true docker_compose_version: "v2.4.1" diff --git a/tasks/main.yml b/tasks/main.yml index 91fceef..c4fb905 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -22,6 +22,23 @@ ignore_errors: "{{ ansible_check_mode }}" when: "ansible_version.full is version_compare('2.12', '>=') and ansible_os_family in ['RedHat', 'Debian']" +- name: Install docker-compose plugin. + package: + name: "{{ docker_compose_package }}" + state: "{{ docker_compose_package_state }}" + notify: restart docker + ignore_errors: "{{ ansible_check_mode }}" + when: "docker_install_compose_plugin | bool == true and (ansible_version.full is version_compare('2.12', '<') or ansible_os_family not in ['RedHat', 'Debian'])" + +- name: Install docker-compose-plugin (with downgrade option). + package: + name: "{{ docker_compose_package }}" + state: "{{ docker_compose_package_state }}" + allow_downgrade: true + notify: restart docker + ignore_errors: "{{ ansible_check_mode }}" + when: "docker_install_compose_plugin | bool == true and ansible_version.full is version_compare('2.12', '>=') and ansible_os_family in ['RedHat', 'Debian']" + - name: Ensure /etc/docker/ directory exists. file: path: /etc/docker From 99e501c36627208a953246c9e6efa73813a1eda0 Mon Sep 17 00:00:00 2001 From: "j.koehler" Date: Mon, 11 Jul 2022 16:27:37 +0200 Subject: [PATCH 4/5] #205 - install Docker packages explicitly following official Docker engine installation instructions --- README.md | 12 +++++++++--- defaults/main.yml | 8 ++++++-- tasks/main.yml | 12 ++++++------ 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 8bf9e5f..8165019 100644 --- a/README.md +++ b/README.md @@ -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). docker_edition: 'ce' - docker_package: "docker-{{ docker_edition }}" - docker_package_state: present + docker_packages: + - "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 }}-`; Debian/Ubuntu: `docker-{{ docker_edition }}=`. +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 }}-` (Note: you have to add this to all packages); +Debian/Ubuntu: `docker-{{ docker_edition }}=` (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). diff --git a/defaults/main.yml b/defaults/main.yml index 9e56e9a..f08e5b0 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,8 +1,12 @@ --- # Edition can be one of: 'ce' (Community Edition) or 'ee' (Enterprise Edition). docker_edition: 'ce' -docker_package: "docker-{{ docker_edition }}" -docker_package_state: present +docker_packages: + - "docker-{{ docker_edition }}" + - "docker-{{ docker_edition }}-cli" + - "docker-{{ docker_edition }}-rootless-extras" + - "containerd.io" +docker_packages_state: present # Service options. docker_service_state: started diff --git a/tasks/main.yml b/tasks/main.yml index 91fceef..f732880 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -5,18 +5,18 @@ - include_tasks: setup-Debian.yml when: ansible_os_family == 'Debian' -- name: Install Docker. +- name: Install Docker packages. package: - name: "{{ docker_package }}" - state: "{{ docker_package_state }}" + name: "{{ docker_packages }}" + state: "{{ docker_packages_state }}" notify: restart docker ignore_errors: "{{ ansible_check_mode }}" 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: - name: "{{ docker_package }}" - state: "{{ docker_package_state }}" + name: "{{ docker_packages }}" + state: "{{ docker_packages_state }}" allow_downgrade: true notify: restart docker ignore_errors: "{{ ansible_check_mode }}" From 279392701de38e8ecba39937d83edea15daa4d9b Mon Sep 17 00:00:00 2001 From: "j.koehler" Date: Thu, 14 Jul 2022 12:35:21 +0200 Subject: [PATCH 5/5] #205 - remove EoL Debian/Ubuntu versions, add Ubuntu 22.04 (jammy) - Docker no longer lists Debian 9 and Ubuntu 16.04 LTS under "OS requirements" and there are also no molecule tests for Ubuntu 16.04 - Added Ubuntu 22.04 LTS while on it --- .github/workflows/ci.yml | 2 +- meta/main.yml | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7df509a..e3cd228 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -43,11 +43,11 @@ jobs: distro: - rockylinux8 - centos7 + - ubuntu2204 - ubuntu2004 - ubuntu1804 - debian11 - debian10 - - debian9 - fedora34 steps: diff --git a/meta/main.yml b/meta/main.yml index 5f038a3..d9cd620 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -18,14 +18,13 @@ galaxy_info: - all - name: Debian versions: - - stretch - buster - bullseye - name: Ubuntu versions: - - xenial - bionic - focal + - jammy galaxy_tags: - web - system