Docker Compose media stack (gluetun, *arr, Jellyfin), Ternary-Bonsai AI (Open WebUI, Forgejo, optional OpenHands), and Ansible bootstrap for the SER5 Ubuntu host.
91 lines
2.2 KiB
YAML
91 lines
2.2 KiB
YAML
---
|
|
- name: Install Docker apt prerequisites
|
|
ansible.builtin.apt:
|
|
name:
|
|
- ca-certificates
|
|
- curl
|
|
- gnupg
|
|
state: present
|
|
tags: [docker]
|
|
|
|
- name: Create keyrings directory
|
|
ansible.builtin.file:
|
|
path: /etc/apt/keyrings
|
|
state: directory
|
|
mode: "0755"
|
|
tags: [docker]
|
|
|
|
- name: Add Docker official GPG key
|
|
ansible.builtin.get_url:
|
|
url: https://download.docker.com/linux/ubuntu/gpg
|
|
dest: /etc/apt/keyrings/docker.asc
|
|
mode: "0644"
|
|
force: true
|
|
tags: [docker]
|
|
|
|
- name: Add Docker apt repository (deb822)
|
|
ansible.builtin.deb822_repository:
|
|
name: docker
|
|
types: [deb]
|
|
uris: https://download.docker.com/linux/ubuntu
|
|
suites: ["{{ ansible_distribution_release }}"]
|
|
components: [stable]
|
|
architectures: "{{ [ansible_architecture | replace('x86_64', 'amd64') | replace('aarch64', 'arm64')] }}"
|
|
signed_by: /etc/apt/keyrings/docker.asc
|
|
state: present
|
|
enabled: true
|
|
tags: [docker]
|
|
|
|
- name: Install Docker Engine + Compose plugin
|
|
ansible.builtin.apt:
|
|
name: "{{ docker_packages }}"
|
|
state: present
|
|
update_cache: true
|
|
tags: [docker]
|
|
|
|
- name: Ensure docker group exists
|
|
ansible.builtin.group:
|
|
name: docker
|
|
state: present
|
|
tags: [docker]
|
|
|
|
- name: Configure Docker daemon.json
|
|
ansible.builtin.copy:
|
|
dest: /etc/docker/daemon.json
|
|
mode: "0644"
|
|
content: "{{ docker_daemon_json | to_nice_json }}\n"
|
|
notify: Restart docker
|
|
tags: [docker]
|
|
|
|
- name: Enable and start Docker (survives reboots)
|
|
ansible.builtin.systemd:
|
|
name: docker
|
|
state: started
|
|
enabled: true
|
|
tags: [docker]
|
|
|
|
- name: Enable containerd (Docker dependency)
|
|
ansible.builtin.systemd:
|
|
name: containerd
|
|
state: started
|
|
enabled: true
|
|
tags: [docker]
|
|
|
|
- name: Add stack user to docker / video / render groups
|
|
ansible.builtin.user:
|
|
name: "{{ stack_owner }}"
|
|
groups: "{{ extra_user_groups }}"
|
|
append: true
|
|
tags: [docker, users]
|
|
# Full permission setup also runs in the users role
|
|
|
|
- name: Verify docker works
|
|
ansible.builtin.command: docker version --format '{% raw %}{{.Server.Version}}{% endraw %}'
|
|
register: docker_ver
|
|
changed_when: false
|
|
tags: [docker]
|
|
|
|
- name: Show docker version
|
|
ansible.builtin.debug:
|
|
msg: "Docker server {{ docker_ver.stdout }}"
|
|
tags: [docker]
|