Initial template repository
🎬 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>
This commit is contained in:
125
tasks/docker_setup.yml
Normal file
125
tasks/docker_setup.yml
Normal file
@@ -0,0 +1,125 @@
|
||||
---
|
||||
# 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']
|
||||
Reference in New Issue
Block a user