olimp/roles/qbittorrent/tasks/main.yml
Administrator 7b686a936c Update 4 files
- /group_vars/all.yml
- /roles/qbittorrent/tasks/main.yml
- /roles/qbittorrent/templates/docker-compose.yml.j2
- /roles/qbittorrent/templates/smb-credentials.j2
2025-12-18 11:31:51 +05:00

79 lines
2.4 KiB
YAML

---
- name: Создание директорий для qBittorrent
file:
path: "{{ item }}"
state: directory
owner: "{{ qbittorrent_puid }}"
group: "{{ qbittorrent_pgid }}"
mode: '0755'
loop:
- "{{ qbittorrent_config_dir }}"
- "{{ qbittorrent_downloads_dir }}"
- name: Создание директории для учетных данных SMB
file:
path: "{{ qbittorrent_smb_credentials_dir }}"
state: directory
mode: '0700'
- name: Создание файлов учетных данных SMB
template:
src: smb-credentials.j2
dest: "{{ qbittorrent_smb_credentials_dir }}/{{ item.key }}"
mode: '0600'
loop: "{{ qbittorrent_smb_creds | dict2items }}"
loop_control:
label: "{{ item.key }}"
- name: Монтирование SMB-шаров
mount:
path: "{{ item.dest }}"
src: "{{ item.src }}"
fstype: cifs
opts: "{{ item.opts }}{% if item.credential is defined %},credentials={{ qbittorrent_smb_credentials_dir }}/{{ item.credential }}{% endif %}"
state: mounted
loop: "{{ qbittorrent_shares }}"
loop_control:
label: "{{ item.name }}"
- name: Копирование docker-compose файла для qBittorrent
template:
src: docker-compose.yml.j2
dest: "{{ qbittorrent_base_dir }}/docker-compose.yml"
mode: '0644'
- name: Запуск qBittorrent контейнера
community.docker.docker_compose_v2:
project_src: "{{ qbittorrent_base_dir }}"
state: present
- name: Ожидание запуска qBittorrent
wait_for:
port: "{{ qbittorrent_port_webui }}"
timeout: 60
- name: Настройка пользователя qBittorrent
uri:
url: "http://localhost:{{ qbittorrent_port_webui }}/api/v2/auth/login"
method: POST
body_format: form-urlencoded
body:
username: "admin"
password: "adminadmin"
status_code: 200
register: login_response
until: login_response.status == 200
retries: 10
delay: 5
- name: Смена пароля по умолчанию
uri:
url: "http://localhost:{{ qbittorrent_port_webui }}/api/v2/app/setPreferences"
method: POST
body_format: json
body:
json: '{"web_ui":{"username":"{{ qbittorrent_user }}","password":"{{ qbittorrent_password }}","session_timeout":3600}}'
headers:
Cookie: "{{ login_response.set_cookie }}"
status_code: 200
when: login_response.status == 200