--- - name: Set amd64 arch ansible.builtin.set_fact: repo_arch: amd64 when: ansible_architecture == "x86_64" - name: Set arm64 arch ansible.builtin.set_fact: repo_arch: "{{ ansible_architecture }}" when: (ansible_architecture == "arm64") or (ansible_architecture == "aarch64") - name: Install required system packages ansible.builtin.package: state: present name: "{{ docker_deps }}" - name: Add Docker GPG apt Key ansible.builtin.get_url: url: "https://download.docker.com/linux/{{ ansible_facts['distribution'] | lower }}/gpg" dest: /etc/apt/trusted.gpg.d/docker.asc mode: '0644' - name: Add Docker Repository ansible.builtin.apt_repository: repo: "deb [arch={{ repo_arch }} signed-by=/etc/apt/trusted.gpg.d/docker.asc] https://download.docker.com/linux/{{ ansible_facts['distribution'] | lower }} {{ ansible_lsb['codename'] }} stable" state: present - name: Update apt and install docker ansible.builtin.apt: update_cache: true name: "{{ docker_packages }}" state: present - name: Ensure group docker exists ansible.builtin.group: name: docker state: present - name: Add user to group docker | "{{ system_user_name }}" ansible.builtin.user: name: "{{ system_user_name }}" groups: - docker append: true - name: Install Docker Module for Python ansible.builtin.pip: name: docker - name: Make sure Docker is running and enabled ansible.builtin.systemd: name: docker daemon_reload: true state: started enabled: true - name: Create docker dir if it does not exist become: false ansible.builtin.file: path: /home/{{ system_user_name }}/docker/ state: directory mode: '0755' - name: Create cronjob to prune unused docker stuff ansible.builtin.cron: user: "{{ system_user_name }}" name: "prune unused docker stuff every night at 00:15" minute: "15" hour: "00" job: 'sudo docker system prune -af --filter "until=$((30*24))h"' notify: Restart cron