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
- name : apt install build-essential cmake libcurl4-openssl-dev libssl-dev # git python3
package :
name :
- build-essential
- cmake
- libcurl4-openssl-dev
- libssl-dev
state : present
# https://github.com/transmission/transmission/blob/main/docs/Building-Transmission.md#building-transmission-from-git-first-time
- name : Git clone latest to /opt/iiab/transmission
git :
repo : https://github.com/transmission/transmission
dest : /opt/iiab/transmission
#version: 4.0.x # Otherwise default branch 'main'
depth : 1
force : yes
- name : Compile & Install (CAN TAKE 10+ MINUTES, OR MUCH MORE ON A RASPBERRY PI!)
shell : |
cd /opt/iiab/transmission
git submodule update --init --recursive
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
make
make install
- name : Attempt surgery on /lib/systemd/system/transmission-daemon.service changing /usr/bin/transmission* to /usr/local/bin/transmission*
command : sed -i 's#/usr/bin/transmission#/usr/local/bin/transmission#' /lib/systemd/system/transmission-daemon.service # daemon_reload handled by enable-or-disable.yml
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 '