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