# Installation LEMP + WordPress sur Debian 12 **avec rôles** Ceci est une copie presque conforme du readme de `lemp-wordpress`. Ce qui a changé : - le nom du playbook : `site.yml` est à la racine du présent dossier. - le nom du fichier de variables d'exemple (`vars/debian-113.yml`). - **la gestion des données sensibles** (nom utilisateur et mot de passe MySQL et admin WordPress) via un vault. ## IMPORTANT Il faudra fournir un fichier de variables (voir plus bas) pour personnaliser l'installation. En particulier dans ce fichier, veiller à ce que `site_url` corresponde au hostname ou à l'IP de la machine ciblée. ## Notes ### Échec (apparent) d'une des täches La tâche `[wordpress : Vérifier si WordPress est installé]` peut donner l'impression d'un échec. Mais elle sert juste à collecter l'information comme quoi WordPress est installé (ou non). L'outil utilisé pour cela (`wp`, la CLI de WordPress) renvoie un code non-zéro si WordPress n'est pas installé. ### Arguments Ici le noeud cible n'a pas été configuré avec des clés SSH, d'où : - `-b` pour become - `-k` pour mdp SSH - `-K` pour mdp become Autres arguments : - `--limit ` pour n'exécuter que sur un certain hote référencé dans l'inventaire - `-e @vars/debian-xyz-vault.yml` inclure un fichier **chiffré** de variables spécifiques à cet hôte (par exemple `vars/debian-113-vault.yml`) - `-e @vars/debian-xyz.yml` inclure un fichier **en clair** de variables spécifiques à cet hôte (exemple dans `vars/debian-113.yml`) Le **vault** doit avoir été créé avec `ansible-vault create vars/debian-xyz-vault.yml` et contenir ces variables (remplacer les valeurs) : ``` db_username: nom_utilisateur_mysql db_password: mot_de_passe_mysql wp_username: nom_utilisateur_admin_wordpress wp_password: mot_de_passe_admin_wordpress ``` ## Installer/désinstaller ### Installer tout ``` ansible-playbook -i chemin/vers/inventory.ini site.yml -bkK --limit debian-113 -e @vars/debian-113.yml -e @vars/debian-113-vault.yml --ask-vault-pass ``` ### Désinstaller manuellement (exécuter sur le noeud cible) ```sh # remove MariaDB databases sudo mysql -uroot -e "drop database wordpress;" # remove packages sudo apt remove -y curl sudo apt remove -y mariadb-server mariadb-client sudo apt remove -y php8.2 php8.2-fpm php8.2-phar php8.2-curl php8.2-mysqli php8.2-iconv php8.2-gd php8.2-imagick php8.2-intl php8.2-mbstring php8.2-zip php8.2-dom sudo apt remove -y nginx sudo apt autoremove # remove wordpress and wp-cli sudo rm -rf /var/www/wordpress sudo rm /usr/local/bin/wp ```