904aff5f71ed30a64d93b83a10e7eecf4ca8fe4a
[lhc/ansible.git] / tasks / config_paheko.yml
1 - name: Install required packages
2 ansible.builtin.apt:
3 name:
4 - php
5 - php-sqlite3
6 - php-intl
7 - php-cli
8 - php-imagick
9 - php-mbstring
10 state: present
11 register: php_install
12
13 - name: Enable PHP modules
14 ansible.builtin.command: phpenmod sqlite3 imagick intl
15 when: php_install.changed
16
17 - name: Ajout de l'utilisateur php_SIGLE_SITE
18 ansible.builtin.user:
19 name: "php_{{ SIGLE }}_{{ SITE }}"
20 home: "/etc/php/{{ php_version }}/fpm/{{ TLD }}/{{ DOMAIN }}/{{ SITE }}"
21 shell: /bin/false
22 system: true
23 append: true
24 create_home: false
25 password: '!'
26 # group: "php_{{ SIGLE }}_{{ SITE }}"
27
28 - name: Bloc paheko_version
29 when: paheko_version is undefined
30 block:
31 - name: Demande la version de nextcloud à installer
32 ansible.builtin.pause:
33 prompt: "Quelle version de nextcloud doit être utilisé"
34 echo: true
35 register: paheko_version_prompt
36
37 - name: Definir paheko_version
38 ansible.builtin.set_fact:
39 paheko_version: "{{ paheko_version_prompt.user_input }}"
40
41 - name: Vérif si la source paheko est téléchargée
42 become: true
43 ansible.builtin.stat:
44 path: "/home/sites/data/paheko/{{ paheko_version }}"
45 register: paheko_source_path
46
47 - name: Installion de la nouvelle version paheko
48 when: not paheko_source_path.stat.exists
49 block:
50
51 - name: Boucle création ou modifications des répertoires pahéko
52 ansible.builtin.file:
53 path: "{{ item.path }}"
54 state: "{{ item.state }}"
55 owner: "{{ item.owner }}"
56 group: "{{ item.group }}"
57 mode: "{{ item.mode }}"
58 loop_control:
59 label: "{{ item.path }}"
60 loop:
61 - path: "/home/sites/data/paheko/{{ paheko_version }}"
62 state: "directory"
63 owner: "www-data"
64 group: "www-data"
65 mode: "755"
66
67 - name: Telecharger la source Paheko
68 become: true
69 become_user: www-data
70 ansible.builtin.get_url:
71 url: "https://fossil.kd2.org/paheko/uv/paheko-{{ paheko_version }}.tar.gz"
72 dest: "/home/sites/data/paheko/{{ paheko_version }}.tar.gz"
73 mode: '755' # or u=rwx,g=rx,o=rx
74
75 - name: Extract downloaded nextcloud source
76 become: true
77 become_user: www-data
78 ansible.builtin.unarchive:
79 src: "/home/sites/data/paheko/{{ paheko_version }}.tar.gz"
80 dest: "/home/sites/data/paheko"
81 # mode: '755' # or u=rwx,g=rx,o=rx
82 remote_src: true
83
84 - name: Renommer paheko-version par uniquement la version
85 become: true
86 become_user: www-data
87 ansible.builtin.copy:
88 src: "/home/sites/data/paheko/paheko-{{ paheko_version }}/"
89 dest: "/home/sites/data/paheko/{{ paheko_version }}"
90 remote_src: true # because the config file is already in the nextcloud_tmp_path
91 mode: preserve
92
93 - name: Deleted downloaded nextcloud files
94 become: true
95 ansible.builtin.file:
96 path: "{{ item }}"
97 state: absent
98 loop:
99 - "/home/sites/data/paheko/{{ paheko_version }}.tar.gz"
100 - "/home/sites/data/paheko/paheko-{{ paheko_version }}"
101
102 - name: Copie la source paheko vers le home du site
103 become: true
104 # become_user: "php_{{ SIGLE }}_{{ SITE }}"
105 ansible.builtin.copy:
106 src: "/home/sites/data/paheko/{{ paheko_version }}/"
107 dest: "/home/sites/data/{{ TLD }}/{{ DOMAIN }}/{{ SITE }}"
108 remote_src: true # because the config file is already in the nextcloud_tmp_path
109
110 - name: Modification du propriétaire group et droits du dossier
111 ansible.builtin.file:
112 path: "/home/sites/data/{{ TLD }}/{{ DOMAIN }}/{{ SITE }}/"
113 state: directory
114 owner: "php_{{ SIGLE }}_{{ SITE }}"
115 group: "php_{{ SIGLE }}_{{ SITE }}"
116 mode: '644'
117 recurse: true
118
119 - name: Boucle d'ajout du user php dans plusieurs groupe
120 ansible.builtin.user:
121 name: "php_{{ SIGLE }}_{{ SITE }}"
122 groups: "{{ item }}"
123 append: true
124 loop:
125 - "site_{{ SIGLE }}_{{ SITE }}"
126
127 # - name: Change displayed icon
128 # ansible.builtin.copy:
129 # src: "{{ icon }}"
130 # dest: "/usr/share/garradin/www/admin/static/icon{{ icon | splitext | last }}"
131 # when: icon is defined
132
133 # - name: Change page favicon
134 # ansible.builtin.copy:
135 # src: "{{ favicon }}"
136 # dest: "/usr/share/garradin/www/admin/static/favicon{{ icon | splitext | last }}"
137 # when: favicon is defined
138
139 - name: Recharger PHP service
140 ansible.builtin.service:
141 name: "{{ item }}"
142 state: reloaded
143 loop:
144 - "php{{ php_version }}-fpm"
145 - "nginx"