mirror of
https://git.lapiole.org/dani/ansible-roles.git
synced 2025-07-29 18:55:34 +02:00
Update to 2021-12-01 19:13
This commit is contained in:
11
roles/transmission_daemon/defaults/main.yml
Normal file
11
roles/transmission_daemon/defaults/main.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
|
||||
transmission_user: transmission
|
||||
transmission_data_dir: /var/lib/transmission
|
||||
transmission_rpc_listen_ip: 0.0.0.0
|
||||
transmission_rpc_src_ip: []
|
||||
transmission_rpc_port: 9091
|
||||
transmission_port: 51413
|
||||
transmission_src_ip:
|
||||
- 0.0.0.0/0
|
||||
|
4
roles/transmission_daemon/handlers/main.yml
Normal file
4
roles/transmission_daemon/handlers/main.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
---
|
||||
|
||||
- name: restart transmission
|
||||
service: name=transmission-daemon state=restarted
|
56
roles/transmission_daemon/tasks/main.yml
Normal file
56
roles/transmission_daemon/tasks/main.yml
Normal file
@@ -0,0 +1,56 @@
|
||||
---
|
||||
|
||||
- name: Install transmission daemon
|
||||
yum: name=transmission-daemon state=present
|
||||
tags: torrent
|
||||
|
||||
- name: Create user
|
||||
user: name={{ transmission_user }} comment="Transmission Daemon" system=yes shell=/sbin/nologin
|
||||
tags: torrent
|
||||
|
||||
- name: Create directories
|
||||
file: path={{ transmission_data_dir }}/{{ item }} state=directory owner={{ transmission_user }}
|
||||
with_items:
|
||||
- finished
|
||||
- incomplete
|
||||
- watch
|
||||
failed_when: False # can fail if a fuse based FS is mounted here
|
||||
tags: torrent
|
||||
|
||||
- name: Deploy default config
|
||||
template: src=sysconfig.j2 dest=/etc/sysconfig/transmission
|
||||
notify: restart transmission
|
||||
tags: torrent
|
||||
|
||||
- name: Override default systemd unit
|
||||
template: src=transmission-daemon.service.j2 dest=/etc/systemd/system/transmission-daemon.service
|
||||
register: transmission_unit
|
||||
notify: restart transmission
|
||||
tags: torrent
|
||||
|
||||
- name: Handle transmission port
|
||||
iptables_raw:
|
||||
name: transmission_port
|
||||
state: "{{ (transmission_src_ip | length > 0) | ternary('present','absent') }}"
|
||||
rules: |
|
||||
-A INPUT -m state --state NEW -p tcp --dport {{ transmission_port }} -s {{ transmission_src_ip | join(',') }} -j ACCEPT
|
||||
-A INPUT -p udp --dport {{ transmission_port }} -s {{ transmission_src_ip | join(',') }} -j ACCEPT
|
||||
when: iptables_manage | default(True)
|
||||
tags: torrent,firewall
|
||||
|
||||
- name: Handle transmission RPC port
|
||||
iptables_raw:
|
||||
name=transmission_rpc_port
|
||||
state={{ (transmission_rpc_src_ip | length > 0) | ternary('present','absent') }}
|
||||
rules="-A INPUT -m state --state NEW -p tcp --dport {{ transmission_rpc_port }} -s {{ transmission_rpc_src_ip | join(',') }} -j ACCEPT"
|
||||
when: iptables_manage | default(True)
|
||||
tags: torrent,firewall
|
||||
|
||||
- name: Reload systemd
|
||||
command: systemctl daemon-reload
|
||||
when: transmission_unit.changed
|
||||
tags: torrent
|
||||
|
||||
- name: Start and enable the service
|
||||
service: name=transmission-daemon state=started enabled=yes
|
||||
tags: torrent
|
1
roles/transmission_daemon/templates/sysconfig.j2
Normal file
1
roles/transmission_daemon/templates/sysconfig.j2
Normal file
@@ -0,0 +1 @@
|
||||
TRANSMISSION_OPTS="--encryption-preferred --foreground -c {{ transmission_data_dir }}/watch --rpc-bind-address {{ transmission_rpc_listen_ip }} --port {{ transmission_rpc_port }} --no-auth --download-dir {{ transmission_data_dir }}/finished --incomplete-dir {{ transmission_data_dir }}/incomplete --log-error"
|
@@ -0,0 +1,20 @@
|
||||
[Unit]
|
||||
Description = Transmission BitTorrent Daemon
|
||||
After = network.target
|
||||
|
||||
[Service]
|
||||
Type=notify
|
||||
EnvironmentFile = /etc/sysconfig/transmission
|
||||
ExecStart = /bin/transmission-daemon $TRANSMISSION_OPTS
|
||||
ExecReload = /bin/kill -s HUP $MAINPID
|
||||
User = {{ transmission_user }}
|
||||
Group = {{ transmission_user }}
|
||||
Restart = on-failure
|
||||
IOSchedulingClass = best-effort
|
||||
IOSchedulingPriority = 7
|
||||
Nice = 10
|
||||
CPUSchedulingPolicy = idle
|
||||
|
||||
[Install]
|
||||
WantedBy = multi-user.target
|
||||
|
Reference in New Issue
Block a user