From 143e2272ff9d85ba81bfa8c4a67f29994d898d79 Mon Sep 17 00:00:00 2001 From: Manuel Cintron <4176113+mcntrn@users.noreply.github.com> Date: Thu, 31 Jan 2019 18:19:48 -0600 Subject: [PATCH] Fixing an issue where trying to install docker-ce-18.09 on rhel7 nodes (or potentially centos 7) without an enabled extras repo the installation will fail because container-selinux >= 2.9 is required. The check for container-selinux upfront should obviate the need for adding an extras repo if the node is able to find it from another source. (#4161) --- .../container-engine/docker/defaults/main.yml | 3 +++ roles/container-engine/docker/tasks/main.yml | 21 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/roles/container-engine/docker/defaults/main.yml b/roles/container-engine/docker/defaults/main.yml index fb719878d..b66c9124a 100644 --- a/roles/container-engine/docker/defaults/main.yml +++ b/roles/container-engine/docker/defaults/main.yml @@ -44,6 +44,9 @@ dockerproject_rh_repo_gpgkey: 'https://yum.dockerproject.org/gpg' dockerproject_apt_repo_base_url: 'https://apt.dockerproject.org/repo' dockerproject_apt_repo_gpgkey: 'https://apt.dockerproject.org/gpg' docker_bin_dir: "/usr/bin" +# CentOS/RedHat Extras repo +extras_rh_repo_base_url: "http://mirror.centos.org/centos/$releasever/extras/$basearch/" +extras_rh_repo_gpgkey: "http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7" # flag to enable/disable docker cleanup docker_orphan_clean_up: false diff --git a/roles/container-engine/docker/tasks/main.yml b/roles/container-engine/docker/tasks/main.yml index c1f501838..8dde643d4 100644 --- a/roles/container-engine/docker/tasks/main.yml +++ b/roles/container-engine/docker/tasks/main.yml @@ -109,6 +109,27 @@ dest: "{{ yum_repo_dir }}/docker.repo" when: ansible_distribution in ["CentOS","RedHat"] and not is_atomic +- name: check if container-selinux is available + yum: + list: "container-selinux" + register: yum_result + when: ansible_distribution in ["CentOS","RedHat"] and not is_atomic + +- name: Configure extras repository on RedHat/CentOS if container-selinux not avaiable in current repos + yum_repository: + name: extras + description: "CentOS-7 - Extras" + state: present + baseurl: "{{ extras_rh_repo_base_url }}" + file: "extras" + gpgcheck: yes + gpgkey: "{{extras_rh_repo_gpgkey}}" + keepcache: "{{ docker_rpm_keepcache | default('1') }}" + proxy: " {{ http_proxy | default(omit) }}" + when: + - ansible_distribution in ["CentOS","RedHat"] and not is_atomic + - yum_result.results | length == 0 + - name: Copy yum.conf for editing copy: src: "{{ yum_conf }}"