From 29742209d144c352a3386f19026a3960c22a3f3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20M=C3=B6ller?= Date: Thu, 8 Nov 2018 22:19:41 +0100 Subject: [PATCH] add docker_version --- README.md | 1 + defaults/main.yml | 1 + tasks/main.yml | 2 +- tasks/setup-Debian.yml | 11 +++++++++++ tasks/setup-RedHat.yml | 11 +++++++++++ 5 files changed, 25 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9a49840..f030c53 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ Available variables are listed below, along with default values (see `defaults/m docker_edition: 'ce' docker_package: "docker-{{ docker_edition }}" docker_package_state: present + docker_version: "" # like "18.06.0", docker_package_state must be "present", empty means latest 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 }}=`. diff --git a/defaults/main.yml b/defaults/main.yml index 2bcb620..5242fc5 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -2,6 +2,7 @@ # Edition can be one of: 'ce' (Community Edition) or 'ee' (Enterprise Edition). docker_edition: 'ce' docker_package: "docker-{{ docker_edition }}" +docker_version: "" docker_package_state: present # Service options. diff --git a/tasks/main.yml b/tasks/main.yml index 8444ac7..7044ef0 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -7,7 +7,7 @@ - name: Install Docker. package: - name: "{{ docker_package }}" + name: "{{ docker_package }}{{ docker_package_version | default('') }}" state: "{{ docker_package_state }}" notify: restart docker diff --git a/tasks/setup-Debian.yml b/tasks/setup-Debian.yml index 23a49ae..dec5115 100644 --- a/tasks/setup-Debian.yml +++ b/tasks/setup-Debian.yml @@ -36,3 +36,14 @@ repo: "{{ docker_apt_repository }}" state: present update_cache: true + +- name: get docker-version from apt + shell: apt-cache madison docker-{{ docker_edition }} | grep -P '{{ docker_version }}~{{ docker_edition }}~[^\s]*' -o + register: apt_docker_version_register + when: docker_version != "" + changed_when: false + +- name: set fact for docker version + set_fact: + docker_package_version: "={{ apt_docker_version_register.stdout_lines[0] }}" + when: apt_docker_version_register.rc == 0 diff --git a/tasks/setup-RedHat.yml b/tasks/setup-RedHat.yml index 0cd1a50..76876c9 100644 --- a/tasks/setup-RedHat.yml +++ b/tasks/setup-RedHat.yml @@ -33,3 +33,14 @@ section: 'docker-{{ docker_edition }}-test' option: enabled value: '{{ docker_yum_repo_enable_test }}' + +- name: get docker-version from yum + shell: yum list docker-{{ docker_edition }} --showduplicates | grep -P '{{ docker_version }}.{{ docker_edition }}[^\s]*' -o + register: apt_docker_version_register + when: docker_version != "" + changed_when: false + +- name: set fact for docker version + set_fact: + docker_package_version: "-{{ apt_docker_version_register.stdout_lines[0] }}" + when: apt_docker_version_register.rc == 0