{"id":29258218,"url":"https://github.com/a-grasso-dev/ansible-wordpress-deploy","last_synced_at":"2026-04-11T12:04:16.866Z","repository":{"id":302617716,"uuid":"1013055971","full_name":"a-grasso-dev/ansible-wordpress-deploy","owner":"a-grasso-dev","description":"DevOps project developed during the 2024/2025 academic year. Automated deployment of a WordPress site using Ansible on Debian (Nginx, PHP-FPM, MariaDB). Separate staging/production environments, custom Ansible roles, and secret management with Ansible Vault.","archived":false,"fork":false,"pushed_at":"2025-07-03T09:46:35.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-03T10:36:46.426Z","etag":null,"topics":["ansible","automation","devops","linux","mariadb","nginx","php","wordpress"],"latest_commit_sha":null,"homepage":"","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/a-grasso-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-03T09:40:14.000Z","updated_at":"2025-07-03T09:52:19.000Z","dependencies_parsed_at":"2025-07-03T10:51:36.439Z","dependency_job_id":null,"html_url":"https://github.com/a-grasso-dev/ansible-wordpress-deploy","commit_stats":null,"previous_names":["a-grasso-dev/ansible-wordpress-deploy"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/a-grasso-dev/ansible-wordpress-deploy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a-grasso-dev%2Fansible-wordpress-deploy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a-grasso-dev%2Fansible-wordpress-deploy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a-grasso-dev%2Fansible-wordpress-deploy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a-grasso-dev%2Fansible-wordpress-deploy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/a-grasso-dev","download_url":"https://codeload.github.com/a-grasso-dev/ansible-wordpress-deploy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a-grasso-dev%2Fansible-wordpress-deploy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263457104,"owners_count":23469279,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","automation","devops","linux","mariadb","nginx","php","wordpress"],"created_at":"2025-07-04T06:00:39.600Z","updated_at":"2026-04-11T12:04:16.834Z","avatar_url":"https://github.com/a-grasso-dev.png","language":"Jinja","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ansible - Déploiement d'une application Wordpress\n\nCe projet vise à automatiser le déploiement d'un applicatif entier Wordpress sur des machines Debian.\n\n## En développement, deux machines virtuelles sous Debian ont été utilisées\n  - server-01 (production) - adresse IP : 192.168.95.129\n  - server-02 (staging) - adresse IP : 192.168.95.130\n\n\u003e ⚠️ Dans cette documentation, les adresses IP ci-dessus sont utilisées à titre d'exemple. Pensez à adapter ces adresses en fonction de vos propres serveurs.\n\n## Environnement de développement\n- WSL Ubuntu sous Windows\n- IDE : Visual Studio Code\n- Déploiement automatisé via Ansible\n- Versionning : Git et Gilab\n\n## Services déployés\n\n- Serveur web : Nginx\n- Serveur PHP : PHP-FPM\n- Base de données : MariaDB\n- Application : Wordpress\n\n## Rôles Ansible spécifiques\n\n- `nginx` : installation et configuration du serveur web\n- `php` : installation de PHP-FPM et des extensions requises\n- `mysql` : installation de MariaDB, création de base et utilisateur\n- `wordpress` : clonage du dépôt Wordpress, création de `wp-config.php`\n- `motd` : message dynamique différent selon l'environnement (staging / production)\n\n## Gestion des environnements\n\n- `group_vars/production.yml` : variables (chiffrées) pour server-01\n- `group_vars/staging.yml` : variables (chiffrées) pour server-02\n\n\u003e Chaque environnement dispose de sa propre base de données, d’un utilisateur et d’un mot de passe différents, conformément au cahier des charges.\n\n## Fichiers principaux\n\n- `main.yml` : point d'entrée principal, importe `webservers.yml` et `dbservers.yml`\n- `webservers.yml` : joue les rôles nginx, php, wordpress, motd\n- `dbservers.yml` : joue le rôle mysql\n- `inventories/hosts.yml` : définit les groupes `webservers`, `dbservers`, `production`, `staging`\n\n## Prérequis pour les accès aux serveurs\n\n1. Adapter l'adresse IP attribuée à chaque serveur dans `inventories/hosts.yml` \n\n2. Vérifier et créer, si nécessaire, une clé SSH publique :\n```bash\nls ~/.ssh/id_rsa.pub\nssh-keygen -t rsa -b 4096\n```\n\n3. Ajouter la clé sur chaque serveur :\n```bash\nssh-copy-id ansible@192.168.95.129\nssh-copy-id ansible@192.168.95.130\n```\n\n4. Démarrer l’agent SSH et charger la clé privée :\n```bash\neval \"$(ssh-agent -s)\"\nssh-add ~/.ssh/id_rsa\n```\n5. Démarrer l’environnement shell Ansible\n```bash\nmake sh\n```\n\n## Playbooks\n\n\u003e ⚠️ Au lancement des playbooks valider la connexion des deux serveurs\n\n```bash\nAre you sure you want to continue connecting (yes/no/[fingerprint])?\nyes\nok: [server-02]\nyes\nok: [server-01]\n```\n### Lancer le déploiement complet (tous les rôles, toutes les machines)\n\n```bash\nansible-playbook main.yml --ask-vault-pass\n```\n\n### Lancer uniquement un environnement\n\n```bash\n# Production\nansible-playbook main.yml --limit production --ask-vault-pass\n```\n```bash\n# Staging\nansible-playbook main.yml --limit staging --ask-vault-pass\n```\n\n### Lancer uniquement certains rôles via tags\n\n```bash\n# Php\nansible-playbook main.yml --tags php --ask-vault-pass\n```\n```bash\n# Wordpress\nansible-playbook main.yml --tags wordpress --ask-vault-pass\n```\n```bash\n# Php + wordpress\nansible-playbook main.yml --tags \"php,wordpress\" --ask-vault-pass\n```\n## Sécurité et gestion des secrets\n\nLes mots de passe de la base de données sont chiffrés avec Ansible Vault dans les fichiers group_vars/production.yml et group_vars/staging.yml\n\n## Accès au site Wordpress\n\nUne fois le déploiement terminé, accéder à l’application WordPress via un navigateur :\n\n- Production : http://192.168.95.129\n- Staging : http://192.168.95.130\n\n## Auteur\n\nNom : Grasso\n\nPrénom : Andrea\n\n## Repositorys\n\n- [Dépot du projet](https://github.com/a-grasso-dev/ansible-wordpress-deploy)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa-grasso-dev%2Fansible-wordpress-deploy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fa-grasso-dev%2Fansible-wordpress-deploy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa-grasso-dev%2Fansible-wordpress-deploy/lists"}