# commande pour lancer le playbook: ansible-playbook creation_nouveau_site.yml # attention - Par défaut ce scipt se lancer vers ligatures # pour ne jouer que la partie permettant de générer le certificat SSL pour le HTTPS lancer la commance ci-dessous: # ansible-playbook creation_nouveau_site.yml --tags "https" - name: Promp pour définir les variables du nouveau ite hosts: ligatures become: true # toutes les tâches seront pas défaut éxécuter en tant que root vars: # config_nginx: true à l'avenir on pourrait demander à l'utilisateur de choisir si il veut configurer nginx # nouvelle_version: 27.1.7 # nextcloud # ancienne_version: 27.1.6 # nextcloud vars_prompt: - name: SITE prompt: 'quel type de site?(ex: nuage, www, paheko ou WP)' private: false default: "nuage" - name: TLD prompt: 'TLD du site à mettre à jour?(ex: org)' private: false default: "org" - name: DOMAIN prompt: 'Domaine du site à mettre à jour?(ex: heureux-cyclage)' private: false default: "heureux-cyclage" - name: SIGLE prompt: 'Sigle du site à mettre à jour?(ex: lhc)' private: false default: "lhc" - name: besoin_https prompt: 'Faut-il configurer un certificat ssl pour le HTTPS?(ex: oui/non)' private: false default: "non" # pre_tasks: # - name: Vérifier le sigle n'est pas déjà utilisé # ansible.builtin.lineinfile: # dest: /etc/passwd # search_string: "site_{{ SIGLE }}_{{ SITE }}" # state: absent # check_mode: true # changed_when: false # register: presence_sigle # failed_when: presence_sigle.changed tasks: - name: Inclure la configuration d'un site web basique ansible.builtin.include_tasks: tasks/config_www.yml - name: Inclure les configurations optionnelles d'un site www ansible.builtin.include_tasks: tasks/config_options_www.yml when: SITE != 'nuage' - name: Inclure la configuration nginx ansible.builtin.include_tasks: tasks/config_nginx.yml vars: template_site: "{{ SITE }}" when: besoin_https == 'non' - name: Bloc permettant de générer les certificats SSL when: besoin_https == 'oui' tags: https block: - name: Inclure la configuration nginx http ansible.builtin.include_tasks: tasks/config_nginx.yml vars: template_site: 'http' - name: Générer un certififat avec certbot # noqa : command-instead-of-module become: true ansible.builtin.command: 'certbot certonly -n --nginx -d {{ config_ss_domain | default(SITE) }}.{{ DOMAIN }}.{{ TLD }}' register: certbot_log ignore_errors: true changed_when: false - name: Afficher les logs certbot ansible.builtin.debug: var: certbot_log when: certbot_log is defined - name: Activer la conf ssl dans nginx ansible.builtin.set_fact: ssl_ready: true when: certbot_log is defined - name: Inclure la configuration nginx avec ssl ansible.builtin.include_tasks: tasks/config_nginx.yml vars: template_site: "{{ SITE }}" - name: Inclure la configuration d'un pool PHP ansible.builtin.include_tasks: tasks/config_pool_php.yml when: config_php == 'oui' or SITE == 'paheko' or SITE == 'WP' or SITE == 'nuage' - name: Inclure la configuration d'une bdd postgres ansible.builtin.include_tasks: tasks/config_postgres.yml when: config_bdd == 'postgres' or SITE == 'nuage' - name: Inclure la configuration d'une bdd mariadb ansible.builtin.include_tasks: tasks/config_mariadb.yml when: config_bdd == 'mariadb' or SITE == 'WP' - name: Inclure la configuration nextcloud si besoin ansible.builtin.include_tasks: tasks/config_nuage.yml when: SITE == 'nuage' - name: Inclure la configuration paheko si besoin ansible.builtin.include_tasks: tasks/config_paheko.yml when: SITE == 'paheko' - name: Inclure la configuration WP si besoin ansible.builtin.include_tasks: tasks/config_WP.yml when: SITE == 'WP' - name: Inclure le configuration du backup ansible.builtin.include_tasks: tasks/config_backup.yml - name: Inclure le configuration SFTP ansible.builtin.include_tasks: tasks/config_sftp.yml when: sftp_key != '' and sftp_key != 'non'