diff --git a/playbooks/install-standard-docker.yml b/playbooks/install-standard-docker.yml index 99e17dc..bb48efa 100644 --- a/playbooks/install-standard-docker.yml +++ b/playbooks/install-standard-docker.yml @@ -6,6 +6,7 @@ vars: docker_acl_path: /opt/docker + docker_version_pinned: "24.0.7" tasks: - name: Ensure acl package is installed (for setfacl) @@ -14,15 +15,12 @@ state: present update_cache: true - - name: Check if Docker is already installed (by package) - shell: dpkg -s docker-ce 2>/dev/null - register: docker_check - ignore_errors: true - changed_when: false - - - name: Install Docker via official script if not present + - name: Install Docker via official script (only if not already installed) shell: curl -fsSL https://get.docker.com | sh - when: docker_check.rc != 0 + args: + creates: /usr/bin/docker + environment: + VERSION: "{{ docker_version_pinned }}" - name: Ensure docker group exists group: @@ -51,4 +49,29 @@ - name: Set default ACL for docker group if not already present command: setfacl -d -m g:docker:rwx {{ docker_acl_path }} - when: "'group:docker:rwx' not in facl_check.stdout" + when: "'default:group:docker:rwx' not in facl_check.stdout" + + - name: Check current Docker version + command: docker --version + register: docker_current_version + changed_when: false + failed_when: false + + - name: Check latest Docker version from GitHub + uri: + url: https://api.github.com/repos/docker/docker-ce/releases/latest + return_content: true + register: docker_latest_info + changed_when: false + failed_when: false + + - name: Print Docker version info if update available + debug: + msg: > + Current Docker version: {{ docker_current_version.stdout }} + Latest Docker version: {{ docker_latest_info.json.tag_name }} + {% if docker_latest_info.json.tag_name != 'v' + docker_version_pinned %} + A newer version is available than the pinned version ({{ docker_version_pinned }}). + {% else %} + The pinned version is up to date. + {% endif %}