Summary
This project leverages Ansible to deploy and configure WordPress in a modular and reproducible way, eliminating manual steps and ensuring consistency across environments.
Context
Traditional WordPress installation involves:
- 
- Setting up the server and packages one by one.
 
 
- 
- Manually configuring Apache, PHP, and the database.
 
 
- 
- Risk of human error and environment drift.
 
 
Challenge
- 
- Design clear, reusable Ansible roles.
 
 
- 
- Automate the installation of Apache, PHP, MariaDB, and WordPress.
 
 
- 
- Enable environment-specific variables and secure credential management.
 
 
Solution
- 
- Ansible Roles:
- 
- apache: installs and configures the web server.
 
 
- 
- php: adds required extensions.
 
 
- 
- mariadb: sets up the user, database, and hardening.
 
 
- 
- wordpress: downloads, configures, and sets permissions.
 
 
 - 
 
 - Ansible Roles:
 
- 
- Main Playbook (
site.yml): orchestrates role execution. 
 - Main Playbook (
 
- 
- Variables: defined in 
group_varsfor environment parameterization. 
 - Variables: defined in 
 
- 
- Security: uses Ansible Vault for sensitive credentials.
 
 
Technologies
- 
- Ansible ≥ 2.9
 
 
- 
- Modular roles
 
 
- 
- Ubuntu 22.04
 
 
- 
- Ansible Vault
 
 
Results
- 
- Full deployment in minutes.
 
 
- 
- Identical environments for development, testing, and production.
 
 
- 
- Reduced error rates and configuration time.
 
 
Evidence

