Un rol de Ansible para instalar y configurar un servidor web completo con WordPress y Apache. Es compatible con distribuciones de las familias Debian (Ubuntu) y Red Hat (Rocky Linux) y está probado con Molecule.
- Instala WordPress, Apache y las dependencias necesarias.
- Configura un Virtual Host para el sitio de WordPress.
- Multi-distribución: Lógica adaptativa para Debian/Ubuntu y RHEL/Rocky.
- Idempotente: Se puede ejecutar múltiples veces de forma segura.
- Genera el archivo
wp-config.phpcon la configuración de la base de datos.Para generar el wp-config.php se deben declarar las variables de la base de datos, tal como se indica en Requerimientos.
Para probar este rol localmente, necesitas tener instalados:
El proyecto utiliza asdf y direnv para automatizar la configuración del entorno, asegurando que todos usen las mismas versiones de las herramientas.
Clonar el repositorio:
git clone https://github.com/erii-01/ansible-role-wordpress.git
cd ansible-role-wordpressAñadir los plugins de asdf (solo la primera vez):
asdf plugin add python
asdf plugin add ansibleInstalar las dependencias de Python:
pip install -r requirements.txtPermitir a direnv activar el entorno:
direnv allowEs necesario contar con un servidor de base de datos configurado con db_name, db_user, db_password y db_host accesibles para esta instancia de WordPress. Puede configurarlo en la misma máquina (por ejemplo, usando otro rol de Ansible como geerlingguy.mysql), pero también puede ser una base de datos existente en otro host.
| Variable | Default | Comments |
|---|---|---|
site_domain |
"wordpress.local" |
Dominio para el VirtualHost de Apache. |
site_port |
"8081" |
Puerto del host para el ServerAlias. |
wp_install_path |
"/var/www/html/wordpress.local" |
Ruta de instalación de WordPress. |
db_name |
"wordpress_db" |
Nombre de la base de datos de WordPress. |
db_user |
"wordpress_user" |
Usuario de la base de datos. |
db_password |
"Pass12345" |
Contraseña del usuario de la base de datos. |
db_host |
"localhost" |
Host de la base de datos. |
Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too:
- hosts: webservers
become: true
roles:
- role: erii-01.wordpressEste repositorio utiliza Molecule para las pruebas. Para ejecutar el ciclo completo de pruebas:
molecule test