mirror of
https://github.com/iiab/iiab.git
synced 2025-02-13 19:52:06 +00:00
127 lines
5.2 KiB
YAML
127 lines
5.2 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
|
|
- 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 (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'
|