From f5180d99a2ebefff64e30e3976cbe360fcc0f372 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 29 Jan 2020 09:22:32 -0500 Subject: [PATCH] Update nextcloud/tasks/main.yml --- roles/nextcloud/tasks/main.yml | 69 +++++++++++++++++++++++++++------- 1 file changed, 55 insertions(+), 14 deletions(-) diff --git a/roles/nextcloud/tasks/main.yml b/roles/nextcloud/tasks/main.yml index b89120da4..abe6e4131 100644 --- a/roles/nextcloud/tasks/main.yml +++ b/roles/nextcloud/tasks/main.yml @@ -1,18 +1,59 @@ -- name: Does /opt/nextcloud/version.php exist? - stat: - path: "{{ nextcloud_prefix }}/nextcloud/version.php" - register: nextcloud_page +# "How do i fail a task in Ansible if the variable contains a boolean value? +# I want to perform input validation for Ansible playbooks" +# https://stackoverflow.com/questions/46664127/how-do-i-fail-a-task-in-ansible-if-the-variable-contains-a-boolean-value-i-want/46667499#46667499 -- name: FORCE INSTALL OR REINSTALL OR UPGRADE IF {{ nextcloud_prefix }}/nextcloud/version.php DOESN'T EXIST - #set_fact: - # nextcloud_force_install: True +# We assume 0-init/tasks/validate_vars.yml has DEFINITELY been run, so no need +# to re-check whether vars are defined here. As Ansible vars cannot be unset: +# https://serverfault.com/questions/856729/how-to-destroy-delete-unset-a-variable-value-in-ansible + +- name: Assert that "nextcloud_install is sameas true" (boolean not string etc) + assert: + that: nextcloud_install is sameas true + fail_msg: "PLEASE SET 'nextcloud_install: True' e.g. IN: /etc/iiab/local_vars.yml" + quiet: yes + +- name: Assert that "nextcloud_enabled | type_debug == 'bool'" (boolean not string etc) + assert: + that: nextcloud_enabled | type_debug == 'bool' + fail_msg: "PLEASE GIVE VARIABLE 'nextcloud_enabled' A PROPER (UNQUOTED) ANSIBLE BOOLEAN VALUE e.g. IN: /etc/iiab/local_vars.yml" + quiet: yes + + +#- name: Does {{ nextcloud_prefix }}//nextcloud/version.php exist? # /opt +# stat: +# path: "{{ nextcloud_prefix }}/nextcloud/version.php" +# register: nextcloud_page + +- name: Install Nextcloud if 'nextcloud_installed' is not defined in {{ iiab_state_file }} # /etc/iiab/iiab_state.yml include_tasks: install.yml - when: nextcloud_install and (not nextcloud_installed is defined or not nextcloud_page.stat.exists) + when: nextcloud_installed is undefined # or not nextcloud_page.stat.exists -- name: Provision Nextcloud's MySQL DB, run Nextcloud's install wizard, etc - include_tasks: setup.yml - when: nextcloud_install and not installing -- name: Enable or disable Nextcloud - include_tasks: enable.yml - when: nextcloud_install or nextcloud_installed is defined +- name: Enable/Disable/Restart Apache if primary + include_tasks: apache.yml + when: not nginx_enabled + +- name: Enable/Disable/Restart NGINX if primary + include_tasks: nginx.yml + when: nginx_enabled | bool + + +- name: Add 'nextcloud' variable values to {{ iiab_ini_file }} + ini_file: + path: "{{ iiab_ini_file }}" + section: Nextcloud + option: "{{ item.option }}" + value: "{{ item.value | string }}" + with_items: + - option: name + value: Nextcloud + - option: description + value: '"Nextcloud is a local server-based facility for sharing files, photos, contacts, calendars, etc."' + - option: path + value: "{{ nextcloud_prefix }}/nextcloud" + - option: nextcloud_orig_src_file + value: "{{ nextcloud_orig_src_file }}" + - option: nextcloud_src_file + value: "{{ nextcloud_src_file }}" + - option: nextcloud_enabled + value: "{{ nextcloud_enabled }}"