From 7d1ab3374e0b8c35ecbd7fb2339fc93c367c5c19 Mon Sep 17 00:00:00 2001 From: Denis Kadyshev Date: Thu, 9 Apr 2020 15:25:44 +0700 Subject: [PATCH] Proxy fixes (#5869) * Fix proxy and module_hotfixes On CentOS 8 with proxy ansible render inline `proxy` and `module_hotfixes` options. For example: `proxy=http://127.0.0.1:3128module_hotfixes=True` But expected result: ``` proxy=http://127.0.0.1:3128 module_hotfixes=True ``` * Use ini_file module for work with ini files * Prevent duplicates proxy= option in /etc/yum.conf Module `lineinfile` is weak, use most powerful module `ini_file` and add or remove `proxy=` when `http_proxy` is defined or not. --- roles/bootstrap-os/tasks/bootstrap-centos.yml | 13 ++++++------- roles/container-engine/docker/tasks/main.yml | 9 +++++---- .../docker/templates/rh_docker.repo.j2 | 1 + 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/roles/bootstrap-os/tasks/bootstrap-centos.yml b/roles/bootstrap-os/tasks/bootstrap-centos.yml index 4bfe984fd..5429cf62c 100644 --- a/roles/bootstrap-os/tasks/bootstrap-centos.yml +++ b/roles/bootstrap-os/tasks/bootstrap-centos.yml @@ -42,15 +42,14 @@ - not centos_fastestmirror_enabled - name: Add proxy to /etc/yum.conf if http_proxy is defined - lineinfile: + ini_file: path: "/etc/yum.conf" - regexp: "^proxy=.*$" - line: "proxy={{ http_proxy }}" - create: true - state: present + section: main + option: proxy + value: "{{ http_proxy | default(omit) }}" + state: "{{ http_proxy | default(False) | ternary('present', 'absent') }}" + no_extra_spaces: true become: true - when: - - http_proxy is defined - name: Gather host facts to get ansible_distribution_major_version setup: diff --git a/roles/container-engine/docker/tasks/main.yml b/roles/container-engine/docker/tasks/main.yml index 85d50e576..836c2b8f8 100644 --- a/roles/container-engine/docker/tasks/main.yml +++ b/roles/container-engine/docker/tasks/main.yml @@ -136,11 +136,12 @@ when: ansible_distribution in ["CentOS","RedHat","OracleLinux"] and not is_ostree - name: Edit copy of yum.conf to set obsoletes=0 - lineinfile: + ini_file: path: "{{ docker_yum_conf }}" - state: present - regexp: '^obsoletes=' - line: 'obsoletes=0' + section: main + option: obsoletes + value: "0" + no_extra_spaces: true when: ansible_distribution in ["CentOS","RedHat","OracleLinux"] and not is_ostree - name: ensure docker packages are installed diff --git a/roles/container-engine/docker/templates/rh_docker.repo.j2 b/roles/container-engine/docker/templates/rh_docker.repo.j2 index 81f9c37d5..fe01ed2e6 100644 --- a/roles/container-engine/docker/templates/rh_docker.repo.j2 +++ b/roles/container-engine/docker/templates/rh_docker.repo.j2 @@ -6,4 +6,5 @@ gpgcheck={{ '1' if docker_rh_repo_gpgkey else '0' }} keepcache={{ docker_rpm_keepcache | default('1') }} gpgkey={{ docker_rh_repo_gpgkey }} {% if http_proxy is defined %}proxy={{ http_proxy }}{% endif %} + {% if ansible_os_family == "RedHat" and ansible_distribution_major_version|int == 8 %}module_hotfixes=True{% endif %}