160 lines
4.1 KiB
YAML
160 lines
4.1 KiB
YAML
---
|
|
- name: install dependencies
|
|
become: true
|
|
ansible.builtin.apt:
|
|
update_cache: yes
|
|
force_apt_get: true
|
|
state: present
|
|
cache_valid_time: 3600
|
|
pkg:
|
|
- closure-compiler
|
|
- git
|
|
- intltool
|
|
- openssl
|
|
- pkg-config
|
|
- python3-dbus
|
|
- python3-geoip
|
|
- python3-libtorrent
|
|
- python3-pip
|
|
- python3-virtualenv
|
|
- name: gather facts
|
|
ansible.builtin.include_tasks: gather_facts.yml
|
|
- name: create service group
|
|
become: true
|
|
ansible.builtin.group:
|
|
name: '{{ deluge_group }}'
|
|
system: true
|
|
state: present
|
|
- name: create service user
|
|
become: true
|
|
ansible.builtin.user:
|
|
name: '{{ deluge_user }}'
|
|
group: '{{ deluge_group }}'
|
|
shell: '/usr/sbin/nologin'
|
|
home: '{{ deluge_install_dir }}'
|
|
create_home: true
|
|
system: true
|
|
state: present
|
|
- name: mark repository as safe
|
|
become: true
|
|
ansible.builtin.shell: >
|
|
git config --global --get safe.directory {{ deluge_git_dir }} ||
|
|
git config --global --add safe.directory {{ deluge_git_dir }}
|
|
- name: clone repository
|
|
become: true
|
|
ansible.builtin.git:
|
|
repo: '{{ deluge_git_repository }}'
|
|
dest: '{{ deluge_git_dir }}'
|
|
single_branch: true
|
|
version: '{{ deluge_git_version }}'
|
|
- name: setup virtualenv
|
|
become: true
|
|
ansible.builtin.pip:
|
|
requirements: '{{ deluge_git_dir }}/requirements.txt'
|
|
virtualenv: '{{ deluge_git_dir }}/.venv'
|
|
virtualenv_site_packages: true
|
|
- name: build project
|
|
become: true
|
|
command: >-
|
|
.venv/bin/python setup.py bdist_wheel
|
|
args:
|
|
chdir: '{{ deluge_git_dir }}'
|
|
- name: install generated wheel
|
|
become: true
|
|
ansible.builtin.shell: >-
|
|
.venv/bin/pip install dist/*.whl --no-index --find-links=.
|
|
args:
|
|
chdir: '{{ deluge_git_dir }}'
|
|
- name: set ownership
|
|
become: true
|
|
ansible.builtin.file:
|
|
path: '{{ deluge_git_dir }}'
|
|
owner: '{{ deluge_user }}'
|
|
group: '{{ deluge_group }}'
|
|
mode: 'u=rwX,g=rX,o='
|
|
recurse: yes
|
|
follow: false
|
|
- name: install man page
|
|
become: true
|
|
ansible.builtin.copy:
|
|
src: '{{ deluge_git_dir }}/docs/man/deluged.1'
|
|
remote_src: true
|
|
dest: '/usr/local/share/man/man1/'
|
|
owner: root
|
|
group: root
|
|
mode: 'u=rwX,g=rX,o='
|
|
- name: install deluged unit files
|
|
become: true
|
|
ansible.builtin.template:
|
|
src: ../templates/systemd/deluged.service.j2
|
|
dest: '{{ systemd_unit_directory }}/deluged.service'
|
|
owner: root
|
|
group: root
|
|
mode: 'u=rwX,g=rX,o='
|
|
notify:
|
|
- 'deluge : restart deluged service'
|
|
- name: install systemd unit files
|
|
become: true
|
|
ansible.builtin.template:
|
|
src: ../templates/systemd/deluge-web.service.j2
|
|
dest: '{{ systemd_unit_directory }}/deluge-web.service'
|
|
owner: root
|
|
group: root
|
|
mode: 'u=rwX,g=rX,o='
|
|
notify:
|
|
- 'deluge : restart deluge-web service'
|
|
- name: create directories
|
|
become: true
|
|
ansible.builtin.file:
|
|
path: '{{ item }}'
|
|
owner: '{{ deluge_user }}'
|
|
group: '{{ deluge_group }}'
|
|
mode: 'u=rwX,g=rX,o='
|
|
state: directory
|
|
loop:
|
|
- '{{ deluge_download_dir }}'
|
|
- '{{ deluge_install_dir }}/.config/deluge'
|
|
- '{{ deluge_completed_dir }}'
|
|
- '{{ deluge_plugins_dir }}'
|
|
- '{{ deluge_torrentfiles_dir }}'
|
|
- name: 'install firewall ruleset'
|
|
become: true
|
|
ansible.builtin.template:
|
|
src: ../templates/nftables.d/deluge.nft.j2
|
|
dest: '/etc/nftables.d/deluge.nft'
|
|
owner: root
|
|
group: root
|
|
mode: 'u=rw,g=r,o='
|
|
notify:
|
|
- 'deluge : restart firewall'
|
|
- name: stop services
|
|
become: true
|
|
ansible.builtin.systemd:
|
|
name: '{{ item }}.service'
|
|
enabled: true
|
|
state: stopped
|
|
daemon_reload: true
|
|
loop:
|
|
- deluged
|
|
- deluge-web
|
|
- name: create basic configuration
|
|
become: true
|
|
ansible.builtin.template:
|
|
src: '../templates/{{ item }}.j2'
|
|
dest: '{{ deluge_install_dir }}/.config/deluge/{{ item }}'
|
|
owner: '{{ deluge_user }}'
|
|
group: '{{ deluge_group }}'
|
|
mode: 'u=rw,g=r,o='
|
|
loop:
|
|
- core.conf
|
|
- web.conf
|
|
- name: start services
|
|
become: true
|
|
ansible.builtin.systemd:
|
|
name: '{{ item }}.service'
|
|
enabled: true
|
|
state: started
|
|
daemon_reload: true
|
|
loop:
|
|
- deluged
|
|
- deluge-web
|