2023-06-10 13:10:47 +00:00
- name : Record (initial) disk space used
shell : df -B1 --output=used / | tail -1
2023-05-27 07:26:04 +00:00
register : df1
2020-09-22 05:04:06 +00:00
- name : "Install BitTorrent packages: transmission-daemon, transmission-cli"
package :
name :
- transmission-daemon
- transmission-cli
state : present
2023-06-12 01:33:35 +00:00
- block :
2023-06-12 02:17:46 +00:00
- name : "TRY TO COMPILE & INSTALL very latest Transmission, installing ~5 binaries in /usr/local/bin to take precedence over above ~6 binaries in /usr/bin (attempt surgery on systemd unit file from apt install above!)"
2023-06-12 01:33:35 +00:00
meta : noop
# https://github.com/transmission/transmission/blob/main/docs/Building-Transmission.md#on-unix
2023-06-12 13:59:31 +00:00
# https://github.com/transmission/transmission/issues/5362 tips thanks to @tearfur
- name : apt install build-essential cmake libcurl4-openssl-dev libssl-dev libsystemd-dev # git python3
2023-06-12 01:33:35 +00:00
package :
name :
- build-essential
- cmake
- libcurl4-openssl-dev
- libssl-dev
2023-06-12 13:59:31 +00:00
- libsystemd-dev
2023-06-12 01:33:35 +00:00
state : present
2023-06-12 04:51:20 +00:00
- name : Git clone https://github.com/transmission/transmission to /opt/iiab/transmission
2023-06-12 01:33:35 +00:00
git :
repo : https://github.com/transmission/transmission
dest : /opt/iiab/transmission
#version: 4.0.x # Otherwise default branch 'main'
depth : 1
force : yes
2023-06-12 04:44:14 +00:00
# https://github.com/transmission/transmission/blob/main/docs/Building-Transmission.md#building-transmission-from-git-first-time
2023-06-12 16:56:36 +00:00
- name : Compile, install & remove detritus (CAN TAKE 50 MINUTES OR MORE ON A RASPBERRY PI 4!)
2023-06-12 01:33:35 +00:00
shell : |
cd /opt/iiab/transmission
git submodule update --init --recursive
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
make
make install
2023-06-12 16:56:36 +00:00
cd
rm -rf /opt/iiab/transmission # 2023-06-12 : Frees up 1.1 GB on 32-bit RasPiOS. Frees up 1.6 GB on 64-bit RasPiOS.
2023-06-12 01:33:35 +00:00
2023-06-12 02:37:23 +00:00
- name : Attempt surgery on /lib/systemd/system/transmission-daemon.service (1) changing --log-error to --log-level=error (2) changing /usr/bin/transmission* to /usr/local/bin/transmission*
shell : |
2023-06-12 04:48:31 +00:00
sed -i 's/--log-error/--log-level=error/' /lib/systemd/system/transmission-daemon.service # --log-error deprecated since ~2020
2023-06-12 02:37:23 +00:00
sed -i 's#/usr/bin/transmission#/usr/local/bin/transmission#' /lib/systemd/system/transmission-daemon.service # daemon_reload handled by enable-or-disable.yml
2023-06-12 01:33:35 +00:00
when : transmission_compile_latest
2020-09-22 05:04:06 +00:00
- name : Create download dir {{ transmission_download_dir }}, owned by {{ transmission_user }}:{{ transmission_group }}
file :
state : directory
path : "{{ transmission_download_dir }}" # /library/transmission
2021-03-08 13:19:03 +00:00
owner : "{{ transmission_user }}" # debian-transmission
group : "{{ transmission_group }}" # debian-transmission
2020-09-22 05:04:06 +00:00
- name : Stop 'transmission-daemon' systemd service, before modifying its settings
systemd :
name : transmission-daemon
state : stopped
ignore_errors : yes
2023-06-12 01:33:35 +00:00
# 'transmission-daemon -d' (--dump-settings) CAN GENERATE A NEW settings.json
# ...then customize ~8 var lines to create a new templates/settings.json.j2
- name : Back up prior /etc/transmission-daemon/settings.json (file originally from apt, or new symlink contents) to /etc/transmission-daemon/settings.json.old*
2021-03-14 21:46:14 +00:00
copy :
src : /etc/transmission-daemon/settings.json
dest : /etc/transmission-daemon/settings.json.old
mode : preserve
owner : "{{ transmission_user }}" # debian-transmission
group : "{{ transmission_group }}" # debian-transmission
backup : yes
ignore_errors : yes
- name : "Back up IIAB's templated version to /etc/transmission-daemon/settings.json.iiab"
2020-09-22 05:04:06 +00:00
template :
src : settings.json.j2
2021-03-14 21:46:14 +00:00
dest : /etc/transmission-daemon/settings.json.iiab
2021-03-08 13:19:03 +00:00
owner : "{{ transmission_user }}" # debian-transmission
group : "{{ transmission_group }}" # debian-transmission
2021-03-14 21:46:14 +00:00
mode : '0600'
- name : Install /var/lib/transmission-daemon/.config/transmission-daemon/settings.json from template
template :
src : settings.json.j2
dest : /var/lib/transmission-daemon/.config/transmission-daemon/settings.json
owner : "{{ transmission_user }}" # debian-transmission
group : "{{ transmission_group }}" # debian-transmission
mode : '0600'
- name : "Reverse Transmission's fragile OOTB symlink -- instead we establish /etc/transmission-daemon/settings.json -> /var/lib/transmission-daemon/.config/transmission-daemon/settings.json -- REASON: /etc/transmission-daemon/settings.json was intermittently being IGNORED, as Transmission sometimes breaks its own symlink from /var/lib/transmission-daemon/.config/transmission-daemon/settings.json (by turning it into a file instead)"
file :
path : /etc/transmission-daemon/settings.json
2023-06-12 01:33:35 +00:00
src : /var/lib/transmission-daemon/.config/transmission-daemon/settings.json # Symlink /var/lib/transmission-daemon/home/settings.json also points to this
2021-03-14 21:46:14 +00:00
state : link
force : yes
2020-09-22 05:04:06 +00:00
# RECORD Transmission AS INSTALLED
2023-06-10 13:10:47 +00:00
- name : Record (final) disk space used
shell : df -B1 --output=used / | tail -1
2023-05-27 07:26:04 +00:00
register : df2
2023-06-10 13:10:47 +00:00
- name : Add 'transmission_disk_usage = {{ df2.stdout|int - df1.stdout|int }}' to {{ iiab_ini_file }}
2023-05-27 07:26:04 +00:00
ini_file :
path : "{{ iiab_ini_file }}" # /etc/iiab/iiab.ini
section : transmission
option : transmission_disk_usage
2023-06-10 13:10:47 +00:00
value : "{{ df2.stdout|int - df1.stdout|int }}"
2023-05-27 07:26:04 +00:00
2020-09-22 05:04:06 +00:00
- name : "Set 'transmission_installed: True'"
set_fact :
transmission_installed : True
- name : "Add 'transmission_installed: True' to {{ iiab_state_file }}"
lineinfile :
path : "{{ iiab_state_file }}" # /etc/iiab/iiab_state.yml
regexp : '^transmission_installed'
line: 'transmission_installed : True '