-- name: Create nextcloud common app dir symbolic link
- ansible.builtin.file:
- src: "{{ nextcloud_symbolic_common }}"
- dest: "{{ nextcloud_webroot }}/common"
- owner: nextcloud
- group: nextcloud
- state: link
- follow: false
-
-- name: Créer les fichiers spécifiques nextcloud
- ansible.builtin.template:
- src: "templates/{{ item.src }}"
- dest: "{{ nextcloud_webroot }}/{{ item.dest }}"
- owner: "{{ item.owner }}"
- group: "{{ item.group }}"
- mode: "{{ item.mode }}"
- loop:
- - src: "nextcloud_cron.j2"
- dest: "cron"
- owner: "{{ nextcloud_php_user }}"
- group: "{{ nextcloud_websrv_user }}"
- mode: '750'
- - src: "nextcloud_console.j2"
- dest: "console"
- owner: "{{ nextcloud_websrv_user }}"
- group: "{{ nextcloud_websrv_user }}"
- mode: '750'
- - src: "nextcloud_install_config.j2"
- dest: "config/config.php"
- owner: "{{ nextcloud_php_user }}"
- group: "{{ nextcloud_websrv_user }}"
- mode: '640'
-
-- name: Recharger plusieurs services
- ansible.builtin.service:
- name: "{{ item }}"
- state: reloaded
- loop:
- - "postgresql"
- - "php{{ php_version }}-fpm"
-
-- name: Lancement du script d'installation nextcloud # noqa : command-instead-of-module
- become_user: "{{ nextcloud_php_user }}"
- become: true
- ansible.builtin.command: >
- ./console maintenance:install
- --database='pgsql'
- --database-name="php_{{ SIGLE }}_{{ SITE }}"
- --database-user="php_{{ SIGLE }}_{{ SITE }}"
- --database-host="/var/run/postgresql/"
- --database-pass=""
- --admin-user='admin'
- --admin-pass='ckoideja'
- --data-dir="/home/sites/data/{{ TLD }}/{{ DOMAIN }}/{{ SITE }}/data/"
- args:
- chdir: "{{ nextcloud_webroot }}"
- register: install_result
- ignore_errors: true
-
-- name: Afficher les logs du script d'install
- ansible.builtin.debug:
- var: install_result
- when: install_result is defined
-
-- name: Afficher les logs du script d'install
- ansible.builtin.fail:
- msg: "Le script d'install a échoué: Voir les logs ci-dessus"
- when: install_result.failed
-
-- name: Créer les fichiers spécifiques nextcloud
- ansible.builtin.template:
- src: "templates/{{ item.src }}"
- dest: "{{ nextcloud_webroot }}/{{ item.dest }}"
- owner: "{{ item.owner }}"
- group: "{{ item.group }}"
- mode: "{{ item.mode }}"
- loop:
- - src: "nextcloud_sigle_config.j2"
- dest: "config/{{ SIGLE }}.config.php"
- owner: "{{ nextcloud_php_user }}"
- group: "{{ nextcloud_websrv_user }}"
- mode: '640'
-
-- name: Creation d'un lien symbolique vers le configuration nextcloud commun
- ansible.builtin.file:
- src: "../../../../nextcloud/common.config.php"
- path: "{{ nextcloud_webroot }}/config/common.config.php"
- owner: nextcloud
- group: nextcloud
- state: link
- follow: false
-
-- name: Pour chaque base, ajouter les droits suivants à l'utilisateur php
- become_user: postgres
- become: true
- community.postgresql.postgresql_privs:
- db: "{{ item.db }}"
- privs: "{{ item.privs }}"
- type: "{{ item.type | default(omit) }}"
- objs: "{{ item.objs }}"
- role: "{{ item.role }}"
- grant_option: "{{ item.grant_option | default(omit) }}"
- loop_control:
- label: "{{ item.name }}"
- loop:
- - db: "{{ nextcloud_db_name }}"
- privs: "USAGE,CREATE"
- type: "schema"
- objs: "public"
- role: "{{ nextcloud_php_user }}"
- name: "GRANT USAGE,CREATE ON SCHEMA public TO php_{{ SIGLE }}_nuage;"
- # - db: "{{ nextcloud_db_name }}"
- # privs: "SELECT"
- # type: "table"
- # objs: "pg_namespace"
- # role: "{{ nextcloud_php_user }}"
- # name: "GRANT SELECT ON TABLE pg_namespace TO php_{{ SIGLE }}_nuage;"
- # - db: "{{ nextcloud_db_name }}"
- # privs: "SELECT"
- # type: "table"
- # objs: "pg_collation"
- # role: "{{ nextcloud_php_user }}"
- # name: "GRANT SELECT ON TABLE pg_collation TO php_{{ SIGLE }}_nuage;"
- # - db: "{{ nextcloud_db_name }}"
- # privs: "SELECT"
- # type: "table"
- # objs: "pg_index"
- # role: "{{ nextcloud_php_user }}"
- # name: "GRANT SELECT ON TABLE pg_index TO php_{{ SIGLE }}_nuage;"
- # - db: "{{ nextcloud_db_name }}"
- # privs: "SELECT"
- # type: "table"
- # objs: "pg_attrdef"
- # role: "{{ nextcloud_php_user }}"
- # name: "GRANT SELECT ON TABLE pg_attrdef TO php_{{ SIGLE }}_nuage;"
- # - db: "{{ nextcloud_db_name }}"
- # privs: "SELECT"
- # type: "table"
- # objs: "pg_description"
- # role: "{{ nextcloud_php_user }}"
- # name: "GRANT SELECT ON TABLE pg_description TO php_{{ SIGLE }}_nuage;"
- # - db: "{{ nextcloud_db_name }}"
- # privs: "SELECT"
- # type: "table"
- # objs: "pg_settings"
- # role: "{{ nextcloud_php_user }}"
- # name: "GRANT SELECT ON TABLE pg_settings TO php_{{ SIGLE }}_nuage;"
- # - db: "{{ nextcloud_db_name }}"
- # privs: "SELECT"
- # objs: "pg_database"
- # role: "{{ nextcloud_php_user }}"
- # name: "GRANT SELECT ON pg_database TO php_{{ SIGLE }}_nuage;"
-
-- name: Creation d'un fichier cron pour /etc/cron.d
- ansible.builtin.cron:
- name: "nextcloud {{ SIGLE }}_{{ SITE }} taches d'arriere plan toutes les 5 mins"
- minute: "*/5"
- user: "php_{{ SIGLE }}_{{ SITE }}"
- job: "{{ nextcloud_webroot }}/cron"
-
-- name: Recharger plusieurs services
- ansible.builtin.service:
- name: "{{ item }}"
- state: reloaded
- loop:
- - "php{{ php_version }}-fpm"
- - "nginx"