2017-11-15 18:45:43 +00:00
- name : Download latest calibre-installer.py from GitHub
# seems to work with just about any Linux, and deals with dependencies
2017-05-27 18:09:50 +00:00
get_url :
2017-11-15 18:45:43 +00:00
url : "{{ calibre_src_url }}"
dest : "{{ downloads_dir }}/calibre-installer.py"
mode : 0755
force : yes
backup : yes
register : calibre_download_output
when : internet_available
2017-05-27 18:09:50 +00:00
2017-11-15 18:45:43 +00:00
# ALWAYS DEFINED, DESPITE get_url DOCUMENTATION CLAIM...
# - debug:
# msg: "{{ calibre_download_output.src }}"
#
# DEFINED ONLY WHEN /opt/iiab/downloads/calibre-installer.py CHANGES
# - debug:
# msg: "{{ calibre_download_output.backup_file }}"
# OOPS BAD IDEA: changes in https://github.com/kovidgoyal/calibre/commits/master/setup/linux-installer.py are not sync'd with Calibre releases!
# - name: FORCE AN UPGRADE IF calibre-installer.py HAS CHANGED, IF SO ORIGINAL IS SAVED TO {{ calibre_download_output.backup_file }}
# file:
# path: /usr/bin/calibre-uninstall
# state: absent
# when: calibre_download_output.backup_file is defined
- name : Check if calibre-installer.py exists in /opt/iiab/downloads
stat :
path : "{{ downloads_dir }}/calibre-installer.py"
register : calib_inst
2017-11-15 19:17:51 +00:00
- name : FAIL (force Ansible to exit) IF /opt/iiab/downloads/calibre-installer.py doesn't exist OR Internet connection is missing
# meta: end_play
2017-11-15 18:45:43 +00:00
fail :
2017-11-15 19:17:51 +00:00
msg : "{{ downloads_dir }}/calibre-installer.py and an Internet connection are REQUIRED in order to install Calibre!"
when : (not calib_inst.stat.exists) or (not internet_available)
2017-11-15 18:45:43 +00:00
# INSTALL THE LATEST CALIBRE (calibre-server etc) ON ALL OS'S - RUNS IF /usr/bin/calibre-uninstall DOES NOT ALEADY EXIST
2017-11-15 23:01:56 +00:00
- name : Run calibre-installer.py to install Calibre programs into /usr/bin - MANUALLY REMOVE /usr/bin/calibre-uninstall TO FORCE calibre-installer.py TO REINSTALL/UPGRADE HERE!
2017-05-27 18:09:50 +00:00
shell : "{{ downloads_dir }}/calibre-installer.py >> /dev/null"
args :
creates : /usr/bin/calibre-uninstall
2017-11-15 18:45:43 +00:00
when : internet_available
2017-05-27 18:09:50 +00:00
2017-11-15 18:45:43 +00:00
# - name: Install Calibre (OS's other than CentOS)
# # the fedora rpm arm version, though older, takes care of dependencies, and exists
# package: name={{ item }}
# state=present
# with_items:
# - calibre
# when: calibre_install and ansible_distribution != 'CentOS'
2017-05-27 18:09:50 +00:00
2017-11-05 05:16:18 +00:00
- name : Create calibre-serve.service and calibre.conf
2017-11-15 18:45:43 +00:00
template :
backup : no
src : "{{ item.src }}"
dest : "{{ item.dest }}"
owner : root
group : root
mode : "{{ item.mode }}"
2017-05-27 18:09:50 +00:00
with_items :
- { src: 'calibre-serve.service.j2', dest: '/etc/systemd/system/calibre-serve.service', mode : '0644' }
- { src: 'calibre.conf', dest : '/etc/{{ apache_config_dir }}' , mode : '0644' }
2017-11-15 18:45:43 +00:00
# http://box:8080 & http://box:8080/mobile WORK BUT OTHER URL'S LIKE http://box/books ARE A MESS (BOOKS RARELY DISPLAY)
- name : Create calibre.conf link for UNTESTED http://box/books etc (debuntu)
file :
src : /etc/apache2/sites-available/calibre.conf
dest : /etc/apache2/sites-enabled/calibre.conf
state : link
when : is_debuntu
# CREATE CALIBRE DATABASE WITH A SAMPLE BOOK
- name : Disable Calibre service -- stops calibre-server by Kovid Goyal
service :
name : calibre-serve
enabled : no
state : stopped
- name : Create /library/calibre (mandatory since Calibre 3.x)
file :
path : "{{ calibre_dbpath }}"
state : directory
mode : 0755
- name : Check if sample book exists in /opt/iiab/downloads
stat :
path : "{{ content_base }}/downloads/{{ calibre_sample_book }}"
register : sample_bk
- name : Download sample book (mandatory since Calibre 3.x)
get_url :
url : "{{ iiab_download_url }}/{{ calibre_sample_book }}"
dest : "{{ content_base }}/downloads"
when : internet_available and not sample_bk.stat.exists
- name : Check if sample book exists in /opt/iiab/downloads
stat :
path : "{{ content_base }}/downloads/{{ calibre_sample_book }}"
register : sample_bk
- name : Check if /library/calibre/metadata.db exists
stat :
path : "{{ calibre_dbpath }}/metadata.db"
register : calibre_db
- name : Incorporate sample book into Calibre DB (mandatory since Calibre 3.x)
shell : "calibredb add {{ content_base }}/downloads/{{ calibre_sample_book }} --with-library {{ calibre_dbpath }}"
when : sample_bk.stat.exists and not calibre_db.stat.exists
# WRAP UP CALIBRE INSTALLATION
2017-05-27 18:09:50 +00:00
2017-11-14 15:51:08 +00:00
- name : Enable Calibre service -- runs calibre-server by Kovid Goyal
2017-11-15 18:45:43 +00:00
service :
name : calibre-serve
enabled : yes
state : started
#async: 900
#poll: 5
2017-05-27 18:09:50 +00:00
when : calibre_enabled
2017-11-15 18:45:43 +00:00
# - name: Disable Calibre service -- stops calibre-server by Kovid Goyal
# service: name=calibre-serve
# enabled=no
# state=stopped
# when: not calibre_enabled
2017-05-27 18:09:50 +00:00
2017-11-05 05:16:18 +00:00
- name : Add 'calibre-serve' to service list
2017-11-15 18:45:43 +00:00
ini_file :
dest : "{{ service_filelist }}"
section : calibre
option : "{{ item.option }}"
value : "{{ item.value }}"
2017-05-27 18:09:50 +00:00
with_items :
- option : description
2017-11-13 19:36:01 +00:00
value : '"Calibre is an extremely popular personal library system for e-books."'
2017-05-27 18:09:50 +00:00
- option : url
value : "{{ calibre_src_url }}"
- option : database
value : "{{ calibre_dbpath }}"
- option : port
value : "{{ calibre_port }}"
- option : enabled
value : "{{ calibre_enabled }}"