🎬 ARR Suite Template Bootstrap - Complete Media Automation Stack Features: - 16 production services (Prowlarr, Sonarr, Radarr, Plex, etc.) - One-command Ansible deployment - VPN-protected downloads via Gluetun - Tailscale secure access - Production-ready security (UFW, Fail2Ban) - Automated backups and monitoring - Comprehensive documentation Ready for customization and deployment to any VPS. Co-authored-by: openhands <openhands@all-hands.dev>
125 lines
2.8 KiB
YAML
125 lines
2.8 KiB
YAML
---
|
|
# Docker installation and configuration tasks
|
|
|
|
- name: Remove old Docker packages
|
|
apt:
|
|
name:
|
|
- docker
|
|
- docker-engine
|
|
- docker.io
|
|
- containerd
|
|
- runc
|
|
state: absent
|
|
tags: ['docker_install']
|
|
|
|
- name: Add Docker GPG key
|
|
apt_key:
|
|
url: https://download.docker.com/linux/ubuntu/gpg
|
|
state: present
|
|
tags: ['docker_install']
|
|
|
|
- name: Add Docker repository
|
|
apt_repository:
|
|
repo: "deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable"
|
|
state: present
|
|
update_cache: yes
|
|
tags: ['docker_install']
|
|
|
|
- name: Install Docker CE
|
|
apt:
|
|
name:
|
|
- docker-ce
|
|
- docker-ce-cli
|
|
- containerd.io
|
|
- docker-buildx-plugin
|
|
- docker-compose-plugin
|
|
state: present
|
|
update_cache: yes
|
|
notify: restart docker
|
|
tags: ['docker_install']
|
|
|
|
- name: Install Docker Compose standalone
|
|
get_url:
|
|
url: "https://github.com/docker/compose/releases/download/v{{ docker_compose_version }}/docker-compose-linux-x86_64"
|
|
dest: /usr/local/bin/docker-compose
|
|
mode: '0755'
|
|
owner: root
|
|
group: root
|
|
tags: ['docker_compose']
|
|
|
|
- name: Remove existing docker-compose if present
|
|
file:
|
|
path: /usr/bin/docker-compose
|
|
state: absent
|
|
tags: ['docker_compose']
|
|
|
|
- name: Create docker-compose symlink
|
|
file:
|
|
src: /usr/local/bin/docker-compose
|
|
dest: /usr/bin/docker-compose
|
|
state: link
|
|
tags: ['docker_compose']
|
|
|
|
- name: Start and enable Docker service
|
|
systemd:
|
|
name: docker
|
|
state: started
|
|
enabled: yes
|
|
daemon_reload: yes
|
|
tags: ['docker_service']
|
|
|
|
- name: Configure Docker daemon
|
|
template:
|
|
src: daemon.json.j2
|
|
dest: /etc/docker/daemon.json
|
|
backup: yes
|
|
notify: restart docker
|
|
tags: ['docker_config']
|
|
|
|
- name: Create Docker log rotation configuration
|
|
template:
|
|
src: docker-logrotate.j2
|
|
dest: /etc/logrotate.d/docker
|
|
mode: '0644'
|
|
tags: ['docker_logging']
|
|
|
|
- name: Verify Docker installation
|
|
command: docker --version
|
|
register: docker_version
|
|
changed_when: false
|
|
tags: ['docker_verify']
|
|
|
|
- name: Verify Docker Compose installation
|
|
command: docker-compose --version
|
|
register: docker_compose_version_check
|
|
changed_when: false
|
|
tags: ['docker_verify']
|
|
|
|
- name: Display Docker versions
|
|
debug:
|
|
msg: |
|
|
Docker version: {{ docker_version.stdout }}
|
|
Docker Compose version: {{ docker_compose_version_check.stdout }}
|
|
tags: ['docker_verify']
|
|
|
|
- name: Test Docker functionality
|
|
docker_container:
|
|
name: hello-world-test
|
|
image: hello-world
|
|
state: started
|
|
auto_remove: yes
|
|
detach: no
|
|
register: docker_test
|
|
tags: ['docker_test']
|
|
|
|
- name: Remove test container
|
|
docker_container:
|
|
name: hello-world-test
|
|
state: absent
|
|
tags: ['docker_test']
|
|
|
|
- name: Clean up Docker test image
|
|
docker_image:
|
|
name: hello-world
|
|
state: absent
|
|
tags: ['docker_test'] |