call_learning.moodle
Rol de Ansible: Moodle
Instala Moodle (4.1+) en servidores RedHat y Debian/Ubuntu.
Probado con Ansible 6.0
Requisitos
Debe ser una versión reciente LTS de Ubuntu o REL que tenga PHP 8.0+, Apache 2.4 y Postgres o Mysql instalados.
Variables del Rol
Las variables disponibles se enumeran a continuación, junto con los valores predeterminados (ver defaults/main.yml
):
Dependencias
No hay dependencias si el host está instalado y configurado con un entorno LAMP
(o similar).
Si necesitas instalar el entorno completo, te sugiero que verifiques:
- geerlingguy.php (Instalación de PHP 8.x o anterior)
- geerlingguy.apache (Instalación de Apache 2.x)
- geerlingguy.postgresql (Instalación de Postgres)
- geerlingguy.mysql (Instalación de Mysql)
Ejemplo de Playbook
Licencia
MIT / BSD
Información del Autor
Este rol fue creado en 2017 por Laurent David, del autor de plantillas de roles Jeff Geerling de Ansible for DevOps.
Pruebas
Requisitos Previos
Debes tener lo siguiente instalado:
- ansible
Hemos utilizado las pruebas de Jeff Geerling como base, que a su vez usan
ampliamente molecule.
Ahora estamos utilizando GitHub Actions para ejecutar las pruebas en cada commit (puedes encontrarlas en la carpeta .github/workflow):
- lint.yml hará solo la revisión de estilo de todo el proyecto y verificará cualquier error de sintaxis
- molecule.yml ejecutará cada escenario por turno y verificará si el playbook de ansible es válido
Nota: dado que la instalación de Postgres y Mysql tarda un tiempo desde la imagen original de Jeff Geerling,
tenemos un proceso de creación anticipada de esas imágenes utilizando packer cada mes. Este
proceso se realiza en la carpeta molecule-images que se puede ignorar de forma segura si solo buscas información sobre
el rol en sí.
- Una vez que se haya lanzado el contenedor Docker, puedes volver a ejecutar el playbook ejecutando:
container_id=xxxxyyy
docker exec --tty $container_id env TERM=xterm ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml
Para probar un playbook específico como la parte check_moodle.py:
container_id=xxxxyyy
docker exec $container_id env TERM=xterm env ANSIBLE_FORCE_COLOR=1 ansible-playbook -i 'localhost,' -M /etc/ansible/roles/role_under_test/library /etc/ansible/roles/role_under_test/tests/test-check-moodle.yml
Pruebas de la biblioteca
Hay un pequeño módulo que verifica si Moodle está instalado/configurado en la carpeta de la biblioteca.
Más información en el README.md de la carpeta de la biblioteca.
#TODO
- Etiquetas de tareas
- Configuración pura sin ejecutar la instalación de Moodle (solo carpetas y código fuente)
- Instalación con instalación de Moodle,
- ... algunas tareas opcionales como cambiar la contraseña, actualizar, volcar la base de datos, ...
ansible-galaxy install call_learning.moodle