From 6a20b97dfa9f5a3b8ee4e66a6f84fa7334ceff8d Mon Sep 17 00:00:00 2001 From: Bjorn Oscarsson Date: Tue, 16 Jul 2019 00:52:05 +0200 Subject: [PATCH] Fixes #102 #103 --- CHANGELOG.md | 5 ++++ tasks/bug-tweaks.yml | 2 +- tasks/checks/compatibility-checks.yml | 2 +- tasks/configure-docker.yml | 2 +- tasks/main.yml | 29 ++++++++++++++++++-- tasks/postinstall.yml | 12 ++++++++- tasks/setup-repository-Ubuntu.yml | 39 ++++++++++++++++++--------- tests/vagrant_boxes.yml | 2 +- 8 files changed, 73 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 99bb388..56def6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased](../../releases/tag/X.Y.Z) +### Fixed + +- Major version comparison fails for some tasks due to non-numeric value ([#103](../../issues/103)) +- Docker compose fails on Debian 10 (Buster) ([#102](../../issues/102)) + ## [2.5.0](../../releases/tag/2.5.0) - 2019-07-14 ### Added diff --git a/tasks/bug-tweaks.yml b/tasks/bug-tweaks.yml index 55a5384..be66086 100644 --- a/tasks/bug-tweaks.yml +++ b/tasks/bug-tweaks.yml @@ -8,6 +8,6 @@ include_tasks: bug-tweaks/tweak-debian8-directlvm.yml when: - _docker_os_dist == "Debian" - - _docker_os_dist_major_version == '8' + - _docker_os_dist_major_version | int == 8 - docker_daemon_config['storage-opts'] is defined - docker_daemon_config['storage-opts'] | select('match', '^dm.directlvm_device.+') diff --git a/tasks/checks/compatibility-checks.yml b/tasks/checks/compatibility-checks.yml index 6fd1e26..e3e9ece 100644 --- a/tasks/checks/compatibility-checks.yml +++ b/tasks/checks/compatibility-checks.yml @@ -22,7 +22,7 @@ this role on a host running Debian Wheezy. when: - _docker_os_dist == "Debian" - - _docker_os_dist_major_version == '7' + - _docker_os_dist_major_version | int == 7 - docker_stack | bool or docker_sdk | bool or docker_pip_upgrade | bool or diff --git a/tasks/configure-docker.yml b/tasks/configure-docker.yml index 2376e6f..5c4bedb 100644 --- a/tasks/configure-docker.yml +++ b/tasks/configure-docker.yml @@ -98,7 +98,7 @@ state: present register: _pkg_result until: _pkg_result is succeeded - when: (_docker_os_dist == "Ubuntu" or (_docker_os_dist == "Debian" and _docker_os_dist_major_version > '7')) + when: (_docker_os_dist == "Ubuntu" or (_docker_os_dist == "Debian" and _docker_os_dist_major_version | int > 7)) when: - docker_daemon_config['storage-driver'] is defined - docker_daemon_config['storage-driver'] == 'devicemapper' diff --git a/tasks/main.yml b/tasks/main.yml index 071bd5a..68d88d8 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -13,10 +13,21 @@ set_fact: _docker_os_dist: "Ubuntu" _docker_os_dist_release: "xenial" - _docker_os_dist_major_version: "16" + _docker_os_dist_major_version: 16 when: _docker_os_dist == "Linux Mint" and - _docker_os_dist_major_version == "18" + _docker_os_dist_major_version | int == 18 + tags: ["always"] + +- name: Reinterpret distribution facts for Debian 10 (Buster) due to bug + set_fact: + _docker_os_dist: "Debian" + _docker_os_dist_release: "buster" + _docker_os_dist_major_version: 10 + when: + - _docker_os_dist == "Debian" + - _docker_os_dist_release == "buster" or (ansible_lsb is defined + and ansible_lsb.codename is defined and ansible_lsb.codename == "buster") tags: ["always"] - name: OS release info @@ -26,6 +37,20 @@ register: _docker_os_release_info tags: ["always"] +- name: Print OS release information + debug: + var: _docker_os_release_info + verbosity: 1 + tags: ["always"] + +- name: Print LSB information + debug: + var: ansible_lsb + verbosity: 1 + when: + - ansible_lsb is defined + tags: ["always"] + - name: Reinterpret distribution facts for Raspbian set_fact: _docker_os_arch: "armhf" diff --git a/tasks/postinstall.yml b/tasks/postinstall.yml index d7c0970..f846c3f 100644 --- a/tasks/postinstall.yml +++ b/tasks/postinstall.yml @@ -90,7 +90,17 @@ - _docker_additional_packages_pip | length > 0 - _docker_pip_cmd.rc != 0 - _docker_os_dist == "Debian" - - _docker_os_dist_major_version == '8' + - _docker_os_dist_major_version | int == 8 + +- name: Ensure python-backports.ssl-match-hostname is present (Debian 10) + set_fact: + _docker_additional_packages_os: "{{ _docker_additional_packages_os + ['python-backports.ssl-match-hostname'] }}" + when: + - not _docker_python3 | bool + - _docker_additional_packages_pip | length > 0 + - _docker_pip_cmd.rc != 0 + - _docker_os_dist == "Debian" + - _docker_os_dist_major_version | int == 10 - name: Ensure EPEL release repository is installed become: true diff --git a/tasks/setup-repository-Ubuntu.yml b/tasks/setup-repository-Ubuntu.yml index a47a3d5..f28c8f2 100644 --- a/tasks/setup-repository-Ubuntu.yml +++ b/tasks/setup-repository-Ubuntu.yml @@ -1,13 +1,26 @@ --- -- name: Update APT cache - become: true - apt: - update_cache: yes - changed_when: false - register: _pkg_result - until: _pkg_result is succeeded - when: - - docker_network_access | bool +- name: Update APT cache block + block: + - name: Update APT cache + become: true + apt: + update_cache: yes + changed_when: false + register: _pkg_result + until: _pkg_result is succeeded + when: + - docker_network_access | bool + rescue: + - name: Retry APT cache update with allow-releaseinfo-change + become: true + command: apt-get update --allow-releaseinfo-change + args: + warn: false + changed_when: false + register: _pkg_result + until: _pkg_result is succeeded + when: + - docker_network_access | bool - name: Ensure packages are installed for repository setup become: true @@ -29,8 +42,8 @@ until: _pkg_result is succeeded when: - docker_network_access | bool - - (_docker_os_dist == "Ubuntu" and _docker_os_dist_major_version > 14) or - (_docker_os_dist == "Debian" and _docker_os_dist_major_version > 7) + - (_docker_os_dist == "Ubuntu" and _docker_os_dist_major_version | int > 14) or + (_docker_os_dist == "Debian" and _docker_os_dist_major_version | int > 7) - name: Add Docker APT key (alternative for older Ubuntu systems without SNI). become: true @@ -40,8 +53,8 @@ changed_when: false when: - docker_network_access | bool - - (_docker_os_dist == "Ubuntu" and _docker_os_dist_major_version == 14) or - (_docker_os_dist == "Debian" and _docker_os_dist_major_version == 7) + - (_docker_os_dist == "Ubuntu" and _docker_os_dist_major_version | int == 14) or + (_docker_os_dist == "Debian" and _docker_os_dist_major_version | int == 7) tags: - skip_ansible_lint diff --git a/tests/vagrant_boxes.yml b/tests/vagrant_boxes.yml index d63d7cd..5958ccb 100644 --- a/tests/vagrant_boxes.yml +++ b/tests/vagrant_boxes.yml @@ -1,4 +1,4 @@ -ansible_version: "2.6.17" +ansible_version: "2.6.18" galaxy_role_name: haxorof.docker_ce role_dir: ansible-role-docker-ce