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