mirror of
https://github.com/iiab/iiab.git
synced 2025-02-13 11:42:08 +00:00
93 lines
3.9 KiB
YAML
93 lines
3.9 KiB
YAML
- name: 'Create MySQL database with name: {{ nextcloud_dbname }}'
|
|
mysql_db:
|
|
name: "{{ nextcloud_dbname }}"
|
|
|
|
- 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:
|
|
# - 127.0.0.1
|
|
# - ::1
|
|
- localhost
|
|
|
|
|
|
# https://docs.nextcloud.com/server/latest/admin_manual/installation/command_line_installation.html
|
|
- name: Create data dir {{ nextcloud_data_dir }} ({{ apache_user }}:{{ apache_user }})
|
|
file:
|
|
state: directory
|
|
path: "{{ nextcloud_data_dir }}" # /library/www/nextcloud/data
|
|
owner: "{{ apache_user }}" # www-data on debuntu
|
|
group: "{{ apache_user }}"
|
|
|
|
# 1 of 3: Very Old Way... from OwnCloud days
|
|
#- name: Install {{ nextcloud_root_dir }}/config/autoconfig.php from template
|
|
# template:
|
|
# src: autoconfig.php.j2
|
|
# dest: "{{ nextcloud_root_dir }}/config/autoconfig.php"
|
|
# owner: "{{ apache_user }}"
|
|
# group: "{{ apache_user }}"
|
|
# mode: '0640'
|
|
|
|
# 2 of 3: Another Possible Way... not quite ready for prime time
|
|
# - name: Set 'datadirectory' to {{ nextcloud_data_dir }} in {{ nextcloud_root_dir }}/config/config.php
|
|
# lineinfile:
|
|
# path: "{{ nextcloud_root_dir }}/config/config.php"
|
|
# regexp: "^ 'datadirectory' => "
|
|
# insertafter: '^\$CONFIG = array \('
|
|
# line: " 'datadirectory' => '{{ nextcloud_data_dir }}',"
|
|
|
|
- name: "Run 'php {{ nextcloud_root_dir }}/occ status' to determine if Nextcloud is installed (causing INSTALL WIZARD TO FAIL in the next step)"
|
|
shell: >
|
|
php {{ nextcloud_root_dir }}/occ status |
|
|
gawk '/installed:/ { print $3 }'
|
|
become: yes
|
|
become_user: "{{ apache_user }}"
|
|
register: returned
|
|
|
|
# 3 of 3: NEW WAY IN 2020... use --data-dir "{{ nextcloud_data_dir }}"
|
|
# https://docs.nextcloud.com/server/latest/admin_manual/installation/command_line_installation.html
|
|
# https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html#command-line-installation-label
|
|
# ...page lists alternative 'occ' commands. If Nextcloud's already installed,
|
|
# attempting 'maintenance:install' (below) also lists these options:
|
|
# app:install
|
|
# maintenance:data-fingerprint
|
|
# maintenance:mimetype:update-db
|
|
# maintenance:mimetype:update-js
|
|
# maintenance:mode
|
|
# maintenance:repair
|
|
# maintenance:theme:update
|
|
# maintenance:update:htaccess
|
|
- name: Run Nextcloud initial install wizard, seeding data dir {{ nextcloud_data_dir }} (IF THIS FAILS, CONSIDER 'sudo mysql' THEN 'DROP DATABASE {{ nextcloud_dbname }};' THEN RERUN THIS)
|
|
shell: >
|
|
cd {{ nextcloud_root_dir }};
|
|
php occ maintenance:install
|
|
--database "mysql"
|
|
--database-name "{{ nextcloud_dbname }}"
|
|
--database-user "{{ nextcloud_dbuser }}"
|
|
--database-pass "{{ nextcloud_dbpassword }}"
|
|
--admin-user "{{ nextcloud_admin_user }}"
|
|
--admin-pass "{{ nextcloud_admin_password }}"
|
|
--data-dir "{{ nextcloud_data_dir }}"
|
|
become: yes
|
|
become_user: "{{ apache_user }}"
|
|
when: returned.stdout == "false" # and nextcloud_enabled
|
|
#when: nextcloud_installed is undefined
|
|
#args:
|
|
# creates: "{{ nextcloud_root_dir }}/SOME_FILE" # /library/www/nextcloud/SOME_FILE
|
|
|
|
|
|
# https://docs.nextcloud.com/server/latest/admin_manual/installation/source_installation.html#php-fpm-configuration-notes
|
|
- name: Set 'clear_env = no' in /etc/php/{{ php_version }}/fpm/pool.d/www.conf
|
|
lineinfile:
|
|
path: "/etc/php/{{ php_version }}/fpm/pool.d/www.conf"
|
|
regexp: '^clear_env'
|
|
insertafter: ';.*clear_env'
|
|
line: 'clear_env = no'
|
|
|
|
- name: 'Allow Nextcloud access from all hosts and IP addresses -- SEE ALSO THE OLD WAY: https://github.com/iiab/iiab/blob/master/roles/nextcloud/templates/nextcloud.conf.j2.unused'
|
|
command: php {{ nextcloud_root_dir }}/occ config:system:set trusted_domains 1 --value=*
|
|
become: yes
|
|
become_user: "{{ apache_user }}"
|