Browse Source

add kodi repository and trakt server

python3
Andrea Cimbalo 7 years ago
parent
commit
bbb769e296
12 changed files with 213 additions and 0 deletions
  1. +2
    -0
      media.yaml
  2. +4
    -0
      roles/kodi-repository/defaults/main.yaml
  3. +6
    -0
      roles/kodi-repository/meta/main.yaml
  4. +49
    -0
      roles/kodi-repository/tasks/main.yml
  5. +21
    -0
      roles/kodi-repository/templates/addon.xml.j2
  6. +4
    -0
      roles/kodi-repository/templates/kodi-repository.conf.nginx.j2
  7. +1
    -0
      roles/trakt/defaults/main.yaml
  8. +9
    -0
      roles/trakt/meta/main.yaml
  9. +55
    -0
      roles/trakt/tasks/main.yaml
  10. +3
    -0
      roles/trakt/templates/config.py.j2
  11. +0
    -0
      roles/trakt/templates/trakt.conf.nginx.j2
  12. +59
    -0
      roles/trakt/templates/trakt.j2

+ 2
- 0
media.yaml View File

@ -13,6 +13,8 @@
webdav_folders:
- Movies
- Series
- role: kodi-repository
- role: trakt
- hosts: status
roles:
- role: icinga2-monitoring

+ 4
- 0
roles/kodi-repository/defaults/main.yaml View File

@ -0,0 +1,4 @@
---
fqdn_domain: "{{ ansible_hostname }}.lilik.it"
repository_folder: "kodi-repository"
repository_url: "https://{{ fqdn_domain }}/{{ repository_folder }}/"

+ 6
- 0
roles/kodi-repository/meta/main.yaml View File

@ -0,0 +1,6 @@
---
dependencies:
- role: nginx
config_name: "kodi-repository"
server_fqdn: "{{ fqdn_domain }}"
parent_role_path: "kodi-repository"

+ 49
- 0
roles/kodi-repository/tasks/main.yml View File

@ -0,0 +1,49 @@
- name: install kodi-repository packages
apt:
name: "{{ item }}"
state: present
update_cache: yes
cache_valid_time: 3600
install_recommends: '{{ install_recommends | default("no") }}'
with_items:
- python-git
- name: download create_repository script
get_url:
url: https://raw.githubusercontent.com/chadparry/kodi-repository.chad.parry.org/master/tools/create_repository.py
dest: /root/create_repository.py
mode: 0540
- name: create kodi-repository directory
file:
path: '/srv/{{ repository_folder }}/{{ item }}'
state: directory
owner: www-data
group: www-data
mode: 0755
with_items:
- ''
- 'repository-addon'
- stat:
path: '/srv/kodi-repository/addons.xml'
checksum_algorithm: sha256
register: repository_folder_md5
- name: upload repository addon xml
template:
src: addon.xml.j2
dest: "/srv/{{ repository_folder }}/repository-addon/addon.xml"
- name: generate kodi repository
command: '/root/create_repository.py http://projects.lilik.it/kaos.lilik.it/kodi-trakt-plugin.git /srv/{{ repository_folder }}/repository-addon'
args:
chdir: "/srv/{{ repository_folder }}"
changed_when: False
- name: check if repository has been changed
stat:
path: '/srv/kodi-repository/addons.xml'
checksum_algorithm: sha256
register: repository_folder_md5_2
changed_when: "'checksum' not in repository_folder_md5['stat'] or repository_folder_md5['stat']['checksum'] != repository_folder_md5_2['stat']['checksum']"

+ 21
- 0
roles/kodi-repository/templates/addon.xml.j2 View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<addon id="media.lilik.it" name="LILiK Repository" version="0.0.1" provider-name="LILiK">
<extension point="xbmc.addon.repository" name="LILiK Repository">
<info compressed="true">{{ repository_url }}addons.xml</info>
<checksum>{{ repository_url }}addons.xml.md5</checksum>
<datadir zip="true">{{ repository_url }}</datadir>
</extension>
<extension point="xbmc.addon.metadata">
<summary>LILiK Repository</summary>
<description>A repository of add-ons that LILiK provide</description>
<disclaimer></disclaimer>
<news></news>
<platform>all</platform>
<language></language>
<license>GNU GENERAL PUBLIC LICENSE. Version 2, June 1991</license>
<forum></forum>
<website></website>
<source></source>
<email></email>
</extension>
</addon>

+ 4
- 0
roles/kodi-repository/templates/kodi-repository.conf.nginx.j2 View File

@ -0,0 +1,4 @@
location /kodi-repository/ {
alias /srv/kodi-repository/;
autoindex on;
}

+ 1
- 0
roles/trakt/defaults/main.yaml View File

@ -0,0 +1 @@
fqdn_domain: "{{ ansible_hostname }}.lilik.it"

+ 9
- 0
roles/trakt/meta/main.yaml View File

@ -0,0 +1,9 @@
---
dependencies:
- role: nginx
is_proxy: true
config_name: "trakt"
proxy_location_path: "trakt"
remote_host: "http://localhost:5000"
server_fqdn: "media.lilik.it"
parent_role_path: "trakt"

+ 55
- 0
roles/trakt/tasks/main.yaml View File

@ -0,0 +1,55 @@
- name: install trakt packages
apt:
name: "{{ item }}"
state: present
update_cache: yes
cache_valid_time: 3600
install_recommends: '{{ install_recommends | default("no") }}'
with_items:
- git
- python3
- python3-flask-sqlalchemy
- python3-flask
- name: clone trakt repository
git:
repo: http://projects.lilik.it/kaos.lilik.it/trakt-server.git
dest: /srv/trakt
notify:
- restart trakt
- name: add trakt user
user:
name: trakt
system: yes
home: /srv/trakt
- name: add trakt config
template:
src: config.py.j2
dest: /srv/trakt/config.py
mode: 440
owner: trakt
group: trakt
register: add_trakt_startup_script
notify:
- restart trakt
- name: add trakt init script
template: src=trakt.j2 dest=/etc/init.d/trakt mode=755
register: add_trakt_startup_script
notify:
- restart trakt
- name: reload systemd
systemd:
daemon_reload: yes
name: trakt
when: add_trakt_startup_script.changed
- include_role:
name: service
vars:
service_name: trakt
service_packages: null

+ 3
- 0
roles/trakt/templates/config.py.j2 View File

@ -0,0 +1,3 @@
server_url = "{{ fqdn_domain }}/trakt"
db_uri = "sqlite:///test.db"
debug = True

+ 0
- 0
roles/trakt/templates/trakt.conf.nginx.j2 View File


+ 59
- 0
roles/trakt/templates/trakt.j2 View File

@ -0,0 +1,59 @@
#!/bin/sh
### BEGIN INIT INFO
# Provides: trakt
# Required-Start: $remote_fs $syslog $networking
# Required-Stop: $remote_fs $syslog $networking
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: trakt
# Description: LILiK user manager interface
### END INIT INFO
DIR=/srv/trakt
DAEMON=$DIR/server.py
DAEMON_NAME=trakt
# Add any command line options for your daemon here
DAEMON_OPTS=""
# This next line determines what user the script runs as.
DAEMON_USER=trakt
# The process ID of the script when it runs is stored here:
PIDFILE=/var/run/$DAEMON_NAME.pid
. /lib/lsb/init-functions
do_start () {
log_daemon_msg "Starting system $DAEMON_NAME daemon"
start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --user $DAEMON_USER --chuid $DAEMON_USER --startas $DAEMON -- $DAEMON_OPTS
log_end_msg $?
}
do_stop () {
log_daemon_msg "Stopping system $DAEMON_NAME daemon"
start-stop-daemon --stop --pidfile $PIDFILE --retry 10
log_end_msg $?
}
case "$1" in
start|stop)
do_${1}
;;
restart|reload|force-reload)
do_stop
do_start
;;
status)
status_of_proc "$DAEMON_NAME" "$DAEMON" && exit 0 || exit $?
;;
*)
echo "Usage: /etc/init.d/$DAEMON_NAME {start|stop|restart|status}"
exit 1
;;
esac
exit 0

Loading…
Cancel
Save