diff --git a/releasenotes/notes/docker-pin-afd0150e3550ce00.yaml b/releasenotes/notes/docker-pin-afd0150e3550ce00.yaml new file mode 100644 index 0000000..f062e6a --- /dev/null +++ b/releasenotes/notes/docker-pin-afd0150e3550ce00.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + Add support for pinning docker package versions by setting + ``docker_apt_package_pin`` or ``docker_yum_package_pin``. diff --git a/roles/docker/defaults/main.yml b/roles/docker/defaults/main.yml index c6420e4..c05aa3c 100644 --- a/roles/docker/defaults/main.yml +++ b/roles/docker/defaults/main.yml @@ -10,13 +10,15 @@ docker_apt_url: "https://download.docker.com/linux/{{ ansible_facts.distribution docker_apt_repo: "deb [signed-by=/etc/apt/keyrings/docker.asc] {{ docker_apt_url }} {{ ansible_facts.distribution_release }} stable" docker_apt_key_file: "gpg" docker_apt_package: "docker-ce" +docker_apt_package_pin: "" # Docker Yum repository configuration. docker_yum_url: "https://download.docker.com/linux/centos" docker_yum_baseurl: "{{ docker_yum_url }}/$releasever/$basearch/stable" docker_yum_gpgkey: "{{ docker_yum_url }}/gpg" docker_yum_gpgcheck: true -docker_yum_package: "{% if ansible_facts.distribution == 'openEuler' %}docker{% else %}docker-ce{% endif %}" +docker_yum_package: "{% if ansible_facts.distribution == 'openEuler' %}docker{{ '-' + docker_yum_package_pin if (docker_yum_package_pin | length > 0) else '' }}{% else %}docker-ce{{ '-' + docker_yum_package_pin if (docker_yum_package_pin | length > 0) else '' }}{% endif %}" +docker_yum_package_pin: "" # List of packages to install. docker_packages: diff --git a/roles/docker/tasks/repo-Debian.yml b/roles/docker/tasks/repo-Debian.yml index e754c68..a4f7d66 100644 --- a/roles/docker/tasks/repo-Debian.yml +++ b/roles/docker/tasks/repo-Debian.yml @@ -31,6 +31,16 @@ force: true become: True +- name: Install docker apt pin + copy: + dest: "/etc/apt/preferences.d/docker" + content: | + Package: {{ docker_apt_package }} + Pin: version {{ docker_apt_package_pin }} + Pin-Priority: 1000 + become: True + when: docker_apt_package_pin | length > 0 + - name: Enable docker apt repository apt_repository: repo: "{{ docker_apt_repo }}"