1 # commande pour lancer le playbook: ansible-playbook creation_nouveau_site.yml
2 # attention - Par défaut ce scipt se lancer vers ligatures
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"
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"
10 - name: Promp pour définir les variables du nouveau ite
12 become: true # toutes les tâches seront pas défaut éxécuter en tant que root
15 # config_nginx: true à l'avenir on pourrait demander à l'utilisateur de choisir si il veut configurer nginx
20 prompt: 'quel type de site?(ex: nuage, www, paheko ou WP)'
25 prompt: 'TLD du site à mettre à jour?(ex: org)'
30 prompt: 'Domaine du site à mettre à jour?(ex: heureux-cyclage)'
32 default: "heureux-cyclage"
35 prompt: 'Sigle du site à mettre à jour?(ex: lhc)'
40 prompt: 'Faut-il configurer un certificat ssl pour le HTTPS?(ex: oui/non)'
46 # - name: Vérifier le sigle n'est pas déjà utilisé
47 # ansible.builtin.lineinfile:
49 # search_string: "site_{{ SIGLE }}_{{ SITE }}"
53 # register: presence_sigle
54 # failed_when: presence_sigle.changed
58 - name: Inclure les configurations optionnelles d'un site www
59 ansible.builtin.include_tasks: tasks/config_options_www.yml
64 - name: Inclure la configuration d'un site web basique
65 ansible.builtin.include_tasks: tasks/config_www.yml
67 - name: Inclure la configuration nginx
68 ansible.builtin.include_tasks: tasks/config_nginx.yml
70 template_site: "{{ SITE }}"
71 when: besoin_https == 'non'
73 - name: Bloc permettant de générer les certificats SSL
74 when: besoin_https == 'oui'
77 - name: Inclure la configuration nginx http
78 ansible.builtin.include_tasks: tasks/config_nginx.yml
82 - name: Générer un certififat avec certbot # noqa : command-instead-of-module
84 ansible.builtin.command: 'certbot certonly -n --nginx -d {{ config_ss_domain | default(SITE) }}.{{ DOMAIN }}.{{ TLD }}'
89 - name: Afficher les logs certbot
90 ansible.builtin.debug:
92 when: certbot_log is defined
94 - name: Activer la conf ssl dans nginx
95 ansible.builtin.set_fact:
97 when: certbot_log is defined
99 - name: Inclure la configuration nginx avec ssl
100 ansible.builtin.include_tasks: tasks/config_nginx.yml
102 template_site: "{{ SITE }}"
104 - name: Inclure la configuration d'un pool PHP
105 ansible.builtin.include_tasks: tasks/config_pool_php.yml
106 when: config_php == 'oui' or SITE == 'paheko' or SITE == 'WP' or SITE == 'nuage'
108 - name: Inclure la configuration d'une bdd postgres
109 ansible.builtin.include_tasks: tasks/config_postgres.yml
110 when: config_bdd == 'postgres' or SITE == 'nuage'
112 - name: Inclure la configuration d'une bdd mariadb
113 ansible.builtin.include_tasks: tasks/config_mariadb.yml
114 when: config_bdd == 'mariadb' or SITE == 'WP'
116 - name: Inclure la configuration nextcloud si besoin
117 ansible.builtin.include_tasks: tasks/config_nuage.yml
118 when: SITE == 'nuage'
120 - name: Inclure la configuration paheko si besoin
121 ansible.builtin.include_tasks: tasks/config_paheko.yml
122 when: SITE == 'paheko'
124 - name: Inclure la configuration WP si besoin
125 ansible.builtin.include_tasks: tasks/config_WP.yml
128 - name: Inclure le configuration du backup
129 ansible.builtin.include_tasks: tasks/config_backup.yml
131 - name: Inclure le configuration SFTP
132 ansible.builtin.include_tasks:
133 file: tasks/config_sftp.yml
136 when: sftp_key != '' and sftp_key != 'non'