nextcloud: Support remote database server
The _nextcloud_ role originally handled setting up the PostgreSQL database and assumed that it was running on the same server as Nextcloud itself. I have factored out those tasks into their own role, _nextcloud-db_, which can be applied to a separate host. I have also introduced some new variables (`nextcloud_db_host`, `nextcloud_db_name`, `nextcloud_db_user`, and `nextcloud_db_password`), which can be used to specify how to connect to the database, if it is hosted remotely. Since these variables are used by both the _nextcloud_ and _nextcloud-db_ roles, they are actually defined in a separate role, _nextcloud-base_, upon which both depend.
This commit is contained in:
4
roles/nextcloud-base/defaults/main.yml
Normal file
4
roles/nextcloud-base/defaults/main.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
nextcloud_db_name: nextcloud
|
||||
nextcloud_db_host: localhost
|
||||
nextcloud_db_port: ''
|
||||
nextcloud_db_user: nextcloud
|
||||
0
roles/nextcloud-base/tasks/main.yml
Normal file
0
roles/nextcloud-base/tasks/main.yml
Normal file
2
roles/nextcloud-db/meta/main.yml
Normal file
2
roles/nextcloud-db/meta/main.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
dependencies:
|
||||
- nextcloud-base
|
||||
19
roles/nextcloud-db/tasks/main.yml
Normal file
19
roles/nextcloud-db/tasks/main.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
- name: ensure nextcloud database user exists
|
||||
become: true
|
||||
become_user: postgres
|
||||
postgresql_user:
|
||||
name: '{{ nextcloud_db_user }}'
|
||||
password: '{{ nextcloud_db_password|d(omit) }}'
|
||||
state: present
|
||||
tags:
|
||||
- postgresql-user
|
||||
|
||||
- name: ensure nextcloud database exists
|
||||
become: true
|
||||
become_user: postgres
|
||||
postgresql_db:
|
||||
name: nextcloud
|
||||
owner: nextcloud
|
||||
state: present
|
||||
tags:
|
||||
- postgresql-db
|
||||
@@ -1,4 +1,5 @@
|
||||
dependencies:
|
||||
- nextcloud-base
|
||||
- role: redis
|
||||
tags:
|
||||
- redis
|
||||
|
||||
@@ -27,21 +27,6 @@
|
||||
tags:
|
||||
- always
|
||||
|
||||
- name: ensure nextcloud database user exists
|
||||
become: true
|
||||
become_user: postgres
|
||||
postgresql_user:
|
||||
name: nextcloud
|
||||
password: '{{ nextcloud_db_password }}'
|
||||
state: present
|
||||
- name: ensure nextcloud database exists
|
||||
become: true
|
||||
become_user: postgres
|
||||
postgresql_db:
|
||||
name: nextcloud
|
||||
owner: nextcloud
|
||||
state: present
|
||||
|
||||
- name: ensure nextcloud is configured
|
||||
template:
|
||||
src: config.php.j2
|
||||
|
||||
@@ -37,12 +37,12 @@ $CONFIG = array (
|
||||
'dbtype' => 'pgsql',
|
||||
'version' => '{{ nc_version }}',
|
||||
'overwrite.cli.url' => 'https://{{ nextcloud_server_name }}',
|
||||
'dbname' => 'nextcloud',
|
||||
'dbhost' => 'localhost',
|
||||
'dbport' => '',
|
||||
'dbname' => '{{ nextcloud_db_name }}',
|
||||
'dbhost' => '{{ nextcloud_db_host }}',
|
||||
'dbport' => '{{ nextcloud_db_port }}',
|
||||
'dbtableprefix' => 'oc_',
|
||||
'dbuser' => 'nextcloud',
|
||||
'dbpassword' => '{{ nextcloud_db_password }}',
|
||||
'dbuser' => '{{ nextcloud_db_user }}',
|
||||
'dbpassword' => '{{ nextcloud_db_password|d("") }}',
|
||||
'installed' => true,
|
||||
'ldapIgnoreNamingRules' => false,
|
||||
'ldapProviderFactory' => 'OCA\\User_LDAP\\LDAPProviderFactory',
|
||||
|
||||
Reference in New Issue
Block a user