From fff8b20b5eeda3df6a89094b0be7c8762a36e077 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 11 Jul 2018 13:06:37 -0400 Subject: [PATCH 01/22] new Ansible syntax/convention --- roles/sugarizer/tasks/main.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/roles/sugarizer/tasks/main.yml b/roles/sugarizer/tasks/main.yml index 0dbd4d965..9e7c6dde2 100644 --- a/roles/sugarizer/tasks/main.yml +++ b/roles/sugarizer/tasks/main.yml @@ -101,9 +101,10 @@ - { src: 'sugarizer.conf' , dest: '/etc/apache2/sites-available',mode: '0644' } - name: Create the symlink enabling the rewrite - file: src=/etc/apache2/sites-available/sugarizer.conf - dest=/etc/apache2/sites-enabled/sugarizer.conf - state=link + file: + src: /etc/apache2/sites-available/sugarizer.conf + dest: /etc/apache2/sites-enabled/sugarizer.conf + state: link - name: Create the express framework for Node.js (OS's other than Fedora 18) shell: npm install From fb2aeca64e9af7790d20dd9d602533d808c5cbc7 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 11 Jul 2018 13:10:09 -0400 Subject: [PATCH 02/22] "waitdb = 1" added by @llaske since Sugarizer 1.0 On 2018-05-29 Lionel added this: ("Add an option to wait DB connection") https://github.com/llaske/sugarizer-server/commit/0ec8bde6b08c9fd33639d98cdd06013ff6f97222 --- roles/sugarizer/templates/sugarizer.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/roles/sugarizer/templates/sugarizer.ini b/roles/sugarizer/templates/sugarizer.ini index afcd97d19..bbb48a914 100644 --- a/roles/sugarizer/templates/sugarizer.ini +++ b/roles/sugarizer/templates/sugarizer.ini @@ -20,6 +20,7 @@ path = ../sugarizer/ server = localhost port = 27018 name = sugarizer +waitdb = 1 [presence] port = 8039 From 6cf927bc959c0c3acc4f0bd760677d57793f0305 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 11 Jul 2018 18:09:12 -0400 Subject: [PATCH 03/22] Update main.yml --- roles/sugarizer/defaults/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/sugarizer/defaults/main.yml b/roles/sugarizer/defaults/main.yml index 7baf488d2..1a96775f7 100644 --- a/roles/sugarizer/defaults/main.yml +++ b/roles/sugarizer/defaults/main.yml @@ -1,6 +1,6 @@ sugarizer_install: True sugarizer_enabled: False -sugarizer_location: /opt/iiab +sugarizer_location: {{ iiab_base }} # /opt/iiab sugarizer_version: 'sugarizer-1.0' sugarizer_server_version: 'sugarizer-server-1.0' npm_exists: False From 48b905207582d60a4d45775122591d7f19c21c18 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 11 Jul 2018 19:00:56 -0400 Subject: [PATCH 04/22] Incorporate changes learned from #798 & #814 --- roles/sugarizer/tasks/main.yml | 89 +++++++++++++++++++--------------- 1 file changed, 50 insertions(+), 39 deletions(-) diff --git a/roles/sugarizer/tasks/main.yml b/roles/sugarizer/tasks/main.yml index 9e7c6dde2..ea7061fd5 100644 --- a/roles/sugarizer/tasks/main.yml +++ b/roles/sugarizer/tasks/main.yml @@ -1,15 +1,15 @@ -- name: Wipe any previous sugarizer installation +- name: Wipe /library/www/html/sugarizer* if sugarizer-1.0 shell: "rm -rf {{ doc_root }}/sugarizer*" when: sugarizer_version == "sugarizer-1.0" -- name: Download latest stable Sugarizer from location we control +- name: D/L latest stable Sugarizer from location we control to /opt/iiab/downloads/ get_url: url: "{{ iiab_download_url }}/{{ sugarizer_version }}.tar.gz" dest: "{{ downloads_dir }}/{{ sugarizer_version }}.tar.gz" timeout: "{{ download_timeout }}" when: internet_available -- name: Untar to {{ sugarizer_version }} +- name: Untar to /opt/iiab/{{ sugarizer_version }} unarchive: src: "{{ downloads_dir }}/{{ sugarizer_version }}.tar.gz" dest: "{{ sugarizer_location }}" @@ -17,47 +17,66 @@ # command: tar xzf {{ downloads_dir }}/{{ sugarizer_version }}.tar.gz -C {{ sugarizer_location }} # creates="{{ sugarizer_location }}/{{ sugarizer_version }}/index.html" -- name: Download latest stable Server from location we control - get_url: - url: "{{ iiab_download_url }}/{{ sugarizer_server_version }}.tar.gz" - dest: "{{ downloads_dir }}/{{ sugarizer_server_version }}.tar.gz" - timeout: "{{ download_timeout }}" - when: internet_available - -- name: Untar to /{{ sugarizer_version }} - unarchive: - src: "{{ downloads_dir }}/{{ sugarizer_version }}.tar.gz" - dest: "{{ sugarizer_location }}" - creates: "{{ sugarizer_location }}/{{ sugarizer_version }}/index.html" -- name: Create symbolic link /library/www/html/sugarizer +- name: Create symbolic link /opt/iiab/sugarizer -> /opt/iiab/{{ sugarizer_version }} file: src: "{{ sugarizer_location }}/{{ sugarizer_version }}" dest: "{{ sugarizer_location }}/sugarizer" state: link -- name: Untar to /library/www/html/{{ sugarizer_server_version }} - unarchive: - src: "{{ downloads_dir }}/{{ sugarizer_server_version }}.tar.gz" +# Not working in July 2018, so "git clone" instead (2 steps that follow) +#- name: Download latest stable Server from location we control +# get_url: +# url: "{{ iiab_download_url }}/{{ sugarizer_server_version }}.tar.gz" +# dest: "{{ downloads_dir }}/{{ sugarizer_server_version }}.tar.gz" +# timeout: "{{ download_timeout }}" +# when: internet_available +# +#- name: Untar to /opt/iiab/{{ sugarizer_server_version }} +# unarchive: +# src: "{{ downloads_dir }}/{{ sugarizer_server_version }}.tar.gz" +# dest: "{{ sugarizer_location }}" +# creates: "{{ sugarizer_location }}/{{ sugarizer_server_version }}/index.html" + +# CLONING SUGARIZER'S MASTER IN NOT A LONG-TERM SOLUTION, BUT +# UNCOMMENTING "version:" LINE BELOW CAN BRING STABILITY IN FUTURE +- name: Clone llaske/sugarizer-server from GitHub to /opt/iiab + git: + repo: http://github.com/llaske/sugarizer-server dest: "{{ sugarizer_location }}" - creates: "{{ sugarizer_location }}/{{ sugarizer_server_version }}/index.html" -- name: Create symbolic link /library/www/html/sugarizer +# version: "{{ sugarizer_server_version }}" + +- name: Move /opt/iiab/sugarizer-server to /opt/iiab/{{ sugarizer_server_version }} + move: + src: "{{ sugarizer_location }}/sugarizer-server" + dest: "{{ sugarizer_location }}/{{ sugarizer_server_version }}" + +- name: Create symbolic link /opt/iiab/sugarizer-server -> /opt/iiab/{ sugarizer_server_version }} file: src: "{{ sugarizer_location }}/{{ sugarizer_server_version }}" dest: "{{ sugarizer_location }}/sugarizer-server" state: link -- name: Set up Node.js 6.x apt sources (debuntu) - shell: curl -sL https://deb.nodesource.com/setup_6.x | bash - +- name: Set up Node.js 8.x apt sources (debuntu but avoid ubuntu-18) + shell: curl -sL https://deb.nodesource.com/setup_8.x | bash - when: internet_available and is_debuntu and not is_ubuntu_18 - name: Install latest Node.js which includes /usr/bin/npm (debuntu) package: name: nodejs + # name: nodejs=8.x state: latest -# package: name=nodejs=6.* -# state=present + # state: present when: internet_available and is_debuntu and not is_ubuntu_18 +- name: Install Node.js and npm (ubuntu-18) + package: + name: "{{ item }}" + state: latest + when: internet_available and is_ubuntu_18 + with_items: + - nodejs + - npm + - name: Install npm (OS's other than debuntu) package: name: "{{ item }}" @@ -67,15 +86,6 @@ - nodejs - npm -- name: Install npm (ubuntu-18) - package: - name: "{{ item }}" - state: latest - when: internet_available and is_ubuntu_18 - with_items: - - npm - - nodejs - # attempting to reinstall npm is broken on Raspbian 9 - name: Check for Sugarizer already installed stat: @@ -96,11 +106,11 @@ owner: root group: root with_items: - - { src: 'sugarizer.service.j2' , dest: '/etc/systemd/system/sugarizer.service', mode: '0644' } - - { src: 'sugarizer.ini' , dest: '{{ sugarizer_location }}/{{ sugarizer_server_version }}/env/sugarizer.ini', mode: '0644' } - - { src: 'sugarizer.conf' , dest: '/etc/apache2/sites-available',mode: '0644' } + - { src: 'sugarizer.service.j2', dest: '/etc/systemd/system/sugarizer.service', mode: '0644' } + - { src: 'sugarizer.ini', dest: '{{ sugarizer_location }}/{{ sugarizer_server_version }}/env/sugarizer.ini', mode: '0644' } + - { src: 'sugarizer.conf', dest: '/etc/apache2/sites-available', mode: '0644' } -- name: Create the symlink enabling the rewrite +- name: Create symlink enabling short URL http://box/sugarizer file: src: /etc/apache2/sites-available/sugarizer.conf dest: /etc/apache2/sites-enabled/sugarizer.conf @@ -110,7 +120,8 @@ shell: npm install args: chdir: "{{ sugarizer_location }}/{{ sugarizer_server_version }}" - creates: "{{ sugarizer_location }}/{{ sugarizer_server_version }}/server/node_modules" + creates: "{{ sugarizer_location }}/{{ sugarizer_server_version }}/node-modules" + #creates: "{{ sugarizer_location }}/{{ sugarizer_server_version }}/server/node_modules" when: not is_F18 and not npm_exists - name: Create the express framework for Node.js (Fedora 18) From 9c01c64d6b485d09279038a5988ab5ea86cb2974 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 11 Jul 2018 19:11:29 -0400 Subject: [PATCH 05/22] Update main.yml --- 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 ea7061fd5..c0ffa8572 100644 --- a/roles/sugarizer/tasks/main.yml +++ b/roles/sugarizer/tasks/main.yml @@ -41,7 +41,7 @@ # UNCOMMENTING "version:" LINE BELOW CAN BRING STABILITY IN FUTURE - name: Clone llaske/sugarizer-server from GitHub to /opt/iiab git: - repo: http://github.com/llaske/sugarizer-server + repo: https://github.com/llaske/sugarizer-server dest: "{{ sugarizer_location }}" # version: "{{ sugarizer_server_version }}" @@ -60,7 +60,7 @@ shell: curl -sL https://deb.nodesource.com/setup_8.x | bash - when: internet_available and is_debuntu and not is_ubuntu_18 -- name: Install latest Node.js which includes /usr/bin/npm (debuntu) +- name: Install latest Node.js which includes /usr/bin/npm (debuntu but avoid ubuntu-18) package: name: nodejs # name: nodejs=8.x @@ -120,7 +120,7 @@ shell: npm install args: chdir: "{{ sugarizer_location }}/{{ sugarizer_server_version }}" - creates: "{{ sugarizer_location }}/{{ sugarizer_server_version }}/node-modules" + creates: "{{ sugarizer_location }}/{{ sugarizer_server_version }}/node_modules" #creates: "{{ sugarizer_location }}/{{ sugarizer_server_version }}/server/node_modules" when: not is_F18 and not npm_exists From 2e651ac4735280d5235f4a657c67cf06b87c508b Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 11 Jul 2018 19:25:56 -0400 Subject: [PATCH 06/22] Update main.yml --- roles/sugarizer/defaults/main.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/roles/sugarizer/defaults/main.yml b/roles/sugarizer/defaults/main.yml index 1a96775f7..2a761971f 100644 --- a/roles/sugarizer/defaults/main.yml +++ b/roles/sugarizer/defaults/main.yml @@ -1,6 +1,8 @@ sugarizer_install: True sugarizer_enabled: False sugarizer_location: {{ iiab_base }} # /opt/iiab -sugarizer_version: 'sugarizer-1.0' -sugarizer_server_version: 'sugarizer-server-1.0' +sugarizer_version: sugarizer-1.0 +sugarizer_git_version: v1.0.1 +sugarizer_server_version: sugarizer-server-1.0 +sugarizer_server_git_version: v1.0 npm_exists: False From 65a0d4ced18299140152d4f2f6fff51a1e4e2db6 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 11 Jul 2018 19:27:13 -0400 Subject: [PATCH 07/22] Update main.yml --- roles/sugarizer/defaults/main.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/roles/sugarizer/defaults/main.yml b/roles/sugarizer/defaults/main.yml index 2a761971f..a7f88749c 100644 --- a/roles/sugarizer/defaults/main.yml +++ b/roles/sugarizer/defaults/main.yml @@ -1,8 +1,12 @@ sugarizer_install: True sugarizer_enabled: False + sugarizer_location: {{ iiab_base }} # /opt/iiab + sugarizer_version: sugarizer-1.0 sugarizer_git_version: v1.0.1 + sugarizer_server_version: sugarizer-server-1.0 sugarizer_server_git_version: v1.0 + npm_exists: False From 413424bb695976b2851a1f8460706e5792c022cd Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 11 Jul 2018 19:30:04 -0400 Subject: [PATCH 08/22] Update main.yml --- roles/sugarizer/defaults/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/sugarizer/defaults/main.yml b/roles/sugarizer/defaults/main.yml index a7f88749c..b8bbcc9fc 100644 --- a/roles/sugarizer/defaults/main.yml +++ b/roles/sugarizer/defaults/main.yml @@ -7,6 +7,6 @@ sugarizer_version: sugarizer-1.0 sugarizer_git_version: v1.0.1 sugarizer_server_version: sugarizer-server-1.0 -sugarizer_server_git_version: v1.0 +sugarizer_server_git_version: master npm_exists: False From d6ace108b647bf14f92aedb2b1e516f7fa112817 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 11 Jul 2018 19:34:01 -0400 Subject: [PATCH 09/22] Update main.yml --- roles/sugarizer/defaults/main.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/roles/sugarizer/defaults/main.yml b/roles/sugarizer/defaults/main.yml index b8bbcc9fc..36fd4f494 100644 --- a/roles/sugarizer/defaults/main.yml +++ b/roles/sugarizer/defaults/main.yml @@ -5,8 +5,13 @@ sugarizer_location: {{ iiab_base }} # /opt/iiab sugarizer_version: sugarizer-1.0 sugarizer_git_version: v1.0.1 +# PLEASE HELP MONITOR https://github.com/llaske/sugarizer/releases FOR +# STABLE/OFFICIAL RELEASES! sugarizer_server_version: sugarizer-server-1.0 sugarizer_server_git_version: master +# CLONING SUGARIZER-SERVER'S MASTER BRANCH IS NOT A LONG-TERM SOLUTION, +# SO LET'S MONITOR https://github.com/llaske/sugarizer-server/releases +# FOR A MORE STABLE/OFFICIAL RELEASE DURING MID-2018! npm_exists: False From 8c72fef24f77649fbd15503b626afb7c23aedaae Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 11 Jul 2018 19:51:10 -0400 Subject: [PATCH 10/22] Overhauled for Readability --- roles/sugarizer/tasks/main.yml | 89 ++++++++++++++++++++++------------ 1 file changed, 59 insertions(+), 30 deletions(-) diff --git a/roles/sugarizer/tasks/main.yml b/roles/sugarizer/tasks/main.yml index c0ffa8572..530842726 100644 --- a/roles/sugarizer/tasks/main.yml +++ b/roles/sugarizer/tasks/main.yml @@ -1,21 +1,37 @@ +# 0. CLEAN UP PRIOR VERSIONS OF SUGARIZER (NEEDS WORK!) + - name: Wipe /library/www/html/sugarizer* if sugarizer-1.0 shell: "rm -rf {{ doc_root }}/sugarizer*" when: sugarizer_version == "sugarizer-1.0" -- name: D/L latest stable Sugarizer from location we control to /opt/iiab/downloads/ - get_url: - url: "{{ iiab_download_url }}/{{ sugarizer_version }}.tar.gz" - dest: "{{ downloads_dir }}/{{ sugarizer_version }}.tar.gz" - timeout: "{{ download_timeout }}" - when: internet_available +# 1. DOWNLOAD /opt/iiab/sugarizer -- name: Untar to /opt/iiab/{{ sugarizer_version }} - unarchive: - src: "{{ downloads_dir }}/{{ sugarizer_version }}.tar.gz" +# July 2018: instead let's "git clone" IIAB's specified/preferred version (2 steps below) +#- name: D/L latest stable Sugarizer from location we control to /opt/iiab/downloads/ +# get_url: +# url: "{{ iiab_download_url }}/{{ sugarizer_version }}.tar.gz" +# dest: "{{ downloads_dir }}/{{ sugarizer_version }}.tar.gz" +# timeout: "{{ download_timeout }}" +# when: internet_available +# +#- name: Untar to /opt/iiab/{{ sugarizer_version }} +# 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: Clone llaske/sugarizer ({{ sugarizer_git_version }}) from GitHub to /opt/iiab + git: + repo: https://github.com/llaske/sugarizer 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" + version: "{{ sugarizer_git_version }}" + +- name: Move /opt/iiab/sugarizer to /opt/iiab/{{ sugarizer_version }} + move: + src: "{{ sugarizer_location }}/sugarizer" + dest: "{{ sugarizer_location }}/{{ sugarizer_version }}" - name: Create symbolic link /opt/iiab/sugarizer -> /opt/iiab/{{ sugarizer_version }} file: @@ -23,7 +39,12 @@ dest: "{{ sugarizer_location }}/sugarizer" state: link -# Not working in July 2018, so "git clone" instead (2 steps that follow) +# 2. DOWNLOAD /opt/iiab/sugarizer-server + +# July 2018: instead let's "git clone" IIAB's specified/preferred version (2 steps below) +# Tarfile below was not working, as documented at: +# https://github.com/iiab/iiab/issues/798 +# https://github.com/iiab/iiab/issues/814 #- name: Download latest stable Server from location we control # get_url: # url: "{{ iiab_download_url }}/{{ sugarizer_server_version }}.tar.gz" @@ -37,13 +58,11 @@ # dest: "{{ sugarizer_location }}" # creates: "{{ sugarizer_location }}/{{ sugarizer_server_version }}/index.html" -# CLONING SUGARIZER'S MASTER IN NOT A LONG-TERM SOLUTION, BUT -# UNCOMMENTING "version:" LINE BELOW CAN BRING STABILITY IN FUTURE -- name: Clone llaske/sugarizer-server from GitHub to /opt/iiab +- name: Clone llaske/sugarizer-server ({{ sugarizer_server_git_version }}) from GitHub to /opt/iiab git: repo: https://github.com/llaske/sugarizer-server dest: "{{ sugarizer_location }}" -# version: "{{ sugarizer_server_version }}" + version: "{{ sugarizer_server_git_version }}" - name: Move /opt/iiab/sugarizer-server to /opt/iiab/{{ sugarizer_server_version }} move: @@ -56,6 +75,10 @@ dest: "{{ sugarizer_location }}/sugarizer-server" state: link +# 3. INSTALL A GOOD VERSION OF Node.js AND npm + +# Both Raspbian and Debian 9 STILL need this approach as of 2018-07-11, +# as documented at https://github.com/iiab/iiab/issues/798#issuecomment-404324530 - name: Set up Node.js 8.x apt sources (debuntu but avoid ubuntu-18) shell: curl -sL https://deb.nodesource.com/setup_8.x | bash - when: internet_available and is_debuntu and not is_ubuntu_18 @@ -86,6 +109,8 @@ - nodejs - npm +# 4. RUN "npm install" TO POPULATE ~35MB /opt/iiab/sugarizer-server/node_modules + # attempting to reinstall npm is broken on Raspbian 9 - name: Check for Sugarizer already installed stat: @@ -98,6 +123,22 @@ npm_exists: True when: npm.stat is defined and npm.stat.exists +- name: Create the express framework for Node.js (OS's other than Fedora 18) + shell: npm install + args: + chdir: "{{ sugarizer_location }}/{{ sugarizer_server_version }}" + creates: "{{ sugarizer_location }}/{{ sugarizer_server_version }}/node_modules" + #creates: "{{ sugarizer_location }}/{{ sugarizer_server_version }}/server/node_modules" + when: not is_F18 and not npm_exists + +- name: Create the express framework for Node.js (Fedora 18) + shell: npm install + args: + chdir: "{{ sugarizer_location }}/sugarizer/server" + when: is_F18 and not npm_exists + +# 5. PLACE CONFIG FILES + - name: Create systemd files and copy our ini file template: src: "{{ item.src }}" @@ -116,19 +157,7 @@ dest: /etc/apache2/sites-enabled/sugarizer.conf state: link -- name: Create the express framework for Node.js (OS's other than Fedora 18) - shell: npm install - args: - chdir: "{{ sugarizer_location }}/{{ sugarizer_server_version }}" - creates: "{{ sugarizer_location }}/{{ sugarizer_server_version }}/node_modules" - #creates: "{{ sugarizer_location }}/{{ sugarizer_server_version }}/server/node_modules" - when: not is_F18 and not npm_exists - -- name: Create the express framework for Node.js (Fedora 18) - shell: npm install - args: - chdir: "{{ sugarizer_location }}/sugarizer/server" - when: is_F18 and not npm_exists +# 6. RESTART/STOP SYSTEMD SERVICE - name: Enable services (all OS's) service: From 1d0c57d6a888bf89b32139ec323cc152798b1b42 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 11 Jul 2018 20:12:30 -0400 Subject: [PATCH 11/22] Update main.yml --- roles/sugarizer/tasks/main.yml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/roles/sugarizer/tasks/main.yml b/roles/sugarizer/tasks/main.yml index 530842726..7e1c1c308 100644 --- a/roles/sugarizer/tasks/main.yml +++ b/roles/sugarizer/tasks/main.yml @@ -27,11 +27,12 @@ repo: https://github.com/llaske/sugarizer dest: "{{ sugarizer_location }}" version: "{{ sugarizer_git_version }}" + when: internet_available - name: Move /opt/iiab/sugarizer to /opt/iiab/{{ sugarizer_version }} - move: - src: "{{ sugarizer_location }}/sugarizer" - dest: "{{ sugarizer_location }}/{{ sugarizer_version }}" + command: mv "{{ sugarizer_location }}/sugarizer" "{{ sugarizer_location }}/{{ sugarizer_version }}" + args: + creates: "{{ sugarizer_location }}/{{ sugarizer_version }}" - name: Create symbolic link /opt/iiab/sugarizer -> /opt/iiab/{{ sugarizer_version }} file: @@ -63,11 +64,12 @@ repo: https://github.com/llaske/sugarizer-server dest: "{{ sugarizer_location }}" version: "{{ sugarizer_server_git_version }}" + when: internet_available - name: Move /opt/iiab/sugarizer-server to /opt/iiab/{{ sugarizer_server_version }} - move: - src: "{{ sugarizer_location }}/sugarizer-server" - dest: "{{ sugarizer_location }}/{{ sugarizer_server_version }}" + command: mv "{{ sugarizer_location }}/sugarizer-server" "{{ sugarizer_location }}/{{ sugarizer_server_version }}" + args: + creates: "{{ sugarizer_location }}/{{ sugarizer_server_version }}" - name: Create symbolic link /opt/iiab/sugarizer-server -> /opt/iiab/{ sugarizer_server_version }} file: From b9e8aee3a064e47f04c6d4ed3c2c45b68ead7fe7 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 11 Jul 2018 20:25:36 -0400 Subject: [PATCH 12/22] Update main.yml --- roles/sugarizer/tasks/main.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/roles/sugarizer/tasks/main.yml b/roles/sugarizer/tasks/main.yml index 7e1c1c308..2c7dfe45c 100644 --- a/roles/sugarizer/tasks/main.yml +++ b/roles/sugarizer/tasks/main.yml @@ -113,17 +113,17 @@ # 4. RUN "npm install" TO POPULATE ~35MB /opt/iiab/sugarizer-server/node_modules -# attempting to reinstall npm is broken on Raspbian 9 +# re-running "npm install" fails on Raspbian 9 - name: Check for Sugarizer already installed stat: path: "{{ sugarizer_location }}/{{ sugarizer_server_version }}/node_modules" - register: npm + register: nmtest ignore_errors: true - name: Set a flag to abort second attempt to install set_fact: - npm_exists: True - when: npm.stat is defined and npm.stat.exists + node_modules_exists: True + when: nmtest.stat is defined and nmtest.stat.exists - name: Create the express framework for Node.js (OS's other than Fedora 18) shell: npm install @@ -131,13 +131,13 @@ chdir: "{{ sugarizer_location }}/{{ sugarizer_server_version }}" creates: "{{ sugarizer_location }}/{{ sugarizer_server_version }}/node_modules" #creates: "{{ sugarizer_location }}/{{ sugarizer_server_version }}/server/node_modules" - when: not is_F18 and not npm_exists + when: not is_F18 and not node_modules_exists - name: Create the express framework for Node.js (Fedora 18) shell: npm install args: chdir: "{{ sugarizer_location }}/sugarizer/server" - when: is_F18 and not npm_exists + when: is_F18 and not node_modules_exists # 5. PLACE CONFIG FILES From d678a101d35affa74589f5c1a1c3d14c24d1ce79 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 11 Jul 2018 20:26:00 -0400 Subject: [PATCH 13/22] Update main.yml --- roles/sugarizer/defaults/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/sugarizer/defaults/main.yml b/roles/sugarizer/defaults/main.yml index 36fd4f494..dca42d9cd 100644 --- a/roles/sugarizer/defaults/main.yml +++ b/roles/sugarizer/defaults/main.yml @@ -14,4 +14,4 @@ sugarizer_server_git_version: master # SO LET'S MONITOR https://github.com/llaske/sugarizer-server/releases # FOR A MORE STABLE/OFFICIAL RELEASE DURING MID-2018! -npm_exists: False +node_modules_exists: False From 1150943619d084dd5480ac3b09a54e78e4905ea3 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 11 Jul 2018 20:27:55 -0400 Subject: [PATCH 14/22] Update main.yml --- roles/sugarizer/defaults/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/sugarizer/defaults/main.yml b/roles/sugarizer/defaults/main.yml index dca42d9cd..8f5c40c57 100644 --- a/roles/sugarizer/defaults/main.yml +++ b/roles/sugarizer/defaults/main.yml @@ -1,7 +1,7 @@ sugarizer_install: True sugarizer_enabled: False -sugarizer_location: {{ iiab_base }} # /opt/iiab +sugarizer_location: "{{ iiab_base }}" # /opt/iiab sugarizer_version: sugarizer-1.0 sugarizer_git_version: v1.0.1 From 28b7816fdfbda709af7ef549d811a8f6d04ecf62 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 11 Jul 2018 20:38:19 -0400 Subject: [PATCH 15/22] Update main.yml --- roles/sugarizer/tasks/main.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/roles/sugarizer/tasks/main.yml b/roles/sugarizer/tasks/main.yml index 2c7dfe45c..13937dfa1 100644 --- a/roles/sugarizer/tasks/main.yml +++ b/roles/sugarizer/tasks/main.yml @@ -6,7 +6,7 @@ # 1. DOWNLOAD /opt/iiab/sugarizer -# July 2018: instead let's "git clone" IIAB's specified/preferred version (2 steps below) +# July 2018: instead let's "git clone" IIAB's specified/preferred version #- name: D/L latest stable Sugarizer from location we control to /opt/iiab/downloads/ # get_url: # url: "{{ iiab_download_url }}/{{ sugarizer_version }}.tar.gz" @@ -25,14 +25,14 @@ - name: Clone llaske/sugarizer ({{ sugarizer_git_version }}) from GitHub to /opt/iiab git: repo: https://github.com/llaske/sugarizer - dest: "{{ sugarizer_location }}" + dest: "{{ sugarizer_location }}/{{ sugarizer_version }}" version: "{{ sugarizer_git_version }}" when: internet_available -- name: Move /opt/iiab/sugarizer to /opt/iiab/{{ sugarizer_version }} - command: mv "{{ sugarizer_location }}/sugarizer" "{{ sugarizer_location }}/{{ sugarizer_version }}" - args: - creates: "{{ sugarizer_location }}/{{ sugarizer_version }}" +#- name: Move /opt/iiab/sugarizer to /opt/iiab/{{ sugarizer_version }} +# command: mv "{{ sugarizer_location }}/sugarizer" "{{ sugarizer_location }}/{{ sugarizer_version }}" +# args: +# creates: "{{ sugarizer_location }}/{{ sugarizer_version }}" - name: Create symbolic link /opt/iiab/sugarizer -> /opt/iiab/{{ sugarizer_version }} file: @@ -42,7 +42,7 @@ # 2. DOWNLOAD /opt/iiab/sugarizer-server -# July 2018: instead let's "git clone" IIAB's specified/preferred version (2 steps below) +# July 2018: instead let's "git clone" IIAB's specified/preferred version # Tarfile below was not working, as documented at: # https://github.com/iiab/iiab/issues/798 # https://github.com/iiab/iiab/issues/814 @@ -62,14 +62,14 @@ - name: Clone llaske/sugarizer-server ({{ sugarizer_server_git_version }}) from GitHub to /opt/iiab git: repo: https://github.com/llaske/sugarizer-server - dest: "{{ sugarizer_location }}" + dest: "{{ sugarizer_location }}/{{ sugarizer_server_version }}" version: "{{ sugarizer_server_git_version }}" when: internet_available -- name: Move /opt/iiab/sugarizer-server to /opt/iiab/{{ sugarizer_server_version }} - command: mv "{{ sugarizer_location }}/sugarizer-server" "{{ sugarizer_location }}/{{ sugarizer_server_version }}" - args: - creates: "{{ sugarizer_location }}/{{ sugarizer_server_version }}" +#- name: Move /opt/iiab/sugarizer-server to /opt/iiab/{{ sugarizer_server_version }} +# command: mv "{{ sugarizer_location }}/sugarizer-server" "{{ sugarizer_location }}/{{ sugarizer_server_version }}" +# args: +# creates: "{{ sugarizer_location }}/{{ sugarizer_server_version }}" - name: Create symbolic link /opt/iiab/sugarizer-server -> /opt/iiab/{ sugarizer_server_version }} file: From 609d600386fa457d274c6c33be8f68d884176013 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 11 Jul 2018 20:49:03 -0400 Subject: [PATCH 16/22] Update main.yml --- roles/mongodb/tasks/main.yml | 84 +++++++++++++++++++----------------- 1 file changed, 45 insertions(+), 39 deletions(-) diff --git a/roles/mongodb/tasks/main.yml b/roles/mongodb/tasks/main.yml index 81a4864c9..5ba9a9d83 100644 --- a/roles/mongodb/tasks/main.yml +++ b/roles/mongodb/tasks/main.yml @@ -1,6 +1,7 @@ -- name: Install mongodb required packages - package: name={{ item }} - state=present +- name: Install MongoDB required packages + package: + name: "{{ item }}" + state: present with_items: - mongodb-server - mongodb @@ -8,50 +9,55 @@ tags: - download -- name: create the data directory for mongodb - file: state=directory - path={{ item.path }} - owner=mongodb +- name: Create the data directory for MongoDB + file: + state: directory + path: "{{ item.path }}" + owner: mongodb with_items: - - { path: '/var/run/mongodb' } - - { path: '/library/dbdata/mongodb' } - - { path: '/var/log/mongodb' } + - { path: '/var/run/mongodb' } + - { path: '/library/dbdata/mongodb' } + - { path: '/var/log/mongodb' } -- name: Move required files - template: src={{ item.src }} - dest={{ item.dest }} - owner=root - group=root - mode=0644 +- name: Position /etc/mongod.conf and mongodb.service + template: + src: "{{ item.src }}" + dest: "{{ item.dest }}" + owner: root + group: root + mode: 0644 with_items: - - { src: 'mongodb.service' , dest: '/etc/systemd/system/' } - - { src: 'mongod.conf' , dest: '/etc/mongod.conf'} + - { src: 'mongodb.service' , dest: '/etc/systemd/system/' } + - { src: 'mongod.conf' , dest: '/etc/mongod.conf'} -- name: enable services - service: name={{ item.name }} - enabled=yes - state=restarted +- name: Restart service if enabled + service: + name: "{{ item.name }}" + enabled: yes + state: restarted with_items: - - { name: mongodb } + - { name: mongodb } when: mongodb_enabled -- name: disable services - service: name={{ item.name }} - enabled=no - state=stopped +- name: Stop service if not enabled + service: + name: "{{ item.name }}" + enabled: no + state: stopped with_items: - - { name: mongodb } + - { name: mongodb } when: not mongodb_enabled -- name: add mongodb to service list - ini_file: dest="{{ service_filelist }}" - section=mongodb - option="{{ item.option }}" - value="{{ item.value }}" +- name: Add 'mongodb' to list of services at /etc/iiab/iiab.ini + ini_file: + dest: "{{ service_filelist }}" + section: mongodb + option: "{{ item.option }}" + value: "{{ item.value }}" with_items: - - option: name - value: MongoDB - - option: description - value: '"MongoDB is an open-source document database that provides high performance, high availability, and automatic scaling."' - - option: enabled - value: "{{ mongodb_enabled }}" + - option: name + value: MongoDB + - option: description + value: '"MongoDB is an open-source document database that provides high performance, high availability, and automatic scaling."' + - option: enabled + value: "{{ mongodb_enabled }}" From 0626961cf2ff52cae3b55b12d4313f511a560857 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 11 Jul 2018 21:03:06 -0400 Subject: [PATCH 17/22] Update main.yml --- roles/sugarizer/tasks/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/roles/sugarizer/tasks/main.yml b/roles/sugarizer/tasks/main.yml index 13937dfa1..6fdc38b99 100644 --- a/roles/sugarizer/tasks/main.yml +++ b/roles/sugarizer/tasks/main.yml @@ -167,6 +167,7 @@ enabled: yes state: restarted with_items: + - { name: mongodb } - { name: sugarizer } when: sugarizer_enabled From c5cd1e273615d13e3b14a22acbf5a7638daa626f Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 11 Jul 2018 21:27:40 -0400 Subject: [PATCH 18/22] Update main.yml --- roles/sugarizer/tasks/main.yml | 44 +++++++--------------------------- 1 file changed, 8 insertions(+), 36 deletions(-) diff --git a/roles/sugarizer/tasks/main.yml b/roles/sugarizer/tasks/main.yml index 6fdc38b99..272f10097 100644 --- a/roles/sugarizer/tasks/main.yml +++ b/roles/sugarizer/tasks/main.yml @@ -6,34 +6,14 @@ # 1. DOWNLOAD /opt/iiab/sugarizer -# July 2018: instead let's "git clone" IIAB's specified/preferred version -#- name: D/L latest stable Sugarizer from location we control to /opt/iiab/downloads/ -# get_url: -# url: "{{ iiab_download_url }}/{{ sugarizer_version }}.tar.gz" -# dest: "{{ downloads_dir }}/{{ sugarizer_version }}.tar.gz" -# timeout: "{{ download_timeout }}" -# when: internet_available -# -#- name: Untar to /opt/iiab/{{ sugarizer_version }} -# 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: Clone llaske/sugarizer ({{ sugarizer_git_version }}) from GitHub to /opt/iiab git: repo: https://github.com/llaske/sugarizer dest: "{{ sugarizer_location }}/{{ sugarizer_version }}" version: "{{ sugarizer_git_version }}" + force: yes when: internet_available -#- name: Move /opt/iiab/sugarizer to /opt/iiab/{{ sugarizer_version }} -# command: mv "{{ sugarizer_location }}/sugarizer" "{{ sugarizer_location }}/{{ sugarizer_version }}" -# args: -# creates: "{{ sugarizer_location }}/{{ sugarizer_version }}" - - name: Create symbolic link /opt/iiab/sugarizer -> /opt/iiab/{{ sugarizer_version }} file: src: "{{ sugarizer_location }}/{{ sugarizer_version }}" @@ -42,28 +22,20 @@ # 2. DOWNLOAD /opt/iiab/sugarizer-server -# July 2018: instead let's "git clone" IIAB's specified/preferred version -# Tarfile below was not working, as documented at: +# July 2018: http://download.iiab.io/packages/sugarizer-server-1.0.tar.gz +# was flawed, as documented at: +# https://github.com/iiab/iiab/pull/814#issuecomment-404211098 +# Versions of MongoDB, npm (& Node.js ?) matter! Sugarizer 1.0 Context: # https://github.com/iiab/iiab/issues/798 -# https://github.com/iiab/iiab/issues/814 -#- name: Download latest stable Server from location we control -# get_url: -# url: "{{ iiab_download_url }}/{{ sugarizer_server_version }}.tar.gz" -# dest: "{{ downloads_dir }}/{{ sugarizer_server_version }}.tar.gz" -# timeout: "{{ download_timeout }}" -# when: internet_available -# -#- name: Untar to /opt/iiab/{{ sugarizer_server_version }} -# unarchive: -# src: "{{ downloads_dir }}/{{ sugarizer_server_version }}.tar.gz" -# dest: "{{ sugarizer_location }}" -# creates: "{{ sugarizer_location }}/{{ sugarizer_server_version }}/index.html" +# Going forward let's "git clone" IIAB's preferred version, of sugarizer +# and sugarizer-server, as specified in roles/sugarizer/defaults/main.yml - name: Clone llaske/sugarizer-server ({{ sugarizer_server_git_version }}) from GitHub to /opt/iiab git: repo: https://github.com/llaske/sugarizer-server dest: "{{ sugarizer_location }}/{{ sugarizer_server_version }}" version: "{{ sugarizer_server_git_version }}" + force: yes when: internet_available #- name: Move /opt/iiab/sugarizer-server to /opt/iiab/{{ sugarizer_server_version }} From 995f7e7630a01eb63d98052002e7194e4fd7ad31 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 11 Jul 2018 21:29:49 -0400 Subject: [PATCH 19/22] 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 272f10097..b20fe8b28 100644 --- a/roles/sugarizer/tasks/main.yml +++ b/roles/sugarizer/tasks/main.yml @@ -28,7 +28,7 @@ # Versions of MongoDB, npm (& Node.js ?) matter! Sugarizer 1.0 Context: # https://github.com/iiab/iiab/issues/798 # Going forward let's "git clone" IIAB's preferred version, of sugarizer -# and sugarizer-server, as specified in roles/sugarizer/defaults/main.yml +# AND sugarizer-server, as specified in roles/sugarizer/defaults/main.yml - name: Clone llaske/sugarizer-server ({{ sugarizer_server_git_version }}) from GitHub to /opt/iiab git: From 0ca4f33525ba81d48de8e147cc0b0279e605fd30 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 11 Jul 2018 21:40:04 -0400 Subject: [PATCH 20/22] Update main.yml --- roles/sugarizer/tasks/main.yml | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/roles/sugarizer/tasks/main.yml b/roles/sugarizer/tasks/main.yml index b20fe8b28..29990f2ad 100644 --- a/roles/sugarizer/tasks/main.yml +++ b/roles/sugarizer/tasks/main.yml @@ -38,11 +38,6 @@ force: yes when: internet_available -#- name: Move /opt/iiab/sugarizer-server to /opt/iiab/{{ sugarizer_server_version }} -# command: mv "{{ sugarizer_location }}/sugarizer-server" "{{ sugarizer_location }}/{{ sugarizer_server_version }}" -# args: -# creates: "{{ sugarizer_location }}/{{ sugarizer_server_version }}" - - name: Create symbolic link /opt/iiab/sugarizer-server -> /opt/iiab/{ sugarizer_server_version }} file: src: "{{ sugarizer_location }}/{{ sugarizer_server_version }}" @@ -51,7 +46,7 @@ # 3. INSTALL A GOOD VERSION OF Node.js AND npm -# Both Raspbian and Debian 9 STILL need this approach as of 2018-07-11, +# Both Raspbian and Debian 9 STILL need this approach as of July 2018, # as documented at https://github.com/iiab/iiab/issues/798#issuecomment-404324530 - name: Set up Node.js 8.x apt sources (debuntu but avoid ubuntu-18) shell: curl -sL https://deb.nodesource.com/setup_8.x | bash - @@ -85,7 +80,7 @@ # 4. RUN "npm install" TO POPULATE ~35MB /opt/iiab/sugarizer-server/node_modules -# re-running "npm install" fails on Raspbian 9 +# Re-running "npm install" fails on Raspbian 9 if not other OS's - name: Check for Sugarizer already installed stat: path: "{{ sugarizer_location }}/{{ sugarizer_server_version }}/node_modules" @@ -125,7 +120,7 @@ - { src: 'sugarizer.ini', dest: '{{ sugarizer_location }}/{{ sugarizer_server_version }}/env/sugarizer.ini', mode: '0644' } - { src: 'sugarizer.conf', dest: '/etc/apache2/sites-available', mode: '0644' } -- name: Create symlink enabling short URL http://box/sugarizer +- name: Create symlink for short URL http://box/sugarizer file: src: /etc/apache2/sites-available/sugarizer.conf dest: /etc/apache2/sites-enabled/sugarizer.conf From fbf55019e79204dfda0c20cf3ad6f61a85daa45a Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 11 Jul 2018 21:49:03 -0400 Subject: [PATCH 21/22] Update main.yml --- roles/sugarizer/tasks/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/sugarizer/tasks/main.yml b/roles/sugarizer/tasks/main.yml index 29990f2ad..ef507903a 100644 --- a/roles/sugarizer/tasks/main.yml +++ b/roles/sugarizer/tasks/main.yml @@ -81,13 +81,13 @@ # 4. RUN "npm install" TO POPULATE ~35MB /opt/iiab/sugarizer-server/node_modules # Re-running "npm install" fails on Raspbian 9 if not other OS's -- name: Check for Sugarizer already installed +- name: Check for /opt/iiab/{{ sugarizer_server_version }}/node_modules stat: path: "{{ sugarizer_location }}/{{ sugarizer_server_version }}/node_modules" register: nmtest ignore_errors: true -- name: Set a flag to abort second attempt to install +- name: Set a flag to prevent re-running of "npm install" set_fact: node_modules_exists: True when: nmtest.stat is defined and nmtest.stat.exists From 9103063af8e95ccc438e1e60e3214004d1d2f059 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 11 Jul 2018 21:54:21 -0400 Subject: [PATCH 22/22] Update mongodb.service --- roles/mongodb/templates/mongodb.service | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/roles/mongodb/templates/mongodb.service b/roles/mongodb/templates/mongodb.service index 328682a10..40f4f573f 100644 --- a/roles/mongodb/templates/mongodb.service +++ b/roles/mongodb/templates/mongodb.service @@ -6,8 +6,7 @@ After=syslog.target network.target Type=simple User=mongodb Group=mongodb -ExecStart=/usr/bin/mongod -f /etc/mongod.conf +ExecStart=/usr/bin/mongod -f /etc/mongod.conf [Install] WantedBy=multi-user.target -