Skip to content

Instantly share code, notes, and snippets.

@danjac
Created February 5, 2025 14:54
Show Gist options
  • Save danjac/8e66d478b47810be8ff7b739e80d3413 to your computer and use it in GitHub Desktop.
Save danjac/8e66d478b47810be8ff7b739e80d3413 to your computer and use it in GitHub Desktop.
Ansible role for provisioning Docker on a VM
- name: Install dependencies
ansible.builtin.apt:
name: "{{ item }}"
state: present
update_cache: true
loop:
- apt-transport-https
- ca-certificates
- curl
- gnupg-agent
- software-properties-common
- python3-docker
- name: Copy Docker GPG key
ansible.builtin.copy:
src: files/docker.gpg
dest: /tmp/docker.gpg
mode: '0644'
- name: Add Docker GPG key
ansible.builtin.apt_key:
file: /tmp/docker.gpg
state: present
- name: Add docker repository to apt
ansible.builtin.apt_repository:
repo: deb https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable
state: present
- name: Install docker
ansible.builtin.apt:
name: "{{ item }}"
state: present
update_cache: true
loop:
- docker-ce
- docker-ce-cli
- containerd.io
- name: Check docker is active
ansible.builtin.service:
name: docker
state: started
enabled: true
- name: Ensure group "docker" exists
ansible.builtin.group:
name: docker
state: present
- name: Add user to docker group
ansible.builtin.user:
name: "{{ user }}"
groups: docker
append: true
- name: Copy daemon.json file
ansible.builtin.copy:
src: files/daemon.json
dest: /etc/docker/daemon.json
mode: "u+rw,g+rw"
- name: Daily docker cleanup crontab
ansible.builtin.cron:
name: "Docker cleanup"
user: "{{ user }}"
minute: "0"
hour: "3"
job: /usr/bin/docker system prune -f > /dev/null 2>&1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment