# Install WP sur Alpine, Debian ## Alpine ### Erreurs rencontrées Run playbook: ``` ansible-playbook -i inventory/hosts playbooks/install_php_mysql_alpine.yml -K ``` #### MariaDB déjà démarré ``` TASK [MariaDB setup] ********************************************************************************************************************** fatal: [192.168.1.85]: FAILED! => {"changed": true, "cmd": ["/etc/init.d/mariadb", "setup"], "delta": "0:00:00.009031", "end": "2024-02-14 16:27:03.174459", "msg": "non-zero return code", "rc": 1, "start": "2024-02-14 16:27:03.165428", "stderr": " * mariadb: cannot `setup' as it has not been stopped", "stderr_lines": [" * mariadb: cannot `setup' as it has not been stopped"], "stdout": "", "stdout_lines": []} ``` Résolu en vérifiant si MariaDB est déjà up & running. #### Module manquant pour mysql_db ``` ASK [create MySQL database] ************************************************************************************************************** fatal: [192.168.1.85]: FAILED! => {"changed": false, "msg": "A MySQL module is required: for Python 2.7 either PyMySQL, or MySQL-python, or for Python 3.X mysqlclient or PyMySQL. Consider setting ansible_python_interpreter to use the intended Python version."} ``` Pas mal de modules à installer ## Debian ``` ansible-playbook -i ../ansible-initial-debian-setup/inventory.ini playbooks/install_php_mysql_debian.yml -K --limit debian-111 ``` Changements par rapport à Alpine - **ATTENTION** Nginx doit être installé **avant** d'unzip WordPress vers `/var/www` (BUG dans mon playbook Alpine). - `pkgconfig` et `mariadb-dev` n'existent pas sous Debian. - `php8.2-json` et `php8.2-openssl` non plus - `mariadb` non plus => `mariadb-server` et `mariadb-client` - install de `mysqlclient` se fait via apt (`python3-mysqldb`) - du coup plus besoin d'installer `gcc`, `python3-dev`, `python3-pip` - **todo**: - [ ] variables dans vault (a minima password bdd et password wp) - [ ] url du site aussi en variable - [ ] installer `php8.2-gd` pour WP - [ ] **gestion des droits** car `/var/www/wordpress` est créé avec nobody:nobody **Passer un fichier de variables** à l'exécution - extrait de `ansible-playbook --help` ``` -e EXTRA_VARS, --extra-vars EXTRA_VARS set additional variables as key=value or YAML/JSON, if filename prepend with @. This argument may be specified multiple times. ``` ### Rendre plus générique Mis en commentaire le bloc vars ```yaml # vars: # db_username: wordpress # db_password: wordpress # db_name: wordpress # site_url: debian-111 ``` **Installer tout** ``` ansible-playbook -i ../ansible-initial-debian-setup/inventory.ini playbooks/install_php_mysql_debian.yml -bkK --limit debian-112 -e @vars-debian-112.yml ansible-playbook -i ../ansible-initial-debian-setup/inventory.ini playbooks/install_php_mysql_debian.yml -bkK --limit debian-113 -e @vars-debian-113.yml ``` **Désinstaller tout** ``` ansible-playbook -i ../ansible-initial-debian-setup/inventory.ini playbooks/uninstall_php_mysql_debian.yml -bkK --limit debian-112 -e @vars-debian-112.yml ```