diff --git a/roles/0-init/tasks/main.yml b/roles/0-init/tasks/main.yml index a2fadff04..e2f7dead6 100644 --- a/roles/0-init/tasks/main.yml +++ b/roles/0-init/tasks/main.yml @@ -123,19 +123,6 @@ # We decided to enable mysql unconditionally. # when: elgg_enabled or rachel_enabled or owncloud_enabled or phpmyadmin_enabled or wordpress_enabled or iiab_menu_install -# There might be other db's -- name: Turn on both vars for PostgreSQL if moodle_enabled or pathagar_enabled - set_fact: - postgresql_install: True - postgresql_enabled: True - when: moodle_enabled or (pathagar_enabled is defined and pathagar_enabled) - -#- name: Turn on vars for Docker if SchoolTool is to be installed -# set_fact: -# docker_install: True -# docker_enabled: True -# when: schooltool_enabled or schooltool_install - - name: "Set python_path: /lib/python2.7/site-packages/ (redhat)" set_fact: python_path: /lib/python2.7/site-packages/ diff --git a/roles/4-server-options/tasks/main.yml b/roles/4-server-options/tasks/main.yml index 0ce4d852e..25e6889b1 100644 --- a/roles/4-server-options/tasks/main.yml +++ b/roles/4-server-options/tasks/main.yml @@ -32,28 +32,12 @@ when: usb_lib_install | bool #tags: usb-lib -# NETWORK moved to the very end, after Stage 9 (9-LOCAL-ADDONS) -# It can also be run manually using: cd /opt/iiab/iiab; ./iiab-network -# -#- name: NETWORK -# include_role: -# name: network -# # has no "when: XXXXX_install" flag -# tags: base, network - -# MANDATORY SO PERHAPS THIS BELONGS IN 3-BASE-SERVER ? - name: HOMEPAGE include_role: name: homepage # has no "when: XXXXX_install" flag #tags: base, homepage -- name: POSTGRESQL - include_role: - name: postgresql - when: postgresql_install | bool - #tags: postgresql, pathagar, moodle - - name: CUPS include_role: name: cups diff --git a/roles/moodle/tasks/enable.yml b/roles/moodle/tasks/enable.yml index 755721436..474c407f7 100644 --- a/roles/moodle/tasks/enable.yml +++ b/roles/moodle/tasks/enable.yml @@ -1,3 +1,18 @@ +- name: Enable postgresql-iiab service when moodle_enabled + systemd: + name: postgresql-iiab + state: started + enabled: yes + when: moodle_enabled + +# if the only service using the backend db disable if not running +- name: Disable postgresql-iiab service when not moodle_enabled + systemd: + name: postgresql-iiab + state: stopped + enabled: no + when: not moodle_enabled and not (pathagar_enabled is defined and pathagar_enabled) + # Apache - name: Enable http://box/moodle via Apache diff --git a/roles/moodle/tasks/install.yml b/roles/moodle/tasks/install.yml index 059c56d42..fe212a804 100644 --- a/roles/moodle/tasks/install.yml +++ b/roles/moodle/tasks/install.yml @@ -1,3 +1,12 @@ +- name: Turn on enabled vars for PostgreSQL + set_fact: + postgresql_install: True + postgresql_enabled: True + +- name: POSTGRESQL + include_role: + name: postgresql + - name: "Install packages: python-psycopg2, php-pgsql (OS's other than debuntu)" package: name: diff --git a/roles/mysql/tasks/main.yml b/roles/mysql/tasks/main.yml index 48656e89f..f366745fd 100644 --- a/roles/mysql/tasks/main.yml +++ b/roles/mysql/tasks/main.yml @@ -68,7 +68,7 @@ - name: Copy pkg's /lib/systemd/system/mariadb.service to /etc/systemd/system/ to be customized (CREATES TIMESTAMPED BACKUPS OF /etc/systemd/system/mariadb.service e.g. IF OPERATOR CUSTOMIZED IT, EVEN DESPITE WARNING BELOW!) copy: force: yes - backup: yes + backup: no src: /lib/systemd/system/mariadb.service dest: /etc/systemd/system/ when: mariadb_unit_file.stat.exists diff --git a/roles/nodejs/tasks/main.yml b/roles/nodejs/tasks/main.yml index 95b17d8e3..841f71c23 100644 --- a/roles/nodejs/tasks/main.yml +++ b/roles/nodejs/tasks/main.yml @@ -41,13 +41,22 @@ # /etc/iiab/local_vars.yml -- then re-run this IIAB installer. # when: nodejs_version_installed is defined and nodejs_version_installed.stdout != nodejs_version and nodejs_version_installed.stderr == "" +# Forces < 12 or > 12 to be removed, ignored if file is absent +- name: Remove /etc/apt/sources.list.d/nodesource.list if nodejs_version_installed.stdout is not {{ nodejs_version }} + file: + state: absent + path: /etc/apt/sources.list.d/nodesource.list + when: nodejs_version_installed is defined and nodejs_version_installed.stdout != nodejs_version and nodejs_version_installed.stdout != "" + # BRUTAL but ensures consistency across OS's / distros like Raspbian Desktop & Ubermix that often include an older version of Node.js +# Forces < 12 or > 12 to be uninstalled - name: ASK apt/yum/dnf TO REMOVE PRE-EXISTING Node.js {{ nodejs_version_installed.stdout }} (IF IT'S NOT {{ nodejs_version }}) package: name: nodejs state: absent when: nodejs_version_installed is defined and nodejs_version_installed.stdout != nodejs_version and nodejs_version_installed.stdout != "" +# Forces == 12 - name: Warn if Node.js {{ nodejs_version}} already installed & might be updated debug: msg: "WARN: YOUR Node.js {{ nodejs_version }} MIGHT NOW BE UPDATED USING nodesource.com" @@ -79,6 +88,7 @@ # 19.04 Beta. Comment it out for now, and manually run: "apt install npm" then # "npm install -g npm@latest" (all *SHOULD* be magically fixed by 2019-04-18 ?) +# Forces update - name: Install latest Node.js {{ nodejs_version }} which includes /usr/bin/npm (debuntu) package: #name: nodejs={{ nodejs_version }} diff --git a/roles/nodered/meta/main.yml b/roles/nodered/meta/main.yml deleted file mode 100644 index 718e787e8..000000000 --- a/roles/nodered/meta/main.yml +++ /dev/null @@ -1,2 +0,0 @@ - dependencies: - - { role: nodejs, tags: ['nodejs'], when: nodered_install | bool } diff --git a/roles/nodered/tasks/install.yml b/roles/nodered/tasks/install.yml index ceeb04eb5..84873fc8c 100644 --- a/roles/nodered/tasks/install.yml +++ b/roles/nodered/tasks/install.yml @@ -1,5 +1,10 @@ # 2019-01-16: @jvonau's PR #1403 moved installation of Node.js (8.x for now) & -# npm to roles/nodejs/tasks/main.yml, triggered by roles/nodered/meta/main.yml +# npm to roles/nodejs/tasks/main.yml + +- name: NODEJS + include_role: + name: nodejs +# 2020-01-04 no longer triggered by roles/nodered/meta/main.yml # BRUTAL but ensures consistency across OS's / distros like Raspbian Desktop & # Ubermix that often include an older version of Node-RED. Brutal, as this @@ -75,7 +80,7 @@ - name: Install /etc/systemd/system/nodered.service systemd unit file from template template: - backup: yes + backup: no src: nodered.service.j2 dest: /etc/systemd/system/nodered.service # mode: '0666' diff --git a/roles/pathagar/tasks/main.yml b/roles/pathagar/tasks/main.yml index 968762383..b1f17af72 100644 --- a/roles/pathagar/tasks/main.yml +++ b/roles/pathagar/tasks/main.yml @@ -1,3 +1,12 @@ +- name: Turn on enabled vars for PostgreSQL + set_fact: + postgresql_install: True + postgresql_enabled: True + +- name: POSTGRESQL + include_role: + name: postgresql + - name: Remove package Pathagar (in case rpm?) package: name: pathagar @@ -93,6 +102,8 @@ service: name: postgresql-iiab state: started + enabled: yes + when: pathagar_enabled - name: Enable Pathagar postgresql user access by md5 method lineinfile: @@ -193,6 +204,15 @@ name: "{{ apache_service }}" state: reloaded +# if the only service using the backend db disable if not running +- name: Disable postgresql-iiab service when not pathagar_enabled + systemd: + name: postgresql-iiab + state: stopped + enabled: no + when: not moodle_enabled and not pathagar_enabled + + - name: Add 'pathagar' variable values to {{ iiab_ini_file }} ini_file: path: "{{ iiab_ini_file }}" diff --git a/roles/pbx/meta/main.yml b/roles/pbx/meta/main.yml deleted file mode 100644 index 30cca5358..000000000 --- a/roles/pbx/meta/main.yml +++ /dev/null @@ -1,3 +0,0 @@ - dependencies: - - { role: nodejs, tags: ['nodejs'], when: pbx_install and (nodejs_version == "10.x")} - diff --git a/roles/pbx/tasks/main.yml b/roles/pbx/tasks/main.yml index 77831bd12..d7f29acd1 100644 --- a/roles/pbx/tasks/main.yml +++ b/roles/pbx/tasks/main.yml @@ -1,3 +1,7 @@ +- name: NODEJS + include_role: + name: nodejs + - name: Fail if nodejs_version is incorrect fail: msg: >- diff --git a/roles/sugarizer/meta/main.yml b/roles/sugarizer/meta/main.yml deleted file mode 100644 index d0298987b..000000000 --- a/roles/sugarizer/meta/main.yml +++ /dev/null @@ -1,3 +0,0 @@ -dependencies: - - { role: mongodb, tags: ['generic','mongodb'], when: sugarizer_install | bool } - - { role: nodejs, tags: ['nodejs'], when: sugarizer_install | bool } diff --git a/roles/sugarizer/tasks/enable.yml b/roles/sugarizer/tasks/enable.yml index d23fdff8a..d1e1ce4b8 100644 --- a/roles/sugarizer/tasks/enable.yml +++ b/roles/sugarizer/tasks/enable.yml @@ -1,3 +1,4 @@ +# auto starts mongodb via the requires= line in unit file - name: Enable & Restart 'sugarizer' systemd service systemd: name: sugarizer @@ -6,6 +7,7 @@ state: restarted when: sugarizer_enabled | bool +# stops sugarizer but not mongodb - name: Disable & Stop 'sugarizer' systemd service systemd: name: sugarizer @@ -13,6 +15,11 @@ state: stopped when: not sugarizer_enabled +# stops mongodb would of been called via meta/main.yml prior +- name: MONGODB + include_tasks: roles/mongodb/tasks/enable.yml + when: not sugarizer_enabled + # Apache - name: Enable http://box/sugarizer & http://box/sugar via Apache diff --git a/roles/sugarizer/tasks/install.yml b/roles/sugarizer/tasks/install.yml index ea9c3f3df..e3fe1318c 100644 --- a/roles/sugarizer/tasks/install.yml +++ b/roles/sugarizer/tasks/install.yml @@ -1,3 +1,11 @@ +- name: MONGODB + include_role: + name: mongodb + +- name: NODEJS + include_role: + name: nodejs + - name: FAIL (STOP INSTALLING) IF nodejs_version is not set to 12.x fail: msg: "Sugarizer install cannot proceed, as it currently requires Node.js 12.x, and your nodejs_version is set to {{ nodejs_version }}. Please check the value of nodejs_version in /opt/iiab/iiab/vars/default_vars.yml and possibly also /etc/iiab/local_vars.yml"