#- name: Check if docker is already installed # stat: # path: /usr/bin/docker # register: docker_file - name: Install Packages # when: docker_file.stat.exists == False package: name: - gpg - gpg-agent - python3-debian tags: docker_repo - name: Create apt keyrings directory file: path: /etc/apt/keyrings state: directory mode: "0755" tags: docker_repo - name: Add docker-key get_url: url: "https://download.docker.com/linux/{{ ansible_facts.distribution | lower }}/gpg" dest: /etc/apt/keyrings/docker.asc mode: "0644" tags: docker_repo - name: Remove one-line docker-repository file: path: /etc/apt/sources.list.d/docker.list state: absent tags: docker_repo - name: Add docker-repository deb822_repository: name: docker types: deb uris: "https://download.docker.com/linux/{{ ansible_facts.distribution | lower }}" suites: "{{ ansible_facts.distribution_release }}" components: stable signed_by: /etc/apt/keyrings/docker.asc register: docker_repo tags: docker_repo - name: Update apt cache after docker-repository change apt: update_cache: yes when: docker_repo.changed tags: docker_repo - name: Install docker package: name: - docker-ce - docker-ce-cli - containerd.io - docker-compose-plugin - pass state: latest - name: Deploy docker-compose command to new docker compose plugin ansible.builtin.copy: src: docker-compose dest: "/usr/local/bin/docker-compose" mode: preserve - name: Check for docker binary ansible.builtin.stat: path: /usr/bin/docker register: docker_binary tags: docker_prune - name: Deploy docker-prune script ansible.builtin.copy: src: docker-prune dest: /usr/local/sbin/docker-prune owner: root group: root mode: "0755" when: docker_binary.stat.exists tags: docker_prune - name: Schedule hourly docker-prune ansible.builtin.cron: name: docker prune cron_file: docker-prune user: root minute: "0" job: /usr/local/sbin/docker-prune when: docker_binary.stat.exists tags: docker_prune