correction de la conf certbot
[lhc/ansible.git] / creation_nouveau_site.yml
1 # commande pour lancer le playbook: ansible-playbook creation_nouveau_site.yml
2 # attention - Par défaut ce scipt se lancer vers ligatures
3
4 - name: Promp pour définir les variables du nouveau ite
5 hosts: ligatures
6 become: true # toutes les tâches seront pas défaut éxécuter en tant que root
7
8 vars:
9 # config_nginx: true à l'avenir on pourrait demander à l'utilisateur de choisir si il veut configurer nginx
10 # nouvelle_version: 27.1.7 # nextcloud
11 # ancienne_version: 27.1.6 # nextcloud
12
13 vars_prompt:
14
15 - name: SITE
16 prompt: 'quel type de site?(ex: nuage, www, wiki, paheko ou gestion)'
17 private: false
18 default: "nuage"
19
20 - name: TLD
21 prompt: 'TLD du site à mettre à jour?(ex: org)'
22 private: false
23 default: "org"
24
25 - name: DOMAIN
26 prompt: 'Domaine du site à mettre à jour?(ex: heureux-cyclage)'
27 private: false
28 default: "heureux-cyclage"
29
30 - name: SIGLE
31 prompt: 'Sigle du site à mettre à jour?(ex: lhc)'
32 private: false
33 default: "lhc"
34
35 - name: config_php
36 prompt: 'Faut-il configurer un pool PHP?(ex: oui/non)'
37 private: false
38 default: "non"
39
40 - name: besoin_https
41 prompt: 'Faut-il configurer un certificat ssl pour le HTTPS?(ex: oui/non)'
42 private: false
43 default: "non"
44
45 - name: sftp
46 prompt: 'besoin de configurer un accès SFTP pour ce compte (ex: oui/non)'
47 private: false
48 default: "non"
49
50 - name: sftp_key
51 prompt: "Entrer la clé publique à autoriser pour l'acces SFTP (si nécessaire)"
52 private: false
53 default: "non"
54
55 pre_tasks:
56
57 - name: Vérifier le sigle n'est pas déjà utilisé
58 ansible.builtin.lineinfile:
59 dest: /etc/passwd
60 search_string: "site_{{ SIGLE }}"
61 state: absent
62 check_mode: true
63 changed_when: false
64 register: presence_sigle
65 failed_when: presence_sigle.changed
66
67 tasks:
68
69 - name: Inclure la configuration d'un site web basique
70 ansible.builtin.include_tasks: tasks/config_www.yml
71
72 - name: Inclure la configuration nginx
73 ansible.builtin.include_tasks: tasks/config_nginx.yml
74 vars:
75 template_site: "{{ SITE }}"
76 when: besoin_https == 'non'
77
78 # scenario pre-install nginx sans ssl
79 # test installed=false or needupgrade:true
80 # test installed=true et needupgrade:false
81 # puis certbot à la fin
82 # puis template nginx ssl pour test manuel
83
84 - name: Bloc permettant de générer les certificats SSL
85 when: besoin_https == 'oui'
86 block:
87 - name: Inclure la configuration nginx http
88 ansible.builtin.include_tasks: tasks/config_nginx.yml
89 vars:
90 template_site: 'http'
91
92 - name: Générer un certififat avec certbot # noqa : command-instead-of-module
93 become: true
94 ansible.builtin.command: 'certbot certonly -n --nginx -d {{ SITE }}.{{ DOMAIN }}.{{ TLD }}'
95 register: certbot_log
96 ignore_errors: true
97 changed_when: false
98
99 - name: Afficher les logs certbot
100 ansible.builtin.debug:
101 var: certbot_log
102 when: certbot_log is defined
103
104 - name: Activer la conf ssl dans nginx
105 ansible.builtin.set_fact:
106 ssl_ready: true
107 when: certbot_log is defined
108
109 - name: Inclure la configuration nginx avec ssl
110 ansible.builtin.include_tasks: tasks/config_nginx.yml
111 vars:
112 template_site: "{{ SITE }}"
113
114 - name: Inclure la configuration d'un pool PHP
115 ansible.builtin.include_tasks: tasks/config_pool_php.yml
116 when: config_php == 'oui' or SITE == 'paheko' or SITE == 'gestion' or SITE == 'nuage'
117
118 - name: Inclure la configuration nextcloud si besoin
119 ansible.builtin.include_tasks: tasks/config_nuage.yml
120 when: SITE == 'nuage'
121
122 - name: Inclure la configuration paheko si besoin
123 ansible.builtin.include_tasks: tasks/config_paheko.yml
124 when: SITE == 'paheko' or SITE == 'gestion'
125
126 - name: Inclure le configuration du backup
127 ansible.builtin.include_tasks: tasks/config_backup.yml
128
129 # SFTP key