mirror of
				https://github.com/iiab/iiab.git
				synced 2025-03-09 15:40:17 +00:00 
			
		
		
		
	calibre - iiab_installed
This commit is contained in:
		
							parent
							
								
									adba04c871
								
							
						
					
					
						commit
						8c8e44ce03
					
				
					 3 changed files with 145 additions and 150 deletions
				
			
		
							
								
								
									
										54
									
								
								roles/calibre/tasks/enable.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								roles/calibre/tasks/enable.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,54 @@
 | 
			
		|||
# 5. WRAP UP: ENABLE CALIBRE SERVICE, http://box/books ETC
 | 
			
		||||
 | 
			
		||||
# http://box:8080 & http://box:8080/mobile WORK BUT OTHER URL'S LIKE http://box/calibre ARE A MESS (BOOKS RARELY DISPLAY)
 | 
			
		||||
#
 | 
			
		||||
# 2018-08-27 POSSIBLE FIX...CONSIDER THIS ProxyPass / ProxyPassReverse TECHNIQUE:
 | 
			
		||||
# https://github.com/iiab/iiab/tree/master/roles/calibre-web/templates/calibre-web.conf.j2
 | 
			
		||||
#    (anyway this works great for calibre-web, allowing http://box/books
 | 
			
		||||
#    to work even better than http://box:8083 when box == 192.168.0.x !)
 | 
			
		||||
- name: Create symlink calibre.conf from sites-enabled to sites-available, for UNTESTED http://box/calibre etc (debuntu)
 | 
			
		||||
  file:
 | 
			
		||||
    src: /etc/apache2/sites-available/calibre.conf
 | 
			
		||||
    dest: /etc/apache2/sites-enabled/calibre.conf
 | 
			
		||||
    state: link
 | 
			
		||||
  when: calibre_enabled and is_debuntu
 | 
			
		||||
 | 
			
		||||
- name: Remove symlink /etc/apache2/sites-enabled/calibre.conf (debuntu)
 | 
			
		||||
  file:
 | 
			
		||||
    dest: /etc/apache2/sites-enabled/calibre.conf
 | 
			
		||||
    state: absent
 | 
			
		||||
  when: (not calibre_enabled) and is_debuntu
 | 
			
		||||
 | 
			
		||||
- name: Enable & Start service 'calibre-serve' (/usr/bin/calibre-server by Kovid Goyal)
 | 
			
		||||
  service:
 | 
			
		||||
    name: calibre-serve
 | 
			
		||||
    enabled: yes
 | 
			
		||||
    state: started
 | 
			
		||||
  when: calibre_enabled | bool
 | 
			
		||||
  #async: 900
 | 
			
		||||
  #poll: 5
 | 
			
		||||
 | 
			
		||||
- name: Reload Apache service ({{ apache_service }})
 | 
			
		||||
  systemd:
 | 
			
		||||
    name: "{{ apache_service }}"
 | 
			
		||||
    state: reloaded
 | 
			
		||||
 | 
			
		||||
- name: Add 'calibre' variable values to {{ iiab_ini_file }}
 | 
			
		||||
  ini_file:
 | 
			
		||||
    path: "{{ iiab_ini_file }}"
 | 
			
		||||
    section: calibre
 | 
			
		||||
    option: "{{ item.option }}"
 | 
			
		||||
    value: "{{ item.value }}"
 | 
			
		||||
  with_items:
 | 
			
		||||
  - option: name
 | 
			
		||||
    value: Calibre
 | 
			
		||||
  - option: description
 | 
			
		||||
    value: '"Calibre is an extremely popular personal library system for e-books."'
 | 
			
		||||
  - option: url
 | 
			
		||||
    value: "{{ calibre_src_url }}"
 | 
			
		||||
  - option: database
 | 
			
		||||
    value: "{{ calibre_dbpath }}"
 | 
			
		||||
  - option: port
 | 
			
		||||
    value: "{{ calibre_port }}"
 | 
			
		||||
  - option: calibre_enabled
 | 
			
		||||
    value: "{{ calibre_enabled }}"
 | 
			
		||||
							
								
								
									
										87
									
								
								roles/calibre/tasks/install.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								roles/calibre/tasks/install.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,87 @@
 | 
			
		|||
# 1. INSTALL THE LATEST CALIBRE 3.X+ (calibre, calibredb, calibre-server etc) ON ALL OS'S
 | 
			
		||||
 | 
			
		||||
- name: Does /usr/bin/calibre exist?
 | 
			
		||||
  stat:
 | 
			
		||||
    path: "/usr/bin/calibre"
 | 
			
		||||
  register: calib_executable
 | 
			
		||||
 | 
			
		||||
- name: "Install OS's latest packages: calibre, calibre-bin (IF not rpi AND /usr/bin/calibre MISSING)"
 | 
			
		||||
  package:
 | 
			
		||||
    name:
 | 
			
		||||
      - calibre
 | 
			
		||||
      - calibre-bin
 | 
			
		||||
    state: latest
 | 
			
		||||
  when: internet_available and not is_rpi and (not calib_executable.stat.exists)
 | 
			
		||||
 | 
			
		||||
- name: Install Calibre .debs IF calibre_via_debs (AND /usr/bin/calibre WAS MISSING)
 | 
			
		||||
  include_tasks: debs.yml
 | 
			
		||||
  when: calibre_via_debs and (not calib_executable.stat.exists)
 | 
			
		||||
 | 
			
		||||
- name: Install Calibre via calibre-installer.py IF calibre_via_python (AND /usr/bin/calibre WAS MISSING)
 | 
			
		||||
  include_tasks: py-installer.yml
 | 
			
		||||
  when: calibre_via_python and (not calib_executable.stat.exists)
 | 
			
		||||
 | 
			
		||||
# SEE calibre_via_python's value vars/default_vars.yml, vars/ubuntu-18.yml &
 | 
			
		||||
# vars/raspbian-9.yml: try to AVOID Python installer on Raspbian since its
 | 
			
		||||
# .deb's (http://raspbian.raspberrypi.org/raspbian/pool/main/c/calibre/)
 | 
			
		||||
# are updated within about 10 days of Calibre's quasi-monthly releases!
 | 
			
		||||
#
 | 
			
		||||
# BUT IF ABSOLUTELY NEC: (SEE roles/calibre/tasks/debs.yml)
 | 
			
		||||
# - run testing branch for RPi: scripts/calibre-install-latest-rpi.sh
 | 
			
		||||
# - run testing branch for Ubuntu 16.04: scripts/calibre-install-latest.sh
 | 
			
		||||
# - run unstable branch for Debian etc: scripts/calibre-install-unstable.sh
 | 
			
		||||
 | 
			
		||||
- name: Create calibre-serve.service and calibre.conf (IF /usr/bin/calibre WAS MISSING)
 | 
			
		||||
  template:
 | 
			
		||||
    src: "{{ item.src }}"
 | 
			
		||||
    dest: "{{ item.dest }}"
 | 
			
		||||
    owner: root
 | 
			
		||||
    group: root
 | 
			
		||||
    mode: "{{ item.mode }}"
 | 
			
		||||
    backup: no
 | 
			
		||||
  #register: calibre_config
 | 
			
		||||
  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'}
 | 
			
		||||
  when: (not calib_executable.stat.exists)
 | 
			
		||||
 | 
			
		||||
- name: Stop service 'calibre-serve' (/usr/bin/calibre-server by Kovid Goyal)
 | 
			
		||||
  systemd:
 | 
			
		||||
    name: calibre-serve
 | 
			
		||||
    state: stopped
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
 | 
			
		||||
# 3. CREATE USER DATABASE
 | 
			
		||||
 | 
			
		||||
- name: Create /library/calibre (mandatory since Calibre 3.x)
 | 
			
		||||
  file:
 | 
			
		||||
    path: "{{ calibre_dbpath }}"
 | 
			
		||||
    state: directory
 | 
			
		||||
    #mode: 0755
 | 
			
		||||
 | 
			
		||||
- name: Copy template userdb to /library/calibre/users.sqlite (IF /usr/bin/calibre WAS MISSING)
 | 
			
		||||
  copy:
 | 
			
		||||
    src: /opt/iiab/iiab/roles/calibre/templates/users.sqlite
 | 
			
		||||
    dest: "{{ calibre_userdb }}"
 | 
			
		||||
    owner: root
 | 
			
		||||
    group: root
 | 
			
		||||
    mode: 0644
 | 
			
		||||
  when: (not calib_executable.stat.exists)
 | 
			
		||||
 | 
			
		||||
# 4. CREATE CONTENT DATABASE WITH A SAMPLE BOOK (REQUIRED AS OF CALIBRE 3.x)
 | 
			
		||||
 | 
			
		||||
- name: Does /library/calibre/metadata.db exist?
 | 
			
		||||
  stat:
 | 
			
		||||
    path: "{{ calibre_dbpath }}/metadata.db"
 | 
			
		||||
  register: calibre_db
 | 
			
		||||
 | 
			
		||||
- name: Create database (required since Calibre 3.x) with a sample book
 | 
			
		||||
  include_tasks: create-db.yml
 | 
			
		||||
  when: not calibre_db.stat.exists
 | 
			
		||||
 | 
			
		||||
- name: Add 'calibre_installed' variable values to {{ iiab_installed }}
 | 
			
		||||
  lineinfile:
 | 
			
		||||
    dest: "{{ iiab_installed }}"
 | 
			
		||||
    regexp: '^calibreweb_installed'
 | 
			
		||||
    line: 'calibre_installed'
 | 
			
		||||
    state: present
 | 
			
		||||
| 
						 | 
				
			
			@ -1,151 +1,5 @@
 | 
			
		|||
# 1. INSTALL THE LATEST CALIBRE 3.X+ (calibre, calibredb, calibre-server etc) ON ALL OS'S
 | 
			
		||||
- include_tasks: install.yml
 | 
			
		||||
  when: calibre_install and not calibre_installed is defined
 | 
			
		||||
 | 
			
		||||
- name: Does /usr/bin/calibre exist?
 | 
			
		||||
  stat:
 | 
			
		||||
    path: "/usr/bin/calibre"
 | 
			
		||||
  register: calib_executable
 | 
			
		||||
 | 
			
		||||
- name: "Install OS's latest packages: calibre, calibre-bin (IF not rpi AND /usr/bin/calibre MISSING)"
 | 
			
		||||
  package:
 | 
			
		||||
    name:
 | 
			
		||||
      - calibre
 | 
			
		||||
      - calibre-bin
 | 
			
		||||
    state: latest
 | 
			
		||||
  when: internet_available and not is_rpi and (not calib_executable.stat.exists)
 | 
			
		||||
 | 
			
		||||
- name: Install Calibre .debs IF calibre_via_debs (AND /usr/bin/calibre WAS MISSING)
 | 
			
		||||
  include_tasks: debs.yml
 | 
			
		||||
  when: calibre_via_debs and (not calib_executable.stat.exists)
 | 
			
		||||
 | 
			
		||||
- name: Install Calibre via calibre-installer.py IF calibre_via_python (AND /usr/bin/calibre WAS MISSING)
 | 
			
		||||
  include_tasks: py-installer.yml
 | 
			
		||||
  when: calibre_via_python and (not calib_executable.stat.exists)
 | 
			
		||||
 | 
			
		||||
# SEE calibre_via_python's value vars/default_vars.yml, vars/ubuntu-18.yml &
 | 
			
		||||
# vars/raspbian-9.yml: try to AVOID Python installer on Raspbian since its
 | 
			
		||||
# .deb's (http://raspbian.raspberrypi.org/raspbian/pool/main/c/calibre/)
 | 
			
		||||
# are updated within about 10 days of Calibre's quasi-monthly releases!
 | 
			
		||||
#
 | 
			
		||||
# BUT IF ABSOLUTELY NEC: (SEE roles/calibre/tasks/debs.yml)
 | 
			
		||||
# - run testing branch for RPi: scripts/calibre-install-latest-rpi.sh
 | 
			
		||||
# - run testing branch for Ubuntu 16.04: scripts/calibre-install-latest.sh
 | 
			
		||||
# - run unstable branch for Debian etc: scripts/calibre-install-unstable.sh
 | 
			
		||||
 | 
			
		||||
- name: Create calibre-serve.service and calibre.conf (IF /usr/bin/calibre WAS MISSING)
 | 
			
		||||
  template:
 | 
			
		||||
    src: "{{ item.src }}"
 | 
			
		||||
    dest: "{{ item.dest }}"
 | 
			
		||||
    owner: root
 | 
			
		||||
    group: root
 | 
			
		||||
    mode: "{{ item.mode }}"
 | 
			
		||||
    backup: no
 | 
			
		||||
  #register: calibre_config
 | 
			
		||||
  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'}
 | 
			
		||||
  when: (not calib_executable.stat.exists)
 | 
			
		||||
 | 
			
		||||
- name: Force systemd to reread configs (IF /usr/bin/calibre WAS MISSING)
 | 
			
		||||
  systemd:
 | 
			
		||||
    daemon_reload: yes
 | 
			
		||||
  when: (not calib_executable.stat.exists)
 | 
			
		||||
  #when: calibre_config.changed
 | 
			
		||||
 | 
			
		||||
# 2. STOP CALIBRE SERVICE (REQUIRED FOR DB ACTIVITY...AND IF not calibre_enabled)
 | 
			
		||||
 | 
			
		||||
#- name: Check if Calibre systemd service exists
 | 
			
		||||
#  stat:
 | 
			
		||||
#    path: /etc/systemd/system/calibre-serve.service
 | 
			
		||||
#  register: calibre_svc
 | 
			
		||||
 | 
			
		||||
- name: Stop service 'calibre-serve' (/usr/bin/calibre-server by Kovid Goyal)
 | 
			
		||||
  systemd:
 | 
			
		||||
    name: calibre-serve
 | 
			
		||||
    state: stopped
 | 
			
		||||
    #enabled: no
 | 
			
		||||
  #register: command_result    # gist.github.com/tyrells/0a79681de339237cb04c
 | 
			
		||||
  #failed_when: False          # Never Fail during "systemctl stop calibre-serve" (even if service doesn't exist!)
 | 
			
		||||
  #when: calibre_svc.stat.exists
 | 
			
		||||
 | 
			
		||||
# 3. CREATE USER DATABASE
 | 
			
		||||
 | 
			
		||||
- name: Create /library/calibre (mandatory since Calibre 3.x)
 | 
			
		||||
  file:
 | 
			
		||||
    path: "{{ calibre_dbpath }}"
 | 
			
		||||
    state: directory
 | 
			
		||||
    #mode: 0755
 | 
			
		||||
 | 
			
		||||
- name: Copy template userdb to /library/calibre/users.sqlite (IF /usr/bin/calibre WAS MISSING)
 | 
			
		||||
  copy:
 | 
			
		||||
    src: /opt/iiab/iiab/roles/calibre/templates/users.sqlite
 | 
			
		||||
    dest: "{{ calibre_userdb }}"
 | 
			
		||||
    owner: root
 | 
			
		||||
    group: root
 | 
			
		||||
    mode: 0644
 | 
			
		||||
  when: (not calib_executable.stat.exists)
 | 
			
		||||
 | 
			
		||||
# 4. CREATE CONTENT DATABASE WITH A SAMPLE BOOK (REQUIRED AS OF CALIBRE 3.x)
 | 
			
		||||
 | 
			
		||||
- name: Does /library/calibre/metadata.db exist?
 | 
			
		||||
  stat:
 | 
			
		||||
    path: "{{ calibre_dbpath }}/metadata.db"
 | 
			
		||||
  register: calibre_db
 | 
			
		||||
 | 
			
		||||
- name: Create database (required since Calibre 3.x) with a sample book
 | 
			
		||||
  include_tasks: create-db.yml
 | 
			
		||||
  when: not calibre_db.stat.exists
 | 
			
		||||
 | 
			
		||||
# 5. WRAP UP: ENABLE CALIBRE SERVICE, http://box/books ETC
 | 
			
		||||
 | 
			
		||||
# http://box:8080 & http://box:8080/mobile WORK BUT OTHER URL'S LIKE http://box/calibre ARE A MESS (BOOKS RARELY DISPLAY)
 | 
			
		||||
#
 | 
			
		||||
# 2018-08-27 POSSIBLE FIX...CONSIDER THIS ProxyPass / ProxyPassReverse TECHNIQUE:
 | 
			
		||||
# https://github.com/iiab/iiab/tree/master/roles/calibre-web/templates/calibre-web.conf.j2
 | 
			
		||||
#    (anyway this works great for calibre-web, allowing http://box/books
 | 
			
		||||
#    to work even better than http://box:8083 when box == 192.168.0.x !)
 | 
			
		||||
- name: Create symlink calibre.conf from sites-enabled to sites-available, for UNTESTED http://box/calibre etc (debuntu)
 | 
			
		||||
  file:
 | 
			
		||||
    src: /etc/apache2/sites-available/calibre.conf
 | 
			
		||||
    dest: /etc/apache2/sites-enabled/calibre.conf
 | 
			
		||||
    state: link
 | 
			
		||||
  when: calibre_enabled and is_debuntu
 | 
			
		||||
 | 
			
		||||
- name: Remove symlink /etc/apache2/sites-enabled/calibre.conf (debuntu)
 | 
			
		||||
  file:
 | 
			
		||||
    dest: /etc/apache2/sites-enabled/calibre.conf
 | 
			
		||||
    state: absent
 | 
			
		||||
  when: (not calibre_enabled) and is_debuntu
 | 
			
		||||
 | 
			
		||||
- name: Enable & Start service 'calibre-serve' (/usr/bin/calibre-server by Kovid Goyal)
 | 
			
		||||
  service:
 | 
			
		||||
    name: calibre-serve
 | 
			
		||||
    enabled: yes
 | 
			
		||||
    state: started
 | 
			
		||||
  when: calibre_enabled | bool
 | 
			
		||||
  #async: 900
 | 
			
		||||
  #poll: 5
 | 
			
		||||
 | 
			
		||||
- name: Reload Apache service ({{ apache_service }})
 | 
			
		||||
  systemd:
 | 
			
		||||
    name: "{{ apache_service }}"
 | 
			
		||||
    state: reloaded
 | 
			
		||||
 | 
			
		||||
- name: Add 'calibre' variable values to {{ iiab_ini_file }}
 | 
			
		||||
  ini_file:
 | 
			
		||||
    path: "{{ iiab_ini_file }}"
 | 
			
		||||
    section: calibre
 | 
			
		||||
    option: "{{ item.option }}"
 | 
			
		||||
    value: "{{ item.value }}"
 | 
			
		||||
  with_items:
 | 
			
		||||
  - option: name
 | 
			
		||||
    value: Calibre
 | 
			
		||||
  - option: description
 | 
			
		||||
    value: '"Calibre is an extremely popular personal library system for e-books."'
 | 
			
		||||
  - option: url
 | 
			
		||||
    value: "{{ calibre_src_url }}"
 | 
			
		||||
  - option: database
 | 
			
		||||
    value: "{{ calibre_dbpath }}"
 | 
			
		||||
  - option: port
 | 
			
		||||
    value: "{{ calibre_port }}"
 | 
			
		||||
  - option: calibre_enabled
 | 
			
		||||
    value: "{{ calibre_enabled }}"
 | 
			
		||||
- include_tasks: enable.yml
 | 
			
		||||
  when: calibre_install or calibre_installed is defined
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue