- name: Install required packages ansible.builtin.apt: name: - php - php-sqlite3 - php-intl - php-cli - php-imagick - php-mbstring state: present register: php_install - name: Enable PHP modules ansible.builtin.command: phpenmod sqlite3 imagick intl when: php_install.changed - name: Ajout de l'utilisateur php_SIGLE_SITE ansible.builtin.user: name: "php_{{ SIGLE }}_{{ SITE }}" home: "/etc/php/{{ php_version }}/fpm/{{ TLD }}/{{ DOMAIN }}/{{ SITE }}" shell: /bin/false system: true append: true create_home: false password: '!' # group: "php_{{ SIGLE }}_{{ SITE }}" - name: Bloc paheko_version when: paheko_version is undefined block: - name: Demande la version de nextcloud à installer ansible.builtin.pause: prompt: "Quelle version de nextcloud doit être utilisé" echo: true register: paheko_version_prompt - name: Definir paheko_version ansible.builtin.set_fact: paheko_version: "{{ paheko_version_prompt.user_input }}" - name: Vérif si la source paheko est téléchargée become: true ansible.builtin.stat: path: "/home/sites/data/paheko/{{ paheko_version }}" register: paheko_source_path - name: Installion de la nouvelle version paheko when: not paheko_source_path.stat.exists block: - name: Boucle création ou modifications des répertoires pahéko 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: "/home/sites/data/paheko/{{ paheko_version }}" state: "directory" owner: "www-data" group: "www-data" mode: "755" - name: Telecharger la source Paheko become: true become_user: www-data ansible.builtin.get_url: url: "https://fossil.kd2.org/paheko/uv/paheko-{{ paheko_version }}.tar.gz" dest: "/home/sites/data/paheko/{{ paheko_version }}.tar.gz" mode: '755' # or u=rwx,g=rx,o=rx - name: Extract downloaded nextcloud source become: true become_user: www-data ansible.builtin.unarchive: src: "/home/sites/data/paheko/{{ paheko_version }}.tar.gz" dest: "/home/sites/data/paheko" # mode: '755' # or u=rwx,g=rx,o=rx remote_src: true - name: Renommer paheko-version par uniquement la version become: true become_user: www-data ansible.builtin.copy: src: "/home/sites/data/paheko/paheko-{{ paheko_version }}/" dest: "/home/sites/data/paheko/{{ paheko_version }}" remote_src: true # because the config file is already in the nextcloud_tmp_path mode: preserve - name: Deleted downloaded nextcloud files become: true ansible.builtin.file: path: "{{ item }}" state: absent loop: - "/home/sites/data/paheko/{{ paheko_version }}.tar.gz" - "/home/sites/data/paheko/paheko-{{ paheko_version }}" - name: Copie la source paheko vers le home du site become: true # become_user: "php_{{ SIGLE }}_{{ SITE }}" ansible.builtin.copy: src: "/home/sites/data/paheko/{{ paheko_version }}/" dest: "/home/sites/data/{{ TLD }}/{{ DOMAIN }}/{{ SITE }}" remote_src: true # because the config file is already in the nextcloud_tmp_path - name: Modification du propriétaire group et droits du dossier ansible.builtin.file: path: "/home/sites/data/{{ TLD }}/{{ DOMAIN }}/{{ SITE }}/" state: directory owner: "php_{{ SIGLE }}_{{ SITE }}" group: "php_{{ SIGLE }}_{{ SITE }}" mode: '644' recurse: true - name: Boucle d'ajout du user php dans plusieurs groupe ansible.builtin.user: name: "php_{{ SIGLE }}_{{ SITE }}" groups: "{{ item }}" append: true loop: - "site_{{ SIGLE }}_{{ SITE }}" # - name: Change displayed icon # ansible.builtin.copy: # src: "{{ icon }}" # dest: "/usr/share/garradin/www/admin/static/icon{{ icon | splitext | last }}" # when: icon is defined # - name: Change page favicon # ansible.builtin.copy: # src: "{{ favicon }}" # dest: "/usr/share/garradin/www/admin/static/favicon{{ icon | splitext | last }}" # when: favicon is defined - name: Recharger PHP service ansible.builtin.service: name: "{{ item }}" state: reloaded loop: - "php{{ php_version }}-fpm" - "nginx"