ajout d'un garde fou pour la creation du dossier app common
[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 (attention il faut recharger nginx manuellement à la fin):
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
14 vars_prompt:
15
16 - name: SITE
17 prompt: 'quel type de site?(ex: nuage, www, paheko ou WP)'
18 private: false
19 default: "nuage"
20
21 - name: TLD
22 prompt: 'TLD du site à mettre à jour?(ex: org)'
23 private: false
24 default: "org"
25
26 - name: DOMAIN
27 prompt: 'Domaine du site à mettre à jour?(ex: heureux-cyclage)'
28 private: false
29 default: "heureux-cyclage"
30
31 - name: SIGLE
32 prompt: 'Sigle du site à mettre à jour?(ex: lhc)'
33 private: false
34 default: "lhc"
35
36 - name: besoin_https
37 prompt: 'Faut-il configurer un certificat ssl pour le HTTPS?(ex: oui/non)'
38 private: false
39 default: "non"
40
41 # pre_tasks:
42
43 # - name: Vérifier le sigle n'est pas déjà utilisé
44 # ansible.builtin.lineinfile:
45 # dest: /etc/passwd
46 # search_string: "site_{{ SIGLE }}_{{ SITE }}"
47 # state: absent
48 # check_mode: true
49 # changed_when: false
50 # register: presence_sigle
51 # failed_when: presence_sigle.changed
52
53 tasks:
54
55 - name: Inclure les configurations optionnelles d'un site www
56 ansible.builtin.include_tasks: tasks/config_options_www.yml
57 tags: https
58
59 - name: Inclure la configuration d'un site web basique
60 ansible.builtin.include_tasks: tasks/config_www.yml
61
62 - name: Inclure la configuration nginx
63 ansible.builtin.include_tasks: tasks/config_nginx.yml
64 vars:
65 template_site: "{{ SITE }}"
66 when: besoin_https == 'non'
67
68 - name: Bloc permettant de générer les certificats SSL
69 when: besoin_https == 'oui'
70 tags: https
71 block:
72 - name: Inclure la configuration nginx http
73 ansible.builtin.include_tasks: tasks/config_nginx.yml
74 vars:
75 template_site: 'http'
76
77 - name: Générer un certififat avec certbot # noqa : command-instead-of-module
78 become: true
79 ansible.builtin.command: 'certbot certonly -n --nginx -d {{ config_ss_domain | default(SITE) }}.{{ DOMAIN }}.{{ TLD }}'
80 register: certbot_log
81 ignore_errors: true
82 changed_when: false
83
84 - name: Afficher les logs certbot
85 ansible.builtin.debug:
86 var: certbot_log
87 when: certbot_log is defined
88
89 - name: Activer la conf ssl dans nginx
90 ansible.builtin.set_fact:
91 ssl_ready: true
92 when: certbot_log is defined
93
94 - name: Inclure la configuration nginx avec ssl
95 ansible.builtin.include_tasks: tasks/config_nginx.yml
96 vars:
97 template_site: "{{ SITE }}"
98
99 - name: Inclure la configuration d'un pool PHP
100 ansible.builtin.include_tasks: tasks/config_pool_php.yml
101 when: config_php == 'oui' or SITE == 'paheko' or SITE == 'WP' or SITE == 'nuage'
102
103 - name: Inclure la configuration d'une bdd postgres
104 ansible.builtin.include_tasks: tasks/config_postgres.yml
105 when: config_bdd == 'postgres' or SITE == 'nuage'
106
107 - name: Inclure la configuration d'une bdd mariadb
108 ansible.builtin.include_tasks: tasks/config_mariadb.yml
109 when: config_bdd == 'mariadb' or SITE == 'WP'
110
111 - name: Inclure la configuration nextcloud si besoin
112 ansible.builtin.include_tasks: tasks/config_nuage.yml
113 when: SITE == 'nuage'
114
115 - name: Inclure la configuration paheko si besoin
116 ansible.builtin.include_tasks: tasks/config_paheko.yml
117 when: SITE == 'paheko'
118
119 - name: Inclure la configuration WP si besoin
120 ansible.builtin.include_tasks: tasks/config_WP.yml
121 when: SITE == 'WP'
122
123 - name: Inclure le configuration du backup
124 ansible.builtin.include_tasks: tasks/config_backup.yml
125
126 - name: Inclure le configuration SFTP
127 ansible.builtin.include_tasks: tasks/config_sftp.yml
128 when: sftp_key != '' and sftp_key != 'non'