Enable PostgreSQL database support

This commit is contained in:
phil 2023-10-25 17:44:18 +02:00
parent 2a03876360
commit 86aef332ca
4 changed files with 55 additions and 18 deletions

View file

@ -34,6 +34,7 @@ nextcloud_instances:
- name: coop.systemausfall.org
user: nextcloud
database: nextcloud
database_type: PostgreSQL
hiddenservice: true
occ_config:
apps:
@ -65,7 +66,8 @@ php_cli_config:
| `name` | string | Domain-Name der Instanz |
| `alias`| string | Array mit weiteren Domain-Alias-Namen für diese Instanz |
| `user` | string | Name eines anzulegenden Systemnutzers, der den PHP-FPM-Prozess ausführt |
| `database` | string | Name der anzulegenden MariaDB-Datenbank |
| `database` | string | Name der anzulegenden Datenbank |
| `database_type` | string | `MariaDB` oder `PostgreSQL` |
| `hiddenservice` | bol | Richtet für die Instanz einen Onion Service ein |
- Starte anschließend das Playbook:
```Shell

View file

@ -4,6 +4,7 @@ apache_custom_conf_path: /etc/apache2/conf-available
nextcloud_admin_user: systemausfall.org
nextcloud_admin_pw: "{{ lookup('password', '/tmp/{{ item.name }}_admin_pwd length=42 chars=ascii_letters,digits') }}"
nextcloud_db_password: "{{ lookup('password', '/tmp/{{ item.name }}_db_pwd length=42 chars=ascii_letters,digits') }}"
nextcloud_db_type: MariaDB
nextcloud_github_api_url: https://api.github.com/repos/nextcloud/server/releases/latest
nextcloud_dl_url: "https://download.nextcloud.com/server/releases/nextcloud-{{ latest_version.stdout }}.tar.bz2"
nextcloud_root: /data/nextcloud

View file

@ -1,18 +1,40 @@
---
- name: "Database | Erstelle Datenbank | {{ item.name }}"
community.mysql.mysql_db:
name: "{{ item.database }}"
state: present
login_unix_socket: "{{ mysql_socket }}"
login_user: root
- name: "Richte MariaDB-Datenbank ein"
when: item.database_type == "MariaDB"
block:
- name: "Database | Erstelle Datenbank | {{ item.name }}"
community.mysql.mysql_db:
name: "{{ item.database }}"
state: present
login_unix_socket: "{{ mysql_socket }}"
login_user: root
- name: "Database | Richte Datenbank-Benutzer ein | {{ item.name }}"
community.mysql.mysql_user:
name: "{{ item.database }}"
host: "{{ inventory_hostname }}"
password: "{{ nextcloud_db_password }}"
priv: "{{ item.database }}.*:ALL"
state: present
login_unix_socket: "{{ mysql_socket }}"
login_user: root
update_password: on_create
- name: "Database | Richte Datenbank-Benutzer ein | {{ item.name }}"
community.mysql.mysql_user:
name: "{{ item.database }}"
host: "{{ inventory_hostname }}"
password: "{{ nextcloud_db_password }}"
priv: "{{ item.database }}.*:ALL"
state: present
login_unix_socket: "{{ mysql_socket }}"
login_user: root
update_password: on_create
- name: "Richte PostgreSQL-Datenbank ein"
when: item.database_type == "PostgreSQL"
block:
- name: "Database | Erstelle Datenbank | {{ item.name }}"
community.postgresql.postgresql_db:
name: "{{ item.database }}"
encoding: UTF8
template: template0
become: true
become_user: postgres
- name: "Database | Richte Datenbank-Benutzer ein | {{ item.name }}"
community.postgresql.postgresql_user:
name: "{{ item.database }}"
password: "{{ nextcloud_db_password }}"
db: "{{ item.database }}"
become: true
become_user: postgres

View file

@ -47,4 +47,16 @@
become: true
become_user: "{{ item.user }}"
changed_when: true
when: not nc_is_installed.stat.exists
when: not nc_is_installed.stat.exists and item.database_type == "MariaDB"
- name: "Nextcloud | Führe Installation aus | {{ item.name }}"
ansible.builtin.command:
cmd: >
php occ maintenance:install --database "pgsql"
--database-name "{{ item.database }}" --database-user "{{ item.database }}"
--database-pass "{{ nextcloud_db_password }}" --database-host "{{ database_host }}"
--admin-user "{{ nextcloud_admin_user }}" --admin-pass "{{ nextcloud_admin_pw }}"
chdir: "{{ nextcloud_install_path }}"
become: true
become_user: "{{ item.user }}"
when: not nc_is_installed.stat.exists and item.database_type == "PostgreSQL"