1
0
Fork 0
mirror of https://github.com/iiab/iiab.git synced 2025-02-13 03:32:12 +00:00
iiab/roles/transmission/tasks/install.yml

131 lines
5.5 KiB
YAML

- name: Record (initial) disk space used
shell: df -B1 --output=used / | tail -1
register: df1
- name: "Install BitTorrent packages: transmission-daemon, transmission-cli"
package:
name:
- transmission-daemon
- transmission-cli
state: present
- block:
- 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!)"
meta: noop
# https://github.com/transmission/transmission/blob/main/docs/Building-Transmission.md#on-unix
# 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
package:
name:
- build-essential
- cmake
- libcurl4-openssl-dev
- libssl-dev
- libsystemd-dev
state: present
- name: Git clone https://github.com/transmission/transmission 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
# https://github.com/transmission/transmission/blob/main/docs/Building-Transmission.md#building-transmission-from-git-first-time
- name: Compile, install & remove detritus (CAN TAKE 60+ MINUTES ON RASPBERRY PI 4!)
shell: |
cd /opt/iiab/transmission
git submodule update --init --recursive
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
make
make install
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.
- 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: |
sed -i 's/--log-error/--log-level=error/' /lib/systemd/system/transmission-daemon.service # --log-error deprecated since ~2020
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
- name: Create download dir {{ transmission_download_dir }}, owned by {{ transmission_user }}:{{ transmission_group }}
file:
state: directory
path: "{{ transmission_download_dir }}" # /library/transmission
owner: "{{ transmission_user }}" # debian-transmission
group: "{{ transmission_group }}" # debian-transmission
- name: Stop 'transmission-daemon' systemd service, before modifying its settings
systemd:
name: transmission-daemon
state: stopped
ignore_errors: yes
# '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*
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"
template:
src: settings.json.j2
dest: /etc/transmission-daemon/settings.json.iiab
owner: "{{ transmission_user }}" # debian-transmission
group: "{{ transmission_group }}" # debian-transmission
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
src: /var/lib/transmission-daemon/.config/transmission-daemon/settings.json # Symlink /var/lib/transmission-daemon/home/settings.json also points to this
state: link
force: yes
# RECORD Transmission AS INSTALLED
- name: Record (final) disk space used
shell: df -B1 --output=used / | tail -1
register: df2
- name: Add 'transmission_disk_usage = {{ df2.stdout|int - df1.stdout|int }}' to {{ iiab_ini_file }}
ini_file:
path: "{{ iiab_ini_file }}" # /etc/iiab/iiab.ini
section: transmission
option: transmission_disk_usage
value: "{{ df2.stdout|int - df1.stdout|int }}"
- 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'