From 8106ed5df1982f7bda2888ab4f0bd19b870c344e Mon Sep 17 00:00:00 2001 From: A Holt Date: Tue, 14 Nov 2017 20:40:01 -0500 Subject: [PATCH 01/21] for Calibre 3.x --- roles/calibre/defaults/main.yml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/roles/calibre/defaults/main.yml b/roles/calibre/defaults/main.yml index 9cfb2630f..bfd9cdd35 100644 --- a/roles/calibre/defaults/main.yml +++ b/roles/calibre/defaults/main.yml @@ -1,6 +1,13 @@ calibre_port: 8080 -calibre_web_path: calibre -# In addition to: http://box/books box/libros box/livres box/livros box/liv -calibre_dbpath: "/library/calibre" +# http://box:8080 & http://box:8080/mobile WORK BUT THESE OTHER URL'S ARE A MESS (BOOKS RARELY DISPLAY) +calibre_web_path: calibre +# In addition to: http://box:8080 http://box/books box/libros box/livres box/livros box/liv + +calibre_dbpath: "{{ content_base }}/calibre" +# i.e. /library/calibre + +calibre_sample_book: "Metamorphosis-jackson.epub" +# Must be downloadable from http://download.iiab.io/packages + calibre_src_url: "https://raw.githubusercontent.com/kovidgoyal/calibre/master/setup/linux-installer.py" From 6f702b42e275d5c687def665b4e530390d9ba00e Mon Sep 17 00:00:00 2001 From: A Holt Date: Tue, 14 Nov 2017 20:45:27 -0500 Subject: [PATCH 02/21] for Calibre 3.x --- roles/calibre/templates/calibre-serve.service.j2 | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/roles/calibre/templates/calibre-serve.service.j2 b/roles/calibre/templates/calibre-serve.service.j2 index 39ad70f01..524845b6e 100644 --- a/roles/calibre/templates/calibre-serve.service.j2 +++ b/roles/calibre/templates/calibre-serve.service.j2 @@ -5,11 +5,8 @@ After=syslog.target network.target local-fs.target [Service] Type=forking PIDFile=/var/run/calibre.pid -{% if is_debuntu %} -ExecStart=/usr/bin/calibre-server --daemonize --pidfile=/var/run/calibre.pid --port={{ calibre_port }} --with-library={{ calibre_dbpath }} -{% else %} -ExecStart=/bin/calibre-server --daemonize --pidfile=/var/run/calibre.pid --port={{ calibre_port }} --with-library={{ calibre_dbpath }} -{% endif %} +ExecStart=/usr/bin/calibre-server --daemonize --log=/var/log/calibre.log --pidfile=/var/run/calibre.pid --port={{ calibre_port }} {{ calibre_dbpath }} + [Install] TimeoutStartSec=900 WantedBy=multi-user.target From 6767b229b81c8645c5d1c65fa74ab2d0fefe9d3f Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 15 Nov 2017 11:00:00 -0500 Subject: [PATCH 03/21] WordPress installer toughened --- roles/wordpress/defaults/main.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/roles/wordpress/defaults/main.yml b/roles/wordpress/defaults/main.yml index d02165f10..1a84d3164 100644 --- a/roles/wordpress/defaults/main.yml +++ b/roles/wordpress/defaults/main.yml @@ -1,11 +1,18 @@ wordpress_download_base_url: https://wordpress.org wordpress_src: latest.tar.gz + wp_db_name: iiab_wp wp_db_user: iiab_wp wp_db_user_password: changeme + wordpress_install: True wordpress_enabled: True -wp_install_path: /library -wp_abs_path: /library/wordpress + +wp_install_path: "{{ content_base }}" +#wp_install_path: /library + +wp_abs_path: "{{ wp_install_path }}/wordpress" +#wp_abs_path: /library/wordpress + wp_url: /wordpress wp_full_url: "http://{{ iiab_hostname }}{{ wp_url }}" From 5b345ea28d5ab6696fdb1940f71c6262746f3a68 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 15 Nov 2017 11:01:07 -0500 Subject: [PATCH 04/21] WordPress install sequence toughened --- roles/wordpress/tasks/main.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/roles/wordpress/tasks/main.yml b/roles/wordpress/tasks/main.yml index 4a77b45f8..664bd28d0 100644 --- a/roles/wordpress/tasks/main.yml +++ b/roles/wordpress/tasks/main.yml @@ -1,3 +1,5 @@ +# SEE "emergency" REINSTALL INSTRUCTIONS IN roles/wordpress/tasks/install.yml + - name: Include the install playbook include_tasks: install.yml - when: wordpress_install \ No newline at end of file + when: wordpress_install From c6a6c374d1da47856bc0e966805318b6391c41f8 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 15 Nov 2017 11:03:08 -0500 Subject: [PATCH 05/21] WordPress install sequence toughened --- roles/wordpress/tasks/install.yml | 54 +++++++++++++++++++++++++------ 1 file changed, 45 insertions(+), 9 deletions(-) diff --git a/roles/wordpress/tasks/install.yml b/roles/wordpress/tasks/install.yml index 58614e610..9694ce9ac 100644 --- a/roles/wordpress/tasks/install.yml +++ b/roles/wordpress/tasks/install.yml @@ -1,17 +1,53 @@ -- name: Get the WordPress software - get_url: url="{{ wordpress_download_base_url }}/{{ wordpress_src }}" dest={{ downloads_dir }}/ +# IF YOU NEED TO REINSTALL FROM /opt/iiab/downloads/wordpress.tar.gz +# TO /library/wordpress DURING YOUR NEXT RUN OF "./runtags wordpress" OR +# "./iiab-install" THEN YOU FIRST NEED TO: +# +# - "mv /library/wordpress /library/wordpress.old" (MUST) +# - back up then drop the database (RECOMMENDED) +# +# REASON: "keep_newer: yes" below tries to preserves WordPress's self-upgrades +# & security enhancements within /library/wordpress, that can occur without +# warning when WordPress is online, since WordPress ~4.8 especially. +# +# Such "emergency" reinstalls from /opt/iiab/downloads/wordpress.tar.gz to +# /library/wordpress should also work offline. + +- name: Download the latest WordPress software + get_url: + url: "{{ wordpress_download_base_url }}/{{ wordpress_src }}" + dest: "{{ downloads_dir }}" +# force: yes +# backup: yes register: wp_download_output when: internet_available -- name: Copy it to permanent location /library - unarchive: src={{ wp_download_output.dest }} dest=/library - when: internet_available +- name: Create link /opt/iiab/downloads/wordpress.tar.gz pointing to {{ wp_download_output.dest }} + file: + src: "{{ wp_download_output.dest }}" + dest: "{{ downloads_dir }}/wordpress.tar.gz" + state: link + when: wp_download_output.dest is defined -- name: Rename /library/wordpress* to /library/wordpress - shell: if [ ! -d {{ wp_abs_path }} ]; then mv {{ wp_abs_path }}* {{ wp_abs_path }}; fi +- name: Check if /opt/iiab/downloads/wordpress.tar.gz link exists + stat: + path: "{{ downloads_dir }}/wordpress.tar.gz" + register: wp_link -# First pass at permissions and ownership -- name: Make Apache owner and group +- name: FAIL (force Ansible to exit) if /opt/iiab/downloads/wordpress.tar.gz doesn't exist. + fail: + msg: "{{ downloads_dir }}/wordpress.tar.gz is REQUIRED in order to install WordPress." + when: not wp_link.stat.exists + +- name: Unpack /opt/iiab/downloads/wordpress.tar.gz to permanent location /library/wordpress + unarchive: + src: "{{ downloads_dir }}/wordpress.tar.gz" + dest: "{{ wp_install_path }}" + keep_newer: yes + +# - name: Rename /library/wordpress* to /library/wordpress +# shell: if [ ! -d {{ wp_abs_path }} ]; then mv {{ wp_abs_path }}* {{ wp_abs_path }}; fi + +- name: Make Apache owner and group, 1st pass permissions set to 0664 file: path={{ wp_abs_path }} recurse=yes owner=root From 278385d34f23a1c9f413cbab21d076ffb4cb645b Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 15 Nov 2017 11:47:41 -0500 Subject: [PATCH 06/21] Permissions / Messaging refined --- roles/wordpress/tasks/install.yml | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/roles/wordpress/tasks/install.yml b/roles/wordpress/tasks/install.yml index 9694ce9ac..43e4c8673 100644 --- a/roles/wordpress/tasks/install.yml +++ b/roles/wordpress/tasks/install.yml @@ -33,29 +33,32 @@ path: "{{ downloads_dir }}/wordpress.tar.gz" register: wp_link -- name: FAIL (force Ansible to exit) if /opt/iiab/downloads/wordpress.tar.gz doesn't exist. +- name: FAIL (force Ansible to exit) IF /opt/iiab/downloads/wordpress.tar.gz doesn't exist fail: msg: "{{ downloads_dir }}/wordpress.tar.gz is REQUIRED in order to install WordPress." when: not wp_link.stat.exists -- name: Unpack /opt/iiab/downloads/wordpress.tar.gz to permanent location /library/wordpress +- name: "Unpack /opt/iiab/downloads/wordpress.tar.gz to permanent location /library/wordpress - owner: root, group: {{ apache_user }}, mode: 0664" unarchive: src: "{{ downloads_dir }}/wordpress.tar.gz" dest: "{{ wp_install_path }}" + owner: root + group: "{{ apache_user }}" + mode: 0664 keep_newer: yes # - name: Rename /library/wordpress* to /library/wordpress # shell: if [ ! -d {{ wp_abs_path }} ]; then mv {{ wp_abs_path }}* {{ wp_abs_path }}; fi -- name: Make Apache owner and group, 1st pass permissions set to 0664 - file: path={{ wp_abs_path }} - recurse=yes - owner=root - group={{ apache_user }} - mode=0664 - state=directory +#- name: Make Apache owner and group, 1st pass permissions set to 0664 +# file: path={{ wp_abs_path }} +# recurse=yes +# owner=root +# group={{ apache_user }} +# mode=0664 +# state=directory -- name: Make directories 775 so Apache can traverse and write +- name: Make directories 775 so Apache can traverse and write (these files remain 0664) command: "/usr/bin/find {{ wp_abs_path }} -type d -exec chmod 775 {} +" - name: Copy wp salt values From c5ad68b6efad503a0cd80e0d2ff17cb237d972ae Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 15 Nov 2017 12:30:53 -0500 Subject: [PATCH 07/21] "keep_newer: yes" to preserve WordPress auto-upgrades --- roles/wordpress/tasks/install.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/wordpress/tasks/install.yml b/roles/wordpress/tasks/install.yml index 43e4c8673..c957287ad 100644 --- a/roles/wordpress/tasks/install.yml +++ b/roles/wordpress/tasks/install.yml @@ -38,7 +38,7 @@ msg: "{{ downloads_dir }}/wordpress.tar.gz is REQUIRED in order to install WordPress." when: not wp_link.stat.exists -- name: "Unpack /opt/iiab/downloads/wordpress.tar.gz to permanent location /library/wordpress - owner: root, group: {{ apache_user }}, mode: 0664" +- name: "Unpack /opt/iiab/downloads/wordpress.tar.gz to permanent location /library/wordpress - owner: root, group: {{ apache_user }}, mode: 0664, keep_newer: yes" unarchive: src: "{{ downloads_dir }}/wordpress.tar.gz" dest: "{{ wp_install_path }}" From a2c0c0611329910ec4f3b97546e986a7a6ee326c Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 15 Nov 2017 13:45:43 -0500 Subject: [PATCH 08/21] Install the latest Calibre on all OS's, Adds Verif --- roles/calibre/tasks/main.yml | 159 ++++++++++++++++++++++++++--------- 1 file changed, 117 insertions(+), 42 deletions(-) diff --git a/roles/calibre/tasks/main.yml b/roles/calibre/tasks/main.yml index 2383f9601..df7383088 100644 --- a/roles/calibre/tasks/main.yml +++ b/roles/calibre/tasks/main.yml @@ -1,62 +1,137 @@ -- name: Get Calibre setup file (CentOS) -# the installer works for intel fedora, and Centos, and deals with dependencies +- name: Download latest calibre-installer.py from GitHub +# seems to work with just about any Linux, and deals with dependencies get_url: - url="{{ calibre_src_url }}" - dest="{{ downloads_dir }}/calibre-installer.py" - mode=0755 - when: ansible_distribution == "CentOS" + url: "{{ calibre_src_url }}" + dest: "{{ downloads_dir }}/calibre-installer.py" + mode: 0755 + force: yes + backup: yes + register: calibre_download_output + when: internet_available -- name: Install Calibre (CentOS) +# 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 + +- name: FAIL (force Ansible to exit) IF /opt/iiab/downloads/calibre-installer.py doesn't exist + fail: + msg: "{{ downloads_dir }}/calibre-installer.py is REQUIRED in order to install Calibre." + when: not calib_inst.stat.exists + +# INSTALL THE LATEST CALIBRE (calibre-server etc) ON ALL OS'S - RUNS IF /usr/bin/calibre-uninstall DOES NOT ALEADY EXIST + +- name: Run calibre-installer.py to install Calibre programs into /usr/bin - REMOVE /usr/bin/calibre-uninstall TO FORCE calibre-installer.py TO REINSTALL/UPGRADE HERE! shell: "{{ downloads_dir }}/calibre-installer.py >> /dev/null" args: creates: /usr/bin/calibre-uninstall - when: calibre_install and ansible_distribution == 'CentOS' + when: internet_available -- 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' +# - 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' - name: Create calibre-serve.service and calibre.conf - template: backup=no - src={{ item.src }} - dest={{ item.dest }} - owner=root - group=root - mode={{ item.mode }} + template: + backup: no + src: "{{ item.src }}" + dest: "{{ item.dest }}" + owner: root + group: root + mode: "{{ item.mode }}" 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: calibre_install -- name: Create the link for sites-enabled, containing ProxyPass[Reverse]...localhost:8080 (debuntu) - file: src=/etc/apache2/sites-available/calibre.conf - dest=/etc/apache2/sites-enabled/calibre.conf - state=link - when: is_debuntu and calibre_enabled +# 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 -- name: Enable Calibre service -- runs calibre-server by Kovid Goyal - service: name=calibre-serve - enabled=yes - state=started - #async: 900 - #poll: 5 - when: calibre_enabled +# 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 - when: not calibre_enabled + 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 + +- name: Enable Calibre service -- runs calibre-server by Kovid Goyal + service: + name: calibre-serve + enabled: yes + state: started + #async: 900 + #poll: 5 + when: calibre_enabled + +# - name: Disable Calibre service -- stops calibre-server by Kovid Goyal +# service: name=calibre-serve +# enabled=no +# state=stopped +# when: not calibre_enabled - name: Add 'calibre-serve' to service list - ini_file: dest='{{ service_filelist }}' - section=calibre - option='{{ item.option }}' - value='{{ item.value }}' + ini_file: + dest: "{{ service_filelist }}" + section: calibre + option: "{{ item.option }}" + value: "{{ item.value }}" with_items: - option: description value: '"Calibre is an extremely popular personal library system for e-books."' From 9f4437fb54764405335df0558d115e373bd97520 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 15 Nov 2017 14:17:51 -0500 Subject: [PATCH 09/21] ENFORCE: calibre-installer.py & Internet connection REQUIRED to install Calibre --- roles/calibre/tasks/main.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/roles/calibre/tasks/main.yml b/roles/calibre/tasks/main.yml index df7383088..12bdf5974 100644 --- a/roles/calibre/tasks/main.yml +++ b/roles/calibre/tasks/main.yml @@ -29,10 +29,11 @@ path: "{{ downloads_dir }}/calibre-installer.py" register: calib_inst -- name: FAIL (force Ansible to exit) IF /opt/iiab/downloads/calibre-installer.py doesn't exist +- name: FAIL (force Ansible to exit) IF /opt/iiab/downloads/calibre-installer.py doesn't exist OR Internet connection is missing +# meta: end_play fail: - msg: "{{ downloads_dir }}/calibre-installer.py is REQUIRED in order to install Calibre." - when: not calib_inst.stat.exists + 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) # INSTALL THE LATEST CALIBRE (calibre-server etc) ON ALL OS'S - RUNS IF /usr/bin/calibre-uninstall DOES NOT ALEADY EXIST From 9298aa949a32b53cf3fb5ecefa6542d7e38114f3 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 15 Nov 2017 17:56:39 -0500 Subject: [PATCH 10/21] Clarify /library/wordpress perms 775/664 --- roles/wordpress/tasks/install.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/wordpress/tasks/install.yml b/roles/wordpress/tasks/install.yml index c957287ad..564c429a7 100644 --- a/roles/wordpress/tasks/install.yml +++ b/roles/wordpress/tasks/install.yml @@ -58,7 +58,7 @@ # mode=0664 # state=directory -- name: Make directories 775 so Apache can traverse and write (these files remain 0664) +- name: Make /library/wordpress directories 775 so Apache can traverse and write (most files remain 0664) command: "/usr/bin/find {{ wp_abs_path }} -type d -exec chmod 775 {} +" - name: Copy wp salt values From 380db254fac1546ea3bb84362a76018d23df9867 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 15 Nov 2017 18:01:56 -0500 Subject: [PATCH 11/21] Clarif: MANUALLY REMOVE /usr/bin/calibre-uninstall TO FORCE UPGRADE --- roles/calibre/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/calibre/tasks/main.yml b/roles/calibre/tasks/main.yml index 12bdf5974..672b11bb7 100644 --- a/roles/calibre/tasks/main.yml +++ b/roles/calibre/tasks/main.yml @@ -37,7 +37,7 @@ # INSTALL THE LATEST CALIBRE (calibre-server etc) ON ALL OS'S - RUNS IF /usr/bin/calibre-uninstall DOES NOT ALEADY EXIST -- name: Run calibre-installer.py to install Calibre programs into /usr/bin - REMOVE /usr/bin/calibre-uninstall TO FORCE calibre-installer.py TO REINSTALL/UPGRADE HERE! +- 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! shell: "{{ downloads_dir }}/calibre-installer.py >> /dev/null" args: creates: /usr/bin/calibre-uninstall From 2e8597cab689daf80ef4fcea0ffb2a827ff754f0 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 15 Nov 2017 18:56:01 -0500 Subject: [PATCH 12/21] Calibre playbook now completes offline IF /usr/bin/calibre-uninstall exists --- roles/calibre/tasks/main.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/roles/calibre/tasks/main.yml b/roles/calibre/tasks/main.yml index 672b11bb7..5172208d0 100644 --- a/roles/calibre/tasks/main.yml +++ b/roles/calibre/tasks/main.yml @@ -29,11 +29,16 @@ path: "{{ downloads_dir }}/calibre-installer.py" register: calib_inst -- name: FAIL (force Ansible to exit) IF /opt/iiab/downloads/calibre-installer.py doesn't exist OR Internet connection is missing +- name: Check if calibre-uninstall exists in /usr/bin + stat: + path: "/usr/bin/calibre-uninstall" + register: calib_uninst + +- name: FAIL (force Ansible to exit) IF /opt/iiab/downloads/calibre-installer.py doesn't exist OR needed Internet connection is missing # meta: end_play fail: 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) + when: (not calib_inst.stat.exists) or (not internet_available and not calib_uninst.stat.exists) # INSTALL THE LATEST CALIBRE (calibre-server etc) ON ALL OS'S - RUNS IF /usr/bin/calibre-uninstall DOES NOT ALEADY EXIST From 06a375fa06bba96b7ba17c60398d8f66eaebe1e6 Mon Sep 17 00:00:00 2001 From: A Holt Date: Thu, 16 Nov 2017 23:11:45 -0500 Subject: [PATCH 13/21] Sugarizer description had *4* marks in iiab.env --- roles/sugarizer/tasks/main.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/roles/sugarizer/tasks/main.yml b/roles/sugarizer/tasks/main.yml index 8e935e275..7b9828eab 100644 --- a/roles/sugarizer/tasks/main.yml +++ b/roles/sugarizer/tasks/main.yml @@ -87,10 +87,10 @@ when: not sugarizer_enabled - name: Add 'sugarizer' to service list - ini_file: dest='{{ service_filelist }}' + ini_file: dest="{{ service_filelist }}" section=sugarizer - option='{{ item.option }}' - value='"{{ item.value }}"' + option="{{ item.option }}" + value="{{ item.value }}" with_items: - option: name value: Sugarizer From 5fa2cb6600784b8ca1439fe07ba89d8dbcf7e713 Mon Sep 17 00:00:00 2001 From: A Holt Date: Thu, 16 Nov 2017 23:12:50 -0500 Subject: [PATCH 14/21] MongoDB description had *4* quotation marks in iiab.env --- roles/mongodb/tasks/main.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/roles/mongodb/tasks/main.yml b/roles/mongodb/tasks/main.yml index 0271190cf..b007bd357 100644 --- a/roles/mongodb/tasks/main.yml +++ b/roles/mongodb/tasks/main.yml @@ -60,10 +60,10 @@ with_items: "{{ files_to_delete.files }}" - name: add mongodb to service list - ini_file: dest='{{ service_filelist }}' + ini_file: dest="{{ service_filelist }}" section=mongodb - option='{{ item.option }}' - value='"{{ item.value }}"' + option="{{ item.option }}" + value="{{ item.value }}" with_items: - option: name value: MongoDB From a5d6835eb0e41f0f0156ca9dca2760a0b2de56cf Mon Sep 17 00:00:00 2001 From: A Holt Date: Sun, 19 Nov 2017 12:45:10 -0500 Subject: [PATCH 15/21] Clarif: linux-installer.py downloaded to calibre-installer.py --- roles/calibre/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/calibre/tasks/main.yml b/roles/calibre/tasks/main.yml index 5172208d0..b44a15841 100644 --- a/roles/calibre/tasks/main.yml +++ b/roles/calibre/tasks/main.yml @@ -1,4 +1,4 @@ -- name: Download latest calibre-installer.py from GitHub +- name: Download latest linux-installer.py from GitHub to calibre-installer.py # seems to work with just about any Linux, and deals with dependencies get_url: url: "{{ calibre_src_url }}" From 1e71c33b592bb4a9ea8b3177dd886f3193670d5b Mon Sep 17 00:00:00 2001 From: A Holt Date: Sun, 19 Nov 2017 22:56:53 -0500 Subject: [PATCH 16/21] manual lint'ing per Ansible recommendations --- roles/sugarizer/tasks/main.yml | 83 +++++++++++++++++++--------------- 1 file changed, 47 insertions(+), 36 deletions(-) diff --git a/roles/sugarizer/tasks/main.yml b/roles/sugarizer/tasks/main.yml index 8e935e275..9b0e9fe51 100644 --- a/roles/sugarizer/tasks/main.yml +++ b/roles/sugarizer/tasks/main.yml @@ -1,31 +1,38 @@ - name: Download the latest stable version of Sugarizer from location under our control - get_url: url={{ iiab_download_url }}/{{ sugarizer_version }}.tar.gz - dest={{ downloads_dir }}/{{ sugarizer_version }}.tar.gz + get_url: + url: "{{ iiab_download_url }}/{{ sugarizer_version }}.tar.gz" + dest: "{{ downloads_dir }}/{{ sugarizer_version }}.tar.gz" -#fixme - name: Untar it to target location - command: tar xzf {{ downloads_dir }}/{{ sugarizer_version }}.tar.gz -C {{ sugarizer_location }} - creates="{{ sugarizer_location }}/{{ sugarizer_version }}/index.html" + unarchive: + src: "{{ downloads_dir }}/{{ sugarizer_version }}.tar.gz" + dest: {{ sugarizer_location }} + creates: "{{ sugarizer_location }}/{{ sugarizer_version }}/index.html" +# command: tar xzf {{ downloads_dir }}/{{ sugarizer_version }}.tar.gz -C {{ sugarizer_location }} +# creates="{{ sugarizer_location }}/{{ sugarizer_version }}/index.html" - name: Create a symbolic link from generic url to version specific location - file: dest={{ sugarizer_location }}/sugarizer - src={{ sugarizer_location }}/{{ sugarizer_version }} - state=link + file: + src: "{{ sugarizer_location }}/{{ sugarizer_version }}" + dest: "{{ sugarizer_location }}/sugarizer" + state=link - name: Set up Node.js 6.x apt sources (debuntu) shell: curl -sL https://deb.nodesource.com/setup_6.x | bash - when: internet_available and is_debuntu - name: Install latest Node.js which includes /usr/bin/npm (debuntu) - package: name=nodejs - state=latest + package: + name: nodejs + state: latest # package: name=nodejs=6.* # state=present when: internet_available and is_debuntu - name: Install npm (OS's other than debuntu) - package: name={{ item }} - state=present + package: + name: "{{ item }}" + state: present when: internet_available and not is_debuntu with_items: - nodejs @@ -42,11 +49,12 @@ when: npm.stat.exists is defined and npm.stat.exists - name: Create systemd files and copy our ini file - template: src={{ item.src }} - dest={{ item.dest }} - owner=root - group=root - mode=0644 + template: + src: "{{ item.src }}" + dest: "{{ item.dest }}" + owner: root + group: root + mode: 0644 with_items: - { src: 'sugarizer.service.j2' , dest: '/etc/systemd/system/sugarizer.service'} - { src: 'sugarizer.ini' , dest: '{{ sugarizer_location }}/sugarizer/server' } @@ -58,43 +66,46 @@ # state=link - name: Create the express framework for Node.js (OS's other than Fedora 18) - shell: npm install + shell: npm install args: chdir: "{{ sugarizer_location }}/sugarizer/server" creates: "{{ sugarizer_location }}/sugarizer/server/node_modules" when: not is_F18 and not npm_exists - name: Create the express framework for Node.js (Fedora 18) - shell: npm install + shell: npm install args: chdir: "{{ sugarizer_location }}/sugarizer/server" when: is_F18 and not npm_exists - name: Enable services (all OS's) - service: name={{ item.name }} - enabled=yes - state=restarted + service: + name: "{{ item.name }}" + enabled: yes + state: restarted with_items: - { name: sugarizer } when: sugarizer_enabled - name: Disable services (all OS's) - service: name={{ item.name }} - enabled=no - state=stopped + service: + name: "{{ item.name }}" + enabled: no + state: stopped with_items: - - { name: sugarizer } + - { name: sugarizer } when: not sugarizer_enabled - name: Add 'sugarizer' to service list - ini_file: dest='{{ service_filelist }}' - section=sugarizer - option='{{ item.option }}' - value='"{{ item.value }}"' + ini_file: + dest="{{ service_filelist }}" + section=sugarizer + option="{{ item.option }}" + value="{{ item.value }}" with_items: - - option: name - value: Sugarizer - - option: description - value: '"The Sugar Learning Platform began with the famous One Laptop Per Child project, written in Python. Sugarizer is the new HTML/JavaScript implementation of Sugar, usable in most all browsers."' - - option: enabled - value: "{{ sugarizer_enabled }}" + - option: name + value: Sugarizer + - option: description + value: '"The Sugar Learning Platform began with the famous One Laptop Per Child project, written in Python. Sugarizer is the new HTML/JavaScript implementation of Sugar, usable in most all browsers."' + - option: enabled + value: "{{ sugarizer_enabled }}" From a0f9b922bc73e9a68c214f72691b08a51f72e84a Mon Sep 17 00:00:00 2001 From: A Holt Date: Sun, 19 Nov 2017 23:02:07 -0500 Subject: [PATCH 17/21] Update main.yml --- roles/sugarizer/tasks/main.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/roles/sugarizer/tasks/main.yml b/roles/sugarizer/tasks/main.yml index 9b0e9fe51..88c95bd2f 100644 --- a/roles/sugarizer/tasks/main.yml +++ b/roles/sugarizer/tasks/main.yml @@ -98,10 +98,10 @@ - name: Add 'sugarizer' to service list ini_file: - dest="{{ service_filelist }}" - section=sugarizer - option="{{ item.option }}" - value="{{ item.value }}" + dest: "{{ service_filelist }}" + section: sugarizer + option: "{{ item.option }}" + value: "{{ item.value }}" with_items: - option: name value: Sugarizer From 4becca66dd27a6b5e85244a3c7a391b8e6002164 Mon Sep 17 00:00:00 2001 From: A Holt Date: Sun, 19 Nov 2017 23:05:24 -0500 Subject: [PATCH 18/21] Update main.yml --- roles/sugarizer/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/sugarizer/tasks/main.yml b/roles/sugarizer/tasks/main.yml index 88c95bd2f..f0d7a15ae 100644 --- a/roles/sugarizer/tasks/main.yml +++ b/roles/sugarizer/tasks/main.yml @@ -6,7 +6,7 @@ - name: Untar it to target location unarchive: src: "{{ downloads_dir }}/{{ sugarizer_version }}.tar.gz" - dest: {{ sugarizer_location }} + dest: "{{ sugarizer_location }}" creates: "{{ sugarizer_location }}/{{ sugarizer_version }}/index.html" # command: tar xzf {{ downloads_dir }}/{{ sugarizer_version }}.tar.gz -C {{ sugarizer_location }} # creates="{{ sugarizer_location }}/{{ sugarizer_version }}/index.html" From ab36c02a4738c637054a2bdb1a8a0ad3fcef7875 Mon Sep 17 00:00:00 2001 From: A Holt Date: Sun, 19 Nov 2017 23:09:54 -0500 Subject: [PATCH 19/21] Update main.yml --- roles/sugarizer/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/sugarizer/tasks/main.yml b/roles/sugarizer/tasks/main.yml index f0d7a15ae..8bc995b12 100644 --- a/roles/sugarizer/tasks/main.yml +++ b/roles/sugarizer/tasks/main.yml @@ -15,7 +15,7 @@ file: src: "{{ sugarizer_location }}/{{ sugarizer_version }}" dest: "{{ sugarizer_location }}/sugarizer" - state=link + state: link - name: Set up Node.js 6.x apt sources (debuntu) shell: curl -sL https://deb.nodesource.com/setup_6.x | bash - From 6b2492f84ffa6d577ddf9fa0643f7f77edcbe94a Mon Sep 17 00:00:00 2001 From: A Holt Date: Sun, 19 Nov 2017 23:20:39 -0500 Subject: [PATCH 20/21] Ansible output more understandable --- roles/sugarizer/tasks/main.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/roles/sugarizer/tasks/main.yml b/roles/sugarizer/tasks/main.yml index 8bc995b12..8c9cfd033 100644 --- a/roles/sugarizer/tasks/main.yml +++ b/roles/sugarizer/tasks/main.yml @@ -1,9 +1,9 @@ -- name: Download the latest stable version of Sugarizer from location under our control +- name: Download latest stable Sugarizer from location under our control get_url: url: "{{ iiab_download_url }}/{{ sugarizer_version }}.tar.gz" dest: "{{ downloads_dir }}/{{ sugarizer_version }}.tar.gz" -- name: Untar it to target location +- name: Untar to /library/www/html/{{ sugarizer_version }} unarchive: src: "{{ downloads_dir }}/{{ sugarizer_version }}.tar.gz" dest: "{{ sugarizer_location }}" @@ -11,7 +11,7 @@ # command: tar xzf {{ downloads_dir }}/{{ sugarizer_version }}.tar.gz -C {{ sugarizer_location }} # creates="{{ sugarizer_location }}/{{ sugarizer_version }}/index.html" -- name: Create a symbolic link from generic url to version specific location +- name: Create symbolic link /library/www/html/sugarizer file: src: "{{ sugarizer_location }}/{{ sugarizer_version }}" dest: "{{ sugarizer_location }}/sugarizer" @@ -96,7 +96,7 @@ - { name: sugarizer } when: not sugarizer_enabled -- name: Add 'sugarizer' to service list +- name: Add 'sugarizer' to service list in /etc/iiab/iiab.ini ini_file: dest: "{{ service_filelist }}" section: sugarizer From a3c072e1f4ccc85a755dbadf92736cd0c1a3bde7 Mon Sep 17 00:00:00 2001 From: A Holt Date: Sun, 19 Nov 2017 23:25:54 -0500 Subject: [PATCH 21/21] Update main.yml --- roles/sugarizer/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/sugarizer/tasks/main.yml b/roles/sugarizer/tasks/main.yml index 8c9cfd033..691975f60 100644 --- a/roles/sugarizer/tasks/main.yml +++ b/roles/sugarizer/tasks/main.yml @@ -1,4 +1,4 @@ -- name: Download latest stable Sugarizer from location under our control +- name: Download latest stable Sugarizer from location we control get_url: url: "{{ iiab_download_url }}/{{ sugarizer_version }}.tar.gz" dest: "{{ downloads_dir }}/{{ sugarizer_version }}.tar.gz"