diff --git a/defaults/main.yml b/defaults/main.yml index 0cb6c9842c552f1af26e69063b4914511c44871f..79eb997b76d2da14591b4150d2fc460576424ca9 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,2 +1,4 @@ --- # defaults file for transmission + +transmission_rss_version: '0.2.4' diff --git a/tasks/main.yml b/tasks/main.yml index 2255ca029b21509517ceca20c950150a0f4819e1..723567e7aef9d3e1c69fb903bbb2821d9f6713ef 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -6,3 +6,19 @@ that: - ansible_pkg_mgr == 'apt' - ansible_service_mgr == 'systemd' + +- name: APT install + apt: + name: transmission-daemon + state: present + update_cache: True + cache_valid_time: 3600 + +- name: Enable service + service: + name: transmission-daemon + state: started + enabled: True + +- include: transmission-rss.yml + when: transmission_rss_config is defined diff --git a/tasks/transmission-rss.yml b/tasks/transmission-rss.yml new file mode 100644 index 0000000000000000000000000000000000000000..efcc0e416a0af507fb5b6a63bb262a7d4a91c52f --- /dev/null +++ b/tasks/transmission-rss.yml @@ -0,0 +1,37 @@ +--- +# tasks file for transmission-rss + +- name: APT install transmission-rss pre-requisites + apt: + name: ruby-rb-inotify + state: present + update_cache: True + cache_valid_time: 3600 + +- name: Gem install transmission-rss + gem: + name: transmission-rss + version: '{{ transmission_rss_version }}' + state: present + +- name: Configure transmission-rss + copy: + content: '{{ transmission_rss_config|to_nice_yaml }}' + dest: /etc/transmission-rss.conf + owner: root + group: root + mode: 0o0644 + +- name: Add transmission-rss service + template: + src: transmission-rss.service.j2 + dest: /etc/systemd/system/transmission-rss.service + owner: root + group: root + mode: 0o0644 + +- name: Enable transmission-rss service + service: + name: transmission-rss + state: started + enabled: True diff --git a/templates/transmission-rss.service.j2 b/templates/transmission-rss.service.j2 new file mode 100644 index 0000000000000000000000000000000000000000..b6fa2d23260178367f53fe649ca14fcf72e752f1 --- /dev/null +++ b/templates/transmission-rss.service.j2 @@ -0,0 +1,13 @@ +[Unit] +Description=Transmission RSS daemon. +After=network.target transmission-daemon.service + +[Service] +Type=simple +ExecStart=/usr/local/bin/transmission-rss +ExecReload=/bin/kill -s HUP $MAINPID +User=debian-transmission +Restart=always + +[Install] +WantedBy=multi-user.target diff --git a/tests/playbook.yml b/tests/playbook.yml index 5e3cd377c8881daf7ddbbd2c744e95f23653fce6..97529ec22b25ea15d64c86de7eeeb2f7653b005b 100644 --- a/tests/playbook.yml +++ b/tests/playbook.yml @@ -20,3 +20,6 @@ - hosts: all roles: - role: transmission + transmission_rss_config: + feeds: + seen_file: ~/.config/transmission/seen diff --git a/tests/test_transmission.py b/tests/test_transmission.py new file mode 100644 index 0000000000000000000000000000000000000000..67c69400a70f23958fe69e3bbd47c13418110a93 --- /dev/null +++ b/tests/test_transmission.py @@ -0,0 +1,9 @@ +from testinfra.utils.ansible_runner import AnsibleRunner + +testinfra_hosts = AnsibleRunner('.molecule/ansible_inventory').get_hosts('all') + + +def test_transmission(host): + service = host.service('transmission-daemon') + assert service.is_running + assert service.is_enabled diff --git a/tests/test_transmission_rss.py b/tests/test_transmission_rss.py new file mode 100644 index 0000000000000000000000000000000000000000..89490a35ff68c28812a0adf02b2d54db51835458 --- /dev/null +++ b/tests/test_transmission_rss.py @@ -0,0 +1,9 @@ +from testinfra.utils.ansible_runner import AnsibleRunner + +testinfra_hosts = AnsibleRunner('.molecule/ansible_inventory').get_hosts('all') + + +def test_transmission_rss(host): + service = host.service('transmission-rss') + assert service.is_running + assert service.is_enabled