Enhancement: versionlock our package

- install yum-plugin-versionlock
 - lock the docker-$edition package on what we installed

Related: pngmbh/issues#389
This commit is contained in:
till 2019-11-08 21:00:46 +01:00
parent 79c65ff913
commit 053d6669f9
No known key found for this signature in database
GPG Key ID: B119050E2EBA1DC5
3 changed files with 44 additions and 5 deletions

View File

@ -1,3 +1,17 @@
---
- name: restart docker
service: "name=docker state={{ docker_restart_handler_state }}"
# some context:
# - the repo doesn't offer *all* docker-ce-cli releases
# - therefor we lock docker-ce only
# - linting:
# - we ignore linting since the PR for "versionlock" hasn't been merged in a year
# - warn: false for another Ansible warning about "command"
- name: lock docker package
command: "yum versionlock {{ docker_package }}"
args:
warn: false
changed_when: false
tags:
- skip_ansible_lint

View File

@ -8,6 +8,14 @@ testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
).get_hosts('all')
def get_docker_version():
docker_version = os.environ.get("DOCKER_VERSION_CI")
if not docker_version:
docker_version = "18.09.2"
return docker_version
@pytest.mark.parametrize('pkg', [
'docker-ce',
'docker-ce-cli',
@ -26,9 +34,7 @@ def test_srv(host):
def test_docker_version(host):
docker_version = os.environ.get("DOCKER_VERSION_CI")
if not docker_version:
docker_version = "18.09.2"
docker_version = get_docker_version()
# docker_cli = host.check_output('docker -v')
# assert docker_cli.find(docker_version) != -1
@ -37,6 +43,15 @@ def test_docker_version(host):
assert docker_daemon.find(docker_version) != -1
def test_versionlock(host):
docker_version = get_docker_version()
version_lock = host.check_output("yum versionlock list")
assert version_lock.find("docker-ce") != -1
assert version_lock.find(docker_version) != -1
assert version_lock.find("docker-ce-" + docker_version) != -1
def test_hosts_file(host):
f = host.file('/etc/hosts')

View File

@ -3,6 +3,12 @@
debug:
msg: "Package: {{ __docker_install_name }}, Is 17.03: {{ __docker_17_03 }}"
# Fixme: this should be in ansible or another role
- name: Install yum versionlock
yum:
name:
- yum-plugin-versionlock
- name: Install Docker 17.03 on CentOS/Redhat
when: __docker_17_03
yum:
@ -12,7 +18,9 @@
- containerd.io
conf_file: "{{ docker_yum_config }}"
state: "{{ docker_package_state }}"
notify: restart docker
notify:
- restart docker
- lock docker package
- name: Install Docker on CentOS/Redhat
when: not __docker_17_03
@ -21,4 +29,6 @@
- "{{ __docker_install_name }}"
- containerd.io
state: "{{ docker_package_state }}"
notify: restart docker
notify:
- restart docker
- lock docker package