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:
128
tasks/user_setup.yml
Normal file
128
tasks/user_setup.yml
Normal file
@@ -0,0 +1,128 @@
|
||||
---
|
||||
# User and directory setup tasks
|
||||
|
||||
- name: Create docker group
|
||||
group:
|
||||
name: "{{ docker_group }}"
|
||||
state: present
|
||||
tags: ['users']
|
||||
|
||||
- name: Create docker user
|
||||
user:
|
||||
name: "{{ docker_user }}"
|
||||
group: "{{ docker_group }}"
|
||||
groups: docker
|
||||
shell: /bin/bash
|
||||
home: "{{ docker_root }}"
|
||||
create_home: yes
|
||||
system: no
|
||||
state: present
|
||||
tags: ['users']
|
||||
|
||||
- name: Add docker user to docker group
|
||||
user:
|
||||
name: "{{ docker_user }}"
|
||||
groups: docker
|
||||
append: yes
|
||||
tags: ['users']
|
||||
|
||||
- name: Get docker user UID and GID
|
||||
getent:
|
||||
database: passwd
|
||||
key: "{{ docker_user }}"
|
||||
tags: ['users']
|
||||
|
||||
- name: Get docker group GID
|
||||
getent:
|
||||
database: group
|
||||
key: "{{ docker_group }}"
|
||||
tags: ['users']
|
||||
|
||||
- name: Display docker user information
|
||||
debug:
|
||||
msg: |
|
||||
Docker user: {{ docker_user }}
|
||||
Docker UID: {{ ansible_facts['getent_passwd'][docker_user][1] }}
|
||||
Docker GID: {{ ansible_facts['getent_group'][docker_group][1] }}
|
||||
tags: ['users']
|
||||
|
||||
- name: Create media directories
|
||||
file:
|
||||
path: "{{ item }}"
|
||||
state: directory
|
||||
owner: "{{ docker_user }}"
|
||||
group: "{{ docker_group }}"
|
||||
mode: '0755'
|
||||
loop: "{{ media_dirs }}"
|
||||
tags: ['directories']
|
||||
|
||||
- name: Create docker config directories
|
||||
file:
|
||||
path: "{{ item }}"
|
||||
state: directory
|
||||
owner: "{{ docker_user }}"
|
||||
group: "{{ docker_group }}"
|
||||
mode: '0755'
|
||||
loop: "{{ docker_dirs }}"
|
||||
tags: ['directories']
|
||||
|
||||
- name: Set ownership of media root
|
||||
file:
|
||||
path: "{{ media_root }}"
|
||||
owner: "{{ docker_user }}"
|
||||
group: "{{ docker_group }}"
|
||||
recurse: yes
|
||||
state: directory
|
||||
tags: ['permissions']
|
||||
|
||||
- name: Set ownership of docker root
|
||||
file:
|
||||
path: "{{ docker_root }}"
|
||||
owner: "{{ docker_user }}"
|
||||
group: "{{ docker_group }}"
|
||||
recurse: yes
|
||||
state: directory
|
||||
tags: ['permissions']
|
||||
|
||||
- name: Create docker user .bashrc
|
||||
template:
|
||||
src: bashrc.j2
|
||||
dest: "{{ docker_root }}/.bashrc"
|
||||
owner: "{{ docker_user }}"
|
||||
group: "{{ docker_group }}"
|
||||
mode: '0644'
|
||||
tags: ['user_config']
|
||||
|
||||
- name: Create useful aliases for docker user
|
||||
template:
|
||||
src: bash_aliases.j2
|
||||
dest: "{{ docker_root }}/.bash_aliases"
|
||||
owner: "{{ docker_user }}"
|
||||
group: "{{ docker_group }}"
|
||||
mode: '0644'
|
||||
tags: ['user_config']
|
||||
|
||||
- name: Create scripts directory
|
||||
file:
|
||||
path: "{{ docker_root }}/scripts"
|
||||
state: directory
|
||||
owner: "{{ docker_user }}"
|
||||
group: "{{ docker_group }}"
|
||||
mode: '0755'
|
||||
tags: ['directories']
|
||||
|
||||
- name: Create management scripts
|
||||
template:
|
||||
src: "{{ item }}.j2"
|
||||
dest: "{{ docker_root }}/scripts/{{ item }}"
|
||||
owner: "{{ docker_user }}"
|
||||
group: "{{ docker_group }}"
|
||||
mode: '0755'
|
||||
loop:
|
||||
- arrs-start.sh
|
||||
- arrs-stop.sh
|
||||
- arrs-restart.sh
|
||||
- arrs-logs.sh
|
||||
- arrs-update.sh
|
||||
- arrs-status.sh
|
||||
tags: ['scripts']
|
||||
Reference in New Issue
Block a user