feat(qbittorrent): add ansible role for deploying in a container #10
1
roles/qbittorrent/README.md
Normal file
1
roles/qbittorrent/README.md
Normal file
@ -0,0 +1 @@
|
||||
# `finallycoffee.media-streaming.qbittorrent` ansible role
|
28
roles/qbittorrent/defaults/main.yml
Normal file
28
roles/qbittorrent/defaults/main.yml
Normal file
@ -0,0 +1,28 @@
|
||||
---
|
||||
|
||||
qbittorrent_user: qbittorrent
|
||||
qbittorrent_base_path: /opt/qbittorrent
|
||||
qbittorrent_base_path_owner: "{{ qbittorrent_user_info.uid | default(qbittorrent_user) }}"
|
||||
qbittorrent_base_path_group: "{{ qbittorrent_user_info.group | default(qbittorrent_user) }}"
|
||||
qbittorrent_base_path_mode: "0750"
|
||||
qbittorrent_config_path: "{{ qbittorrent_base_path }}/config"
|
||||
qbittorrent_config_path_mode: "0750"
|
||||
qbittorrent_config_path_owner: "{{ qbittorrent_user_info.uid | default(qbittorrent_user) }}"
|
||||
qbittorrent_config_path_group: "{{ qbittorrent_user_info.group | default(qbittorrent_user) }}"
|
||||
qbittorrent_data_path: "{{ qbittorrent_base_path }}/data"
|
||||
qbittorrent_data_path_mode: "0750"
|
||||
qbittorrent_data_path_owner: "{{ qbittorrent_user_info.uid | default(qbittorrent_user) }}"
|
||||
qbittorrent_data_path_group: "{{ qbittorrent_user_info.group | default(qbittorrent_user) }}"
|
||||
|
||||
|
||||
qbittorrent_container_name: "qbittorrent"
|
||||
qbittorrent_container_image_name: "docker.io/hotio/qbittorrent"
|
||||
qbittorrent_container_image_tag: release
|
||||
qbittorrent_container_image_ref: "{{ qbittorrent_container_image_name }}:{{ qbittorrent_container_image_tag }}"
|
||||
qbittorrent_container_image_force_source: false
|
||||
qbittorrent_container_volumes: []
|
||||
qbittorrent_container_environment: {}
|
||||
qbittorrent_container_labels: []
|
||||
qbittorrent_container_ports: []
|
||||
qbittorrent_container_networks: []
|
||||
qbittorrent_container_restart_policy: "unless-stopped"
|
52
roles/qbittorrent/tasks/main.yml
Normal file
52
roles/qbittorrent/tasks/main.yml
Normal file
@ -0,0 +1,52 @@
|
||||
---
|
||||
|
||||
- name: Ensure user {{ qbittorrent_user }} exists
|
||||
user:
|
||||
name: "{{ qbittorrent_user }}"
|
||||
state: present
|
||||
system: yes
|
||||
register: qbittorrent_user_info
|
||||
|
||||
- name: Ensure base directory {{ qbittorrent_base_path }} exists
|
||||
file:
|
||||
path: "{{ qbittorrent_base_path }}"
|
||||
state: directory
|
||||
owner: "{{ qbittorrent_base_path_owner }}"
|
||||
group: "{{ qbittorrent_base_path_group }}"
|
||||
mode: "{{ qbittorrent_base_path_mode }}"
|
||||
|
||||
- name: Ensure config directory {{ qbittorrent_config_path }} exists
|
||||
file:
|
||||
path: "{{ qbittorrent_config_path }}"
|
||||
state: directory
|
||||
owner: "{{ qbittorrent_config_path_owner }}"
|
||||
group: "{{ qbittorrent_config_path_group }}"
|
||||
mode: "{{ qbittorrent_config_path_mode }}"
|
||||
|
||||
- name: Ensure data directory {{ qbittorrent_data_path }} exists
|
||||
file:
|
||||
path: "{{ qbittorrent_data_path }}"
|
||||
state: directory
|
||||
owner: "{{ qbittorrent_data_path_owner }}"
|
||||
group: "{{ qbittorrent_data_path_group }}"
|
||||
mode: "{{ qbittorrent_dat_path_mode }}"
|
||||
|
||||
- name: Ensure container image {{ qbittorrent_container_image_ref }} is present
|
||||
docker_image:
|
||||
name: "{{ qbittorrent_container_image_ref }}"
|
||||
state: present
|
||||
source: pull
|
||||
force_source: "{{ qbittorrent_container_image_force_source }}"
|
||||
|
||||
- name: Ensure qbittorrent container is running
|
||||
docker_container:
|
||||
name: "{{ qbittorrent_container_name }}"
|
||||
image: "{{ qbittorrent_container_image_ref }}"
|
||||
volumes: "{{ qbittorrent_container_complete_volumes }}"
|
||||
env: "{{ qbittorrent_container_complete_environment }}"
|
||||
labels: "{{ qbittorrent_container_complete_labels }}"
|
||||
networks: "{{ qbittorrent_container_complete_networks | default(omit) }}"
|
||||
ports: "{{ qbittorrent_container_ports }}"
|
||||
user: "{{ qbittorrent_user_info.uid }}:{{ qbittorrent_user_info.group }}"
|
||||
restart_policy: "{{ qbittorrent_container_restart_policy }}"
|
||||
state: started
|
12
roles/qbittorrent/vars/main.yml
Normal file
12
roles/qbittorrent/vars/main.yml
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
|
||||
qbittorrent_container_volumes_base:
|
||||
- "{{ qbittorrent_config_path }}:/config:z"
|
||||
- "{{ qbittorrent_data_path }}:/data:z"
|
||||
qbittorrent_container_complete_volumes: "{{ qbittorrent_container_volumes_base + qbittorrent_container_volumes }}"
|
||||
|
||||
qbittorrent_container_labels_base:
|
||||
qbittorrent_container_complete_labels: "{{ qbittorrent_container_labels_base | combine(qbittorrent_container_labels) }}"
|
||||
|
||||
qbittorrent_container_environment_base:
|
||||
qbittorrent_container_complete_environment: "{{ qbittorrent_container_labels_base | combine(qbittorrent_container_labels) }}"
|
Loading…
Reference in New Issue
Block a user