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