From 9d6b3d0dd9b8fb7e70cb329b1bc4da5ba59aacb0 Mon Sep 17 00:00:00 2001 From: A Holt Date: Thu, 4 Jul 2019 20:41:36 -0400 Subject: [PATCH] Reduce nextcloud/tasks/main.yml, for install.yml --- roles/nextcloud/tasks/main.yml | 226 +-------------------------------- 1 file changed, 4 insertions(+), 222 deletions(-) diff --git a/roles/nextcloud/tasks/main.yml b/roles/nextcloud/tasks/main.yml index ba3d9174e..13bd12b01 100644 --- a/roles/nextcloud/tasks/main.yml +++ b/roles/nextcloud/tasks/main.yml @@ -4,231 +4,13 @@ register: nextcloud_page - name: FORCE INSTALL OR REINSTALL OR UPGRADE IF {{ nextcloud_prefix }}/nextcloud/version.php DOESN'T EXIST - set_fact: - nextcloud_force_install: True - when: not nextcloud_page.stat.exists + #set_fact: + # nextcloud_force_install: True + include_tasks: install.yml + when: nextcloud_install and not nextcloud_page.stat.exists # - debug: # var: nextcloud_force_install # - debug: # msg: "nextcloud_force_install: {{ nextcloud_force_install }}" - - -# CHECK FOR PHP VERSION AUTOMATICALLY, TO DETERMINE WHICH NEXTCLOUD TO INSTALL. -# INSPIRED BY: github.com/iiab/iiab/blob/master/roles/nodejs/tasks/main.yml#L10-L54 - -# NOTE: php installation is mandatory due to 0-init/tasks/main.yml, which forces -# this in roles/mysql/tasks/main.yml, as invoked by 3-base-server/tasks/main.yml - -# NOTE: the 3 stanzas below would still work even if php was not installed, -# correctly setting variable 'php_new' to False. - -- name: Try to run 'php -v' to get PHP version - # e.g. converts multi-line "PHP 7.0.33-0ubuntu0.16.04.5 (cli) ( NTS ) ..." to "7.0.33" - shell: php -v | head -1 | sed 's/^[^0-9.]*//' | sed 's/[^0-9.].*//' - register: php_version_installed - #ignore_errors: yes # NOT NEC: if php is not installed, php_version_installed.stdout will get set to "" - -#- debug: -# var: php_version_installed - -- name: Initialize var 'php_new' to False - set_fact: - php_new: False - #when: php_version_installed.stdout == "" # WORKS, BUT NOT NEC - -- name: Set var 'php_new' indicating if installed version of PHP ({{ php_version_installed.stdout }}) >= 7.1, as required by Nextcloud 16 - set_fact: - php_new: "{{ php_version_installed.stdout is version('7.1', '>=') }}" - # Ansible's Version Comparison routine: - # https://docs.ansible.com/ansible/latest/user_guide/playbooks_tests.html#version-comparison - when: php_version_installed.stdout != "" # i.e. IF ABOVE 'php -v' WORKED - -#- debug: -# var: php_new - - -- name: Download {{ nextcloud_dl_url }}/{{ nextcloud_orig_src_file_old }} to {{ downloads_dir }}/{{ nextcloud_src_file_old }} on older OS's lacking PHP 7.1+ - get_url: - url: "{{ nextcloud_dl_url }}/{{ nextcloud_orig_src_file_old }}" - dest: "{{ downloads_dir }}/{{ nextcloud_src_file_old }}" - timeout: "{{ download_timeout }}" - force: yes - #validate_certs: False # TEMPORARY ON/AFTER 2018-07-22 AS download.nextcloud.com CERT EXPIRED: https://github.com/iiab/iiab/issues/954 - #async: 1800 - #poll: 10 - tags: - - download - when: internet_available and nextcloud_force_install and not php_new - #when: internet_available and nextcloud_force_install and (is_debian_9 or is_raspbian_9 or is_ubuntu_16) - -- name: Download {{ nextcloud_dl_url }}/{{ nextcloud_orig_src_file }} to {{ downloads_dir }}/{{ nextcloud_src_file }} on newer OS's that have PHP 7.1+ - get_url: - url: "{{ nextcloud_dl_url }}/{{ nextcloud_orig_src_file }}" - dest: "{{ downloads_dir }}/{{ nextcloud_src_file }}" - timeout: "{{ download_timeout }}" - force: yes - #validate_certs: False # TEMPORARY ON/AFTER 2018-07-22 AS download.nextcloud.com CERT EXPIRED: https://github.com/iiab/iiab/issues/954 - #async: 1800 - #poll: 10 - tags: - - download - when: internet_available and nextcloud_force_install and php_new - #when: internet_available and nextcloud_force_install and not (is_debian_9 or is_raspbian_9 or is_ubuntu_16) - -# Ubuntu and Debian treat names differently -- name: Install 3 php packages (debian) - package: - name: - - "libapache2-mod-php{{ php_version }}" - - "php{{ php_version }}-mbstring" - - "php{{ php_version }}-zip" - state: present - when: is_debian | bool - -# Ubuntu and Debian treat names differently -- name: Install 4 php packages (ubuntu) - package: - name: - - libapache2-mod-php - - php-imagick - - php-zip - - php-mbstring - state: present - when: is_ubuntu | bool - -- name: Install 5 more php packages (debuntu) - package: - name: - - "php{{ php_version }}-gd" - - "php{{ php_version }}-json" - - "php{{ php_version }}-mysql" - - "php{{ php_version }}-curl" - - "php{{ php_version }}-intl" - state: present - when: is_debuntu | bool - -- name: 'Install php{{ php_version }}-mcrypt IF this is a "pre-2018" distro in the debuntu family. NOTE: PHP 7.1 deprecated mcrypt 1-Dec-2016 and PHP 7.2 dropped it completely 30-Nov-2017, as it should no longer be nec.' - package: - name: "php{{ php_version }}-mcrypt" - state: present - when: is_debian_8 or is_debian_9 or is_ubuntu_16 or is_ubuntu_17 - # NOT NEC TO TEST FOR is_raspbian_8 OR is_raspbian_9 AS /opt/iiab/iiab/vars/.yml - # DEFINES THESE AS SUBSETS OF is_debian_8 OR is_debian_9 (FOR NOW!) - -# we need to install the rpm in order to get the dependencies -# but we only need to do this the first time - -- name: Install 7 php packages (redhat) - package: - name: - - php - - php-gd - - php-json - - php-mysql - - php-curl - - php-intl - - php-mcrypt - # CentOS does not have a package for php-imagick - #- php-imagick - state: present - when: is_redhat | bool - -- name: Unarchive {{ nextcloud_src_file_old }} to permanent location {{ nextcloud_prefix }}/nextcloud on older OS's lacking PHP 7.1+ # e.g. unpack nextcloud_latest-15.tar.bz2 to /opt/nextcloud - unarchive: - src: "{{ downloads_dir }}/{{ nextcloud_src_file_old }}" - dest: "{{ nextcloud_prefix }}" - #creates: "{{ nextcloud_prefix }}/nextcloud/version.php" - when: nextcloud_force_install and not php_new - #when: nextcloud_force_install and (is_debian_9 or is_raspbian_9 or is_ubuntu_16) - -- name: Unarchive {{ nextcloud_src_file }} to permanent location {{ nextcloud_prefix }}/nextcloud on newer OS's that have PHP 7.1+ # e.g. unpack nextcloud_latest-16.tar.bz2 to /opt/nextcloud - unarchive: - src: "{{ downloads_dir }}/{{ nextcloud_src_file }}" - dest: "{{ nextcloud_prefix }}" - #creates: "{{ nextcloud_prefix }}/nextcloud/version.php" - when: nextcloud_force_install and php_new - #when: nextcloud_force_install and not (is_debian_9 or is_raspbian_9 or is_ubuntu_16) - -- name: Create dir /etc/nextcloud (centos) for a subsequent config dir that's symlinked to /etc/nextcloud ? - file: - path: /etc/nextcloud - state: directory - when: is_centos | bool - -- name: Install {{ nextcloud_prefix }}/nextcloud/config/autoconfig.php from template (centos) - template: - src: autoconfig.php.j2 - dest: "{{ nextcloud_prefix }}/nextcloud/config/autoconfig.php" - owner: "{{ apache_user }}" - group: "{{ apache_user }}" - mode: 0640 - when: is_centos | bool - -- name: chown -R {{ apache_user }}:{{ apache_user }} {{ nextcloud_prefix }}/nextcloud - file: - path: "{{ nextcloud_prefix }}/nextcloud" - owner: "{{ apache_user }}" - group: "{{ apache_user }}" - recurse: yes - state: directory - -- name: Create data directory {{ nextcloud_data_dir }} # /opt/nextcloud/data - file: - path: "{{ nextcloud_data_dir }}" - owner: "{{ apache_user }}" - group: "{{ apache_user }}" - mode: 0750 - state: directory - -- name: 'Create MySQL database with name: {{ nextcloud_dbname }}' - mysql_db: - name: "{{ nextcloud_dbname }}" - when: mysql_enabled and nextcloud_enabled - -- name: Add username/password to the MySQL database (associated with trusted IP's like localhost) - mysql_user: - name: "{{ nextcloud_dbuser }}" - host: "{{ item }}" - password: "{{ nextcloud_dbpassword }}" - priv: "{{ nextcloud_dbname }}.*:ALL,GRANT" - with_items: - - "{{ nextcloud_dbhost }}" - - 127.0.0.1 - - ::1 - - localhost - when: mysql_enabled and nextcloud_enabled - -# Appears unnec as nextcloud_enabled.yml (just below) does the same -#- name: Restart Apache -# service: -# name: "{{ apache_service }}" -# state: restarted -## when: nextcloud_enabled | bool # taken care of by nextcloud_enabled.yml below -# when: not nextcloud_enabled - -# Enables or disable Nextcloud! -- include_tasks: nextcloud_enabled.yml - -- name: Add 'nextcloud' variable values to {{ iiab_ini_file }} - ini_file: - path: "{{ iiab_ini_file }}" - section: Nextcloud - option: "{{ item.option }}" - value: "{{ item.value }}" - 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_force_install - value: "{{ nextcloud_force_install }}" - - option: nextcloud_orig_src_file - value: "{{ nextcloud_orig_src_file }}" - - option: nextcloud_src_file - value: "{{ nextcloud_src_file }}" - - option: nextcloud_enabled - value: "{{ nextcloud_enabled }}"