--- - name: Ensure old versions of Docker are not installed. package: name: '{{ item }}' state: absent with_items: - docker - docker-engine - docker.io - name: Ensure depdencies are installed. apt: name: "{{ item }}" state: present with_items: - apt-transport-https - ca-certificates # Fix for https://github.com/docker/docker/issues/23347 - name: Install dmsetup for Ubuntu 16.04 apt: pkg: dmsetup state: present register: dmsetup_result when: ansible_distribution_version|version_compare('16.04', '=') - name: Run dmsetup for Ubuntu 16.04 command: dmsetup mknodes when: dmsetup_result.changed - name: Add Docker apt key. apt_key: url: https://download.docker.com/linux/ubuntu/gpg id: 9DC858229FC7DD38854AE2D88D81803C0EBFCD88 state: present register: add_repository_key ignore_errors: true - name: Ensure curl is present (on older systems without SNI). package: name=curl state=present when: add_repository_key|failed - name: Add Docker apt key (alternative for older systems without SNI). shell: "curl -sSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -" args: warn: no when: add_repository_key|failed - name: Add Docker repository. apt_repository: repo: "{{ docker_apt_repository }}" state: present update_cache: yes