1
0
Fork 0
mirror of https://github.com/iiab/iiab.git synced 2025-02-13 19:52:06 +00:00
iiab/roles/nextcloud/tasks/setup.yml

94 lines
3.9 KiB
YAML
Raw Normal View History

- 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:
2020-08-24 03:21:24 +00:00
# - 127.0.0.1
# - ::1
- localhost
2020-02-16 03:49:27 +00:00
# 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
2020-02-17 02:00:32 +00:00
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
2020-02-16 03:49:27 +00:00
# template:
# src: autoconfig.php.j2
# dest: "{{ nextcloud_root_dir }}/config/autoconfig.php"
2020-02-16 03:49:27 +00:00
# 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 }}',"
2020-02-16 03:49:27 +00:00
- 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 }}"
2020-02-16 03:49:27 +00:00
when: returned.stdout == "false" # and nextcloud_enabled
#when: nextcloud_installed is undefined
#args:
# creates: "{{ nextcloud_root_dir }}/SOME_FILE" # /library/www/nextcloud/SOME_FILE
2020-02-16 03:49:27 +00:00
# https://docs.nextcloud.com/server/latest/admin_manual/installation/source_installation.html#php-fpm-configuration-notes
2020-02-16 03:49:27 +00:00
- 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 }}"