From fab0d5d2065b385849b8e639e80e4197eb2ce5b4 Mon Sep 17 00:00:00 2001 From: Adar Nimrod <nimrod@shore.co.il> Date: Wed, 17 May 2017 20:25:41 +0300 Subject: [PATCH] - Full role. --- defaults/main.yml | 2 ++ tasks/main.yml | 16 ++++++++++++ tasks/transmission-rss.yml | 37 +++++++++++++++++++++++++++ templates/transmission-rss.service.j2 | 13 ++++++++++ tests/playbook.yml | 3 +++ tests/test_transmission.py | 9 +++++++ tests/test_transmission_rss.py | 9 +++++++ 7 files changed, 89 insertions(+) create mode 100644 tasks/transmission-rss.yml create mode 100644 templates/transmission-rss.service.j2 create mode 100644 tests/test_transmission.py create mode 100644 tests/test_transmission_rss.py diff --git a/defaults/main.yml b/defaults/main.yml index 0cb6c98..79eb997 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 2255ca0..723567e 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 0000000..efcc0e4 --- /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 0000000..b6fa2d2 --- /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 5e3cd37..97529ec 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 0000000..67c6940 --- /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 0000000..89490a3 --- /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 -- GitLab