Files
homeserver.zernis.ch/roles/docker/tasks/main.yml
2025-01-30 12:03:53 +01:00

71 lines
2.0 KiB
YAML

---
- 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