# commande pour lancer le playbook: ansible-playbook creation_nouveau_site.yml
# attention - Par défaut ce scipt se lancer vers ligatures
-# pour ne jouer que la partie permettant de générer le certificat SSL pour le HTTPS lancer la commance ci-dessous (attention il faut recharger nginx manuellement à la fin):
+# pour ne jouer que la partie permettant de générer le certificat SSL pour le HTTPS lancer la commance ci-dessous:
+# ansible-playbook creation_nouveau_site.yml --tags "https"
+
+# pour ne jouer que la partie permettant de configrer un accès SFTP lancer la commance ci-dessous:
# ansible-playbook creation_nouveau_site.yml --tags "https"
- name: Promp pour définir les variables du nouveau ite
vars:
# config_nginx: true à l'avenir on pourrait demander à l'utilisateur de choisir si il veut configurer nginx
- # nouvelle_version: 27.1.7 # nextcloud
- # ancienne_version: 27.1.6 # nextcloud
vars_prompt:
- name: Inclure les configurations optionnelles d'un site www
ansible.builtin.include_tasks: tasks/config_options_www.yml
- tags: https
+ tags:
+ - https
+ - sftp
- name: Inclure la configuration d'un site web basique
ansible.builtin.include_tasks: tasks/config_www.yml
vars:
template_site: 'http'
- - name: Générer un certififat avec certbot # noqa : command-instead-of-module
+ - name: Générer le certififat du sous-domaine avec certbot # noqa : command-instead-of-module
become: true
ansible.builtin.command: 'certbot certonly -n --nginx -d {{ config_ss_domain | default(SITE) }}.{{ DOMAIN }}.{{ TLD }}'
register: certbot_log
ignore_errors: true
changed_when: false
+ when: config_ss_domain != 'www'
+
+ - name: Générer le certififat du domaine et du sous-domaine avec certbot quand le sous domaine est www # noqa : command-instead-of-module
+ become: true
+ ansible.builtin.command: 'certbot certonly -n --nginx -d {{ DOMAIN }}.{{ TLD }} -d {{ config_ss_domain | default(SITE) }}.{{ DOMAIN }}.{{ TLD }}'
+ register: certbot_log
+ ignore_errors: true
+ changed_when: false
+ when: config_ss_domain == 'www'
- name: Afficher les logs certbot
ansible.builtin.debug:
ansible.builtin.include_tasks: tasks/config_backup.yml
- name: Inclure le configuration SFTP
- ansible.builtin.include_tasks: tasks/config_sftp.yml
+ ansible.builtin.include_tasks:
+ file: tasks/config_sftp.yml
+ apply:
+ tags: sftp
when: sftp_key != '' and sftp_key != 'non'
+ tags: sftp
nextcloud_common_files_path: "/home/sites/data/nextcloud/common"
nextcloud_webroot: "/home/sites/data/{{ TLD }}/{{ DOMAIN }}/nuage"
nextcloud_source: "{{ nextcloud_sources_files_path }}/nextcloud-{{ nouvelle_version }}"
-nextcloud_old_source: "{{ nextcloud_sources_files_path }}/nextcloud-{{ ancienne_version }}"
nextcloud_symbolic_source: "../../../nextcloud/sources/nextcloud-{{ nouvelle_version }}"
nextcloud_common: "{{ nextcloud_common_files_path }}/nextcloud-{{ nouvelle_version }}"
-nextcloud_old_common: "{{ nextcloud_common_files_path }}/nextcloud-{{ ancienne_version }}"
nextcloud_symbolic_common: "../../../nextcloud/common.config.php"
php_fpm_service: php{{ php_version}}-fpm
php_version: '8.2'
src: "/home/sites/data/wordpress/"
dest: "/home/sites/data/{{ TLD }}/{{ DOMAIN }}/{{ config_ss_domain }}/"
remote_src: true # because the copy is from remote host to remote host
- mode: '754' # or 'u=rwx,g=rx,o=r'
- owner: "php_{{ SIGLE }}_{{ config_ss_domain }}"
+ mode: '2750' # or 'u=rwx,g=rx,o=r'
+ owner: "site_{{ SIGLE }}_{{ config_ss_domain }}"
group: "site_{{ SIGLE }}_{{ config_ss_domain }}"
- name: Créer les fichiers spécifiques wp
community.mysql.mysql_user:
name: "php_{{ SIGLE }}_{{ config_ss_domain }}"
priv: "php_{{ SIGLE }}_{{ config_ss_domain }}.*:ALL"
+ plugin: unix_socket
state: present
login_unix_socket: /run/mysqld/mysqld.sock
name: nginx
state: reloaded
when: SITE != 'nuage' and SITE != 'paheko' and SITE != 'WP' and template_site == 'http'
+
+# ne jamais executer cette tâche sauf si le playbook est appelé avec le tag https - fin du playbook
+- name: Recharger le service nginx
+ ansible.builtin.service:
+ name: nginx
+ state: reloaded
+ tags:
+ - https
+ - never
\ No newline at end of file
block:
- name: Demande la version de nextcloud à installer
ansible.builtin.pause:
- prompt: "Quelle version de nextcloud doit être utilisée"
+ prompt: "Quelle version de nextcloud doit être utilisée? (default: 27.1.9)"
echo: true
register: nextcloud_version_prompt
- name: Definir nouvelle_version
ansible.builtin.set_fact:
- nouvelle_version: "{{ nextcloud_version_prompt.user_input }}"
+ nouvelle_version: "{{ ( nextcloud_version_prompt.user_input | length == 0 ) | ternary ('27.1.9', nextcloud_version_prompt.user_input) }}"
- name: Bloc ancienne version nextcloud
when: ancienne_version is undefined
block:
- name: Demande la version de nextcloud déjà installée
ansible.builtin.pause:
- prompt: "Quelle version de nextcloud déjà installée"
+ prompt: "Quelle version de nextcloud déjà installée? (default: 26.0.4.2)"
echo: true
register: ancienne_version_prompt
- name: Definir ancienne_version
ansible.builtin.set_fact:
- ancienne_version: "{{ ancienne_version_prompt.user_input }}"
+ ancienne_version: "{{ ( ancienne_version_prompt.user_input | length == 0 ) | ternary ('26.0.4.2', ancienne_version_prompt.user_input) }}"
- name: Inclure la verif de l'install nextcloud
ansible.builtin.include_tasks: tasks/verif_installation_nextcloud.yml
-- name: PostgreSQL - nextcloud_php_user role is created
- become_user: postgres
- become: true
- community.postgresql.postgresql_user:
- name: "{{ nextcloud_php_user }}"
- state: present
- role_attr_flags: CREATEDB
-
-- name: PostgreSQL - nextcloud_db_name database is created
- become_user: postgres
- become: true
- community.postgresql.postgresql_db:
- name: "{{ nextcloud_db_name }}"
- state: "{{ item }}"
- owner: "{{ nextcloud_php_user }}"
- loop:
- - absent
- - present
-
- name: Pour chaque base, ajouter les droits suivants à l'utilisateur php
become_user: postgres
become: true
grant_option: true
name: "GRANT ALL ON SCHEMA public TO php_{{ SIGLE }}_nuage WITH GRANT OPTION;"
-- name: Autoriser l'utilisateur php à se connecter à la bdd nextcloud
- community.postgresql.postgresql_pg_hba:
- dest: "/etc/postgresql/{{ postgres_version }}/main/pg_hba.conf"
- contype: local
- users: "php_{{ SIGLE }}_{{ config_ss_domain }}"
- databases: "php_{{ SIGLE }}_{{ config_ss_domain }}"
- method: peer
- keep_comments_at_rules: true
- comment: "autoriser le user php_{{ SIGLE }}_{{ config_ss_domain }} à se connecter à la bdd du meme nom"
-
- name: Boucle création des répertoires app, config et data nextcloud
ansible.builtin.file:
path: "{{ item.path }}"
group: "{{ nextcloud_websrv_user }}"
mode: '640'
-- name: Recharger plusieurs services
+- name: Recharger php
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
# role: "{{ nextcloud_php_user }}"
# name: "GRANT SELECT ON pg_database TO php_{{ SIGLE }}_nuage;"
+# on rend aléatoire la minutes de l'heure à laquelle les tâches d'arriere plan nextcloud tournent entre les différentes instance pour répartir la charge
- name: Creation d'un fichier cron pour /etc/cron.d
ansible.builtin.cron:
name: "nextcloud {{ SIGLE }}_{{ config_ss_domain }} taches d'arriere plan toutes les 5 mins"
- minute: "*/5"
+ minute: "{{ 5 | random }}-59/5"
user: "php_{{ SIGLE }}_{{ config_ss_domain }}"
job: "{{ nextcloud_webroot }}/cron"
-- name: Bloc demande sous-domaine
- tags: https
- block:
-
- - name: Demande sous-domaine
- ansible.builtin.pause:
- prompt: 'quel sous-domaine faut-il configurer?(ex: www/gestion)'
- echo: true
- register: config_ss_domain_promp
-
- - name: Definir config_ss_domain
- ansible.builtin.set_fact:
- config_ss_domain: "{{ config_ss_domain_promp.user_input | default(SITE) }}"
-
-- name: Bloc demande des autres options
- when: SITE != 'paheko' or SITE != 'nuage' # and SITE != 'WP'
- block:
-
- - name: Demande php
- ansible.builtin.pause:
- prompt: 'Faut-il configurer un pool PHP?(ex: oui/non)'
- echo: true
- register: config_php_promp
-
- - name: Definir config_php
- ansible.builtin.set_fact:
- config_php: "{{ config_php_promp.user_input | default('non') }}"
-
- - name: Demande bdd
- ansible.builtin.pause:
- prompt: 'Faut-il configurer une base de données SQL?(ex: mariadb/postgres/non)'
- echo: true
- register: config_bdd_promp
-
- - name: Definir config_bdd
- ansible.builtin.set_fact:
- config_bdd: "{{ config_bdd_promp.user_input | default('non') }}"
-
- - name: Demande sftp_key
- ansible.builtin.pause:
- prompt: 'besoin de configurer un accès SFTP pour ce compte (vide ou clé public)'
- echo: true
- register: sftp_key_promp
-
- - name: Definir sftp_key
- ansible.builtin.set_fact:
- sftp_key: "{{ sftp_key_promp.user_input | default('non') }}"
+- name: Demande sous-domaine
+ tags:
+ - https
+ - sftp
+ ansible.builtin.pause:
+ prompt: 'quel sous-domaine faut-il configurer?(ex: www/gestion)'
+ echo: true
+ register: config_ss_domain_promp
+ when: SITE != 'nuage'
+
+- name: Demande php
+ ansible.builtin.pause:
+ prompt: 'Faut-il configurer un pool PHP?(oui/non)'
+ echo: true
+ register: config_php_promp
+ when: SITE != 'paheko' and SITE != 'nuage' and SITE != 'WP'
+
+- name: Demande bdd
+ ansible.builtin.pause:
+ prompt: 'Faut-il configurer une base de données SQL?(ex: mariadb/postgres/non)'
+ echo: true
+ register: config_bdd_promp
+ when: SITE != 'paheko' and SITE != 'nuage' and SITE != 'WP'
+
+- name: Demande sftp_key
+ ansible.builtin.pause:
+ prompt: 'besoin de configurer un accès SFTP pour ce compte (vide ou clé public)'
+ echo: true
+ register: sftp_key_promp
+ when: SITE != 'paheko' and SITE != 'nuage'
+ tags: sftp
+
+- name: Definir config_ss_domain
+ tags:
+ - https
+ - sftp
+ ansible.builtin.set_fact:
+ config_ss_domain: "{{ ( SITE == 'nuage' | default ('') ) | ternary (SITE, config_ss_domain_promp.user_input) }}"
+
+- name: Definir config_php
+ ansible.builtin.set_fact:
+ config_php: "{{ ( config_php_promp.user_input | default ('') | length == 0 ) | ternary ('non', config_php_promp.user_input) }}"
+
+- name: Definir config_bdd
+ ansible.builtin.set_fact:
+ config_bdd: "{{ ( config_bdd_promp.user_input | default ('') | length == 0 ) | ternary ('non', config_bdd_promp.user_input) }}"
+
+- name: Definir sftp_key
+ tags: sftp
+ ansible.builtin.set_fact:
+ sftp_key: "{{ sftp_key_promp.user_input | default('non') }}"
\ No newline at end of file
mode: '640' # or u=rwx,g=r,o=
when: SITE == 'nuage' or SITE == 'paheko' or SITE == 'WP'
-- name: ATTENTION la config php n'a pas été créer
+- name: Message d'alerte si besoin
ansible.builtin.debug:
- msg: "Il n'y a pas de templates php pour votre site, il faudra le créer manuellement"
+ msg: "!!! ATTENTION !!! la config php n'a pas été créer car il n'y a pas de templates php pour votre site, il faudra le créer manuellement"
when: SITE != 'nuage' and SITE != 'paheko' and SITE != 'WP'
-- name: Etckeeper commit if necessary
- ansible.builtin.command: etckeeper commit "commit by ansible because installing {{ DOMAIN }}/{{ config_ss_domain }}"
- ignore_errors: true
-
-- name: Install required packages
- ansible.builtin.apt:
- name:
-# - php-ctype
- - php-curl
-# - php-dom
-# - php-fileinfo
- - php-gd
- - php-json
- - "php{{ php_version }}-xml"
- - php-mbstring
-# - php-openssl
-# - php-posix
-# - php-session
-# - php-simplexml
-# - php-xmlreader
-# - php-xmlwriter
- - php-zip
-# - php-zlib
-# - php-pdo_pgsql
- - "php{{ php_version }}-pgsql"
- - php-pgsql
- - php-intl
- - php-bz2
-# - php-sodium
- - php-gmp
-# - php-exif
- - php-redis
- - php-imagick
- - python3-psycopg2 # module ansible psql
- state: present
-
-- name: Boucle d'ajout du user php dans plusieurs groupe
- ansible.builtin.user:
- name: "php_{{ SIGLE }}_{{ config_ss_domain }}"
- groups: "{{ item }}"
- append: true
- loop:
- - nextcloud
- - postgres-data
- - redis
- - "site_{{ SIGLE }}_{{ config_ss_domain }}"
-
-- name: Bloc nouvelle version nextcloud
- when: nouvelle_version is undefined
- block:
- - name: Demande la version de nextcloud à installer
- ansible.builtin.pause:
- prompt: "Quelle version de nextcloud doit être utilisée"
- echo: true
- register: nextcloud_version_prompt
-
- - name: Definir nouvelle_version
- ansible.builtin.set_fact:
- nouvelle_version: "{{ nextcloud_version_prompt.user_input }}"
-
-- name: Bloc ancienne version nextcloud
- when: ancienne_version is undefined
- block:
- - name: Demande la version de nextcloud déjà installée
- ansible.builtin.pause:
- prompt: "Quelle version de nextcloud déjà installée"
- echo: true
- register: ancienne_version_prompt
-
- - name: Definir ancienne_version
- ansible.builtin.set_fact:
- ancienne_version: "{{ ancienne_version_prompt.user_input }}"
-
-- name: Inclure la verif de l'install nextcloud
- ansible.builtin.include_tasks: tasks/verif_installation_nextcloud.yml
-
- name: PostgreSQL - nextcloud_php_user role is created
become_user: postgres
become: true
community.postgresql.postgresql_user:
- name: "{{ nextcloud_php_user }}"
+ name: "php_{{ SIGLE }}_{{ config_ss_domain }}"
state: present
role_attr_flags: CREATEDB
become_user: postgres
become: true
community.postgresql.postgresql_db:
- name: "{{ nextcloud_db_name }}"
+ name: "php_{{ SIGLE }}_{{ config_ss_domain }}"
state: "{{ item }}"
- owner: "{{ nextcloud_php_user }}"
+ owner: "php_{{ SIGLE }}_{{ config_ss_domain }}"
loop:
- absent
- present
-- 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: "ALL"
- type: "schema"
- objs: "public"
- role: "{{ nextcloud_php_user }}"
- grant_option: true
- name: "GRANT ALL ON SCHEMA public TO php_{{ SIGLE }}_nuage WITH GRANT OPTION;"
-
- name: Autoriser l'utilisateur php à se connecter à la bdd nextcloud
community.postgresql.postgresql_pg_hba:
dest: "/etc/postgresql/{{ postgres_version }}/main/pg_hba.conf"
keep_comments_at_rules: true
comment: "autoriser le user php_{{ SIGLE }}_{{ config_ss_domain }} à se connecter à la bdd du meme nom"
-- name: Boucle création des répertoires app, config et data nextcloud
- ansible.builtin.file:
- path: "{{ item.path }}"
- state: "{{ item.state }}"
- owner: "{{ item.owner }}"
- group: "{{ item.group }}"
- mode: "{{ item.mode }}"
- loop_control:
- label: "{{ item.path }}"
- loop:
- - path: "{{ nextcloud_webroot }}/apps"
- state: directory
- owner: "{{ nextcloud_php_user }}"
- group: "{{ nextcloud_websrv_user }}"
- mode: '2750'
- - path: "{{ nextcloud_webroot }}/config"
- state: directory
- owner: "{{ nextcloud_php_user }}"
- group: "{{ nextcloud_websrv_user }}"
- mode: '2750'
- - path: "{{ nextcloud_webroot }}/data"
- state: directory
- owner: "{{ nextcloud_php_user }}"
- group: "{{ nextcloud_websrv_user }}"
- mode: '2750'
-
-- name: Create nextcloud root dir symbolic link
- ansible.builtin.file:
- src: "{{ nextcloud_symbolic_source }}"
- dest: "{{ nextcloud_webroot }}/nextcloud"
- owner: nextcloud
- group: nextcloud
- state: link
- follow: false
-
-- 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 }}_{{ config_ss_domain }}"
- --database-user="php_{{ SIGLE }}_{{ config_ss_domain }}"
- --database-host="/var/run/postgresql/"
- --database-pass=""
- --admin-user='admin'
- --admin-pass='ckoideja'
- --data-dir="/home/sites/data/{{ TLD }}/{{ DOMAIN }}/{{ config_ss_domain }}/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 }}_{{ config_ss_domain }} taches d'arriere plan toutes les 5 mins"
- minute: "*/5"
- user: "php_{{ SIGLE }}_{{ config_ss_domain }}"
- job: "{{ nextcloud_webroot }}/cron"
-
-- name: Recharger plusieurs services
+- name: Recharger postgresql
ansible.builtin.service:
name: "{{ item }}"
state: reloaded
loop:
- - "php{{ php_version }}-fpm"
- - "nginx"
+ - "postgresql"
\ No newline at end of file
ansible_become: true
become_user: nextcloud
-- name: Create new app common folder from old version one
- become_user: nextcloud
+# on utilise une version uniquement si test-nuage a préalablement été mis à jour dans cette version
+
+- name: fail si test-nuage n'a pas été mis à jour avec cette version
+ ansible.builtin.fail:
+ msg: 'il faut déjà mettre à jour test-nuage avec cette version'
+ when: not new_nextcloud_common.stat.exists and test_nuage is not defined
+
+- name: Création du dossier common de la nouvelle version en utilisant les apps de l'instance test-nuage
become: true
ansible.builtin.copy:
- src: "{{ nextcloud_common_files_path }}/nextcloud-{{ ancienne_version }}/"
+ src: "/home/sites/data/org/heureux-cyclage/test-nuage/apps/"
dest: "{{ nextcloud_common_files_path }}/nextcloud-{{ nouvelle_version }}"
remote_src: true # because the copy is from remote host to remote host
mode: '754' # or 'u=rwx,g=rx,o=r'
- when: not new_nextcloud_common.stat.exists
+ owner: nextcloud
+ group: nextcloud
+ when: not new_nextcloud_common.stat.exists and test_nuage is defined
ansible_become: true
become_user: nextcloud
+# on met à jour une instance uniquement si test-nuage a préalablement été mis à jour dans cette version
+
+ - name: fail si test-nuage n'a pas été mis à jour avec cette version
+ ansible.builtin.fail:
+ msg: 'il faut déjà mettre à jour test-nuage avec cette version'
+ when: not new_nextcloud_common.stat.exists and test_nuage is not defined
+
- name: Création du dossier common de la nouvelle version en utilisant les apps de l'instance test-nuage
become: true
ansible.builtin.copy:
mode: '754' # or 'u=rwx,g=rx,o=r'
owner: nextcloud
group: nextcloud
- when: not new_nextcloud_common.stat.exists
+ when: not new_nextcloud_common.stat.exists and test_nuage is defined
- name: Include backup tasks
ansible.builtin.include_tasks: tasks/backup_nextcloud.yml