2025-07-16 13:43:52 +02:00
|
|
|
# Fichier: install_php_83_symfony_pgsql.yml
|
|
|
|
|
|
|
|
|
|
- name: Deploy application
|
|
|
|
|
hosts: webservers # Cible les hôtes définis dans le groupe 'webservers' de votre inventaire
|
|
|
|
|
become: true # Nécessite des privilèges root pour exécuter les tâches
|
|
|
|
|
gather_facts: true # Utile pour obtenir des informations sur le système, comme l'OS
|
|
|
|
|
|
|
|
|
|
# Il est recommandé de définir les variables sensibles comme les mots de passe
|
|
|
|
|
# dans un fichier vault chiffré (ansible-vault).
|
|
|
|
|
vars:
|
|
|
|
|
db_name: "e-cosplay-contest"
|
|
|
|
|
db_user: "e-cosplay-contest"
|
|
|
|
|
db_password: "e-cosplay-contest"
|
|
|
|
|
redis_password: "ecosplaycontest"
|
|
|
|
|
redis_port: "17800"
|
|
|
|
|
|
|
|
|
|
tasks:
|
|
|
|
|
- name: Installer le support ACL pour corriger les permissions de 'become_user'
|
|
|
|
|
# Le paquet 'acl' est nécessaire pour qu'Ansible puisse définir des permissions
|
|
|
|
|
# granulaires sur les fichiers temporaires lorsqu'il passe à un utilisateur non-root.
|
|
|
|
|
ansible.builtin.apt:
|
|
|
|
|
name: acl
|
|
|
|
|
state: present
|
|
|
|
|
update_cache: true
|
|
|
|
|
when: ansible_os_family == "Debian"
|
2025-07-16 13:50:41 +02:00
|
|
|
|
|
|
|
|
- name: Installation des dépendances pour le module Ansible PostgreSQL
|
|
|
|
|
ansible.builtin.apt:
|
|
|
|
|
name: python3-psycopg2
|
|
|
|
|
state: present
|
|
|
|
|
update_cache: true
|
|
|
|
|
when: ansible_os_family == "Debian"
|
|
|
|
|
- name: Installation de PHP 8.3 et PHP 8.3-FPM avec les dépendances
|
|
|
|
|
# Installe PHP 8.3, PHP-FPM et toutes les extensions nécessaires pour Symfony,
|
|
|
|
|
# ainsi que le support Redis, Imagemagick, FFmpeg et PostgreSQL.
|
|
|
|
|
ansible.builtin.apt:
|
|
|
|
|
name:
|
|
|
|
|
- php8.3
|
|
|
|
|
- php8.3-fpm
|
|
|
|
|
- php8.3-cli
|
|
|
|
|
- php8.3-common
|
|
|
|
|
- php8.3-mysql # Driver MySQL/MariaDB
|
|
|
|
|
- php8.3-pgsql # Support pour PostgreSQL
|
|
|
|
|
- php8.3-xml # Pour XML, SOAP, etc.
|
|
|
|
|
- php8.3-mbstring # Pour la manipulation de chaînes de caractères multi-octets
|
|
|
|
|
- php8.3-zip # Pour la manipulation des archives ZIP
|
|
|
|
|
- php8.3-intl # Pour l'internationalisation
|
|
|
|
|
- php8.3-gd # Pour la manipulation d'images (GD Library)
|
|
|
|
|
- php8.3-curl # Pour faire des requêtes HTTP
|
|
|
|
|
- php8.3-pdo # Pour les connexions à la base de données via PDO
|
|
|
|
|
- php8.3-opcache # Pour l'optimisation des performances de PHP
|
|
|
|
|
- php8.3-bcmath # Pour les fonctions mathématiques de précision arbitraire
|
|
|
|
|
- php8.3-redis # Support pour la base de données en mémoire Redis
|
|
|
|
|
- php8.3-imagick # Pour la manipulation d'images via ImageMagick
|
|
|
|
|
- ffmpeg # Outil en ligne de commande pour la manipulation audio/vidéo
|
|
|
|
|
state: present
|
|
|
|
|
when: ansible_os_family == "Debian"
|
2025-07-16 14:02:46 +02:00
|
|
|
- name: Creates directory
|
|
|
|
|
ansible.builtin.file:
|
|
|
|
|
path: "{{path}}/var"
|
|
|
|
|
owner: www-data
|
|
|
|
|
group: www-data
|
|
|
|
|
mode: 0777
|
|
|
|
|
state: directory
|
|
|
|
|
- name: Créer le fichier .env.local avec les secrets de production
|
|
|
|
|
# Crée le fichier .env.local avec les variables d'environnement pour la production.
|
|
|
|
|
ansible.builtin.copy:
|
|
|
|
|
content: |
|
|
|
|
|
APP_ENV=prod
|
|
|
|
|
VITE_LOAD=1
|
|
|
|
|
DATABASE_URL="postgresql://{{ db_user }}:{{ db_password }}@127.0.0.1:5432/{{ db_name }}?serverVersion=16&charset=utf8"
|
|
|
|
|
REDIS_DSN="redis://{{ redis_password }}@127.0.0.1:{{ redis_port }}"
|
|
|
|
|
dest: "{{ path }}/.env.local"
|
|
|
|
|
when: ansible_os_family == "Debian"
|
|
|
|
|
- name: Creates directory log
|
|
|
|
|
ansible.builtin.file:
|
|
|
|
|
path: "{{path}}/var/log"
|
|
|
|
|
owner: www-data
|
|
|
|
|
group: www-data
|
|
|
|
|
mode: 0777
|
|
|
|
|
state: directory
|
|
|
|
|
- name: Supervisor config
|
|
|
|
|
ansible.builtin.template:
|
|
|
|
|
src: supervisor.j2
|
|
|
|
|
dest: "/etc/supervisor/conf.d/mainframe.conf"
|
|
|
|
|
mode: '0644'
|
|
|
|
|
- name: Reread Supervisor configuration
|
|
|
|
|
command: supervisorctl reread
|
|
|
|
|
|
|
|
|
|
- name: Update Supervisor (add/remove updated programs)
|
|
|
|
|
command: supervisorctl update
|