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