bmeme.drupal
Rol de Ansible: Drupal
Crea, instala y construye un proyecto de Drupal.
Este es el primer rol de Ansible publicado por Bmeme, que se utiliza en nuestro proceso de desarrollo de Drupal. Se inspiró realmente en otros roles que normalmente usamos y que son realmente geniales:
Requisitos
Para usar correctamente este rol necesitas un stack clásico LAMP/LEMP:
- Un servidor web estándar (se recomienda Apache o Nginx)
- Base de datos MySQL/PostgreSQL
- Intérprete PHP (7.x o el más reciente)
- Composer (se recomienda
geerlingguy.composer
)
Drush es una dependencia necesaria que este rol proporcionará en tu proyecto de Drupal.
Dependencias
- Colección
community.mysql
- Colección
community.general
Instalación
Este es un rol de Ansible distribuido utilizando Ansible Galaxy. Para instalar este rol puedes usar el siguiente comando.
$ ansible-galaxy install bmeme.drupal
Actualizar
Si deseas actualizar el rol, necesitas pasar el parámetro --force al instalar. Por favor, revisa el siguiente comando:
$ ansible-galaxy install --force bmeme.drupal
Versión Pre-lanzamiento
Este rol tiene una versión pre-lanzamiento (llamada 0.5-beta1) que utiliza un flujo de trabajo diferente y un esquema de variables diferente. Esta versión está completamente desaprobada y se utiliza en Bmeme solo por compatibilidad hacia atrás, ¡no la uses!
Variables del Rol
Variables disponibles:
Nombre de la Variable | Descripción | Por defecto |
---|---|---|
drupal_project_dir |
Ruta absoluta donde se instalará el proyecto de Drupal | /var/www/html |
drupal_project_owner |
El usuario del sistema que tiene la propiedad del proyecto | www-data |
drupal_project_group |
El grupo del sistema que tiene la propiedad del proyecto | www-data |
drupal_project_composer_project |
El proyecto de composer de Drupal que quieres usar para una instalación fresca | drupal/recommended-project |
drupal_project_web_root |
Directorio donde se almacena el núcleo de Drupal. Puede depender de la distribución de Drupal. | web |
drupal_site_name |
Nombre del sitio de Drupal. Usado por drush durante la instalación de Drupal. | Tu nueva instancia de Drupal |
drupal_site_mail |
Correo del sitio de Drupal. Usado por drush durante la instalación de Drupal. | [email protected] |
drupal_site_lang |
Idioma predeterminado del sitio de Drupal. Usado por drush durante la instalación de Drupal. | en |
drupal_account_mail |
Correo de la cuenta de Drupal. Usado por drush durante la instalación de Drupal. | igual que drupal_site_mail |
drupal_account_name |
Nombre de la cuenta de Drupal. Usado por drush durante la instalación de Drupal. | admin |
drupal_account_pass |
Contraseña de la cuenta de Drupal. Usado por drush durante la instalación de Drupal. | admin |
drupal_db_schema |
Esquema de base de datos que usará Drupal. Opciones disponibles: mysql o pgsql |
mysql |
drupal_db_name |
Nombre de la base de datos. Usado por drush durante la instalación de Drupal. | drupal |
drupal_db_user |
Usuario de la base de datos. Usado por drush durante la instalación de Drupal. | drupal |
drupal_db_pass |
Contraseña del usuario de la base de datos. Usado por drush durante la instalación de Drupal. | drupal |
drupal_db_host |
Dirección del host de la base de datos. Usado por drush durante la instalación de Drupal. | 127.0.0.1 |
drupal_db_port |
Puerto del host de la base de datos. Usado por drush durante la instalación de Drupal. | 3306 |
drupal_profile |
Perfil de instalación de Drupal. Consulta este error | minimal |
drupal_composer_nodev |
Opción "nodev" de Composer. Booleano | false |
drupal_composer_prefer_dist |
Opción "prefer-dist" de Composer. Booleano | false |
drupal_composer_scaffold_nonamespace |
Usa composer sin espacio de nombres para instalar el andamio de Drupal. Booleano | false |
Flujo de trabajo
Este rol ejecuta tres tareas principales:
- crear: Crea un proyecto fresco de Drupal usando composer: puedes personalizar el proyecto de composer usando la variable
drupal_project_composer_project
. Este rol reconoce automáticamente cuándo un proyecto de Drupal ya existe y omite este conjunto de tareas. - instalar: Instala la instancia de Drupal usando drush. Al final del proceso, las configuraciones de Drupal se exportan automáticamente al directorio
{{ drupal_project_dir }}/config/sync
. Este rol reconoce automáticamente cuándo la instalación de Drupal ya existe y omite este conjunto de tareas. - construir: Construye la instancia de Drupal a través de drush instalando desde las configuraciones exportadas existentes. Reconoce automáticamente las configuraciones y ejecuta el conjunto de tareas de construcción.
Comenzando desde cero, solo realiza las tareas de crear e instalar.
Ganchos
Puedes agregar tus tareas personalizadas usando los ganchos disponibles:
drupal_before_create
: ejecutado antes del conjunto de tareas crear. Si ya hay un proyecto de Drupal presente, este gancho será omitido.drupal_after_create
: ejecutado después del conjunto de tareas crear. Si ya hay un proyecto de Drupal presente, este gancho será omitido.drupal_before_install
: ejecutado antes del conjunto de tareas instalar. Si las configuraciones de Drupal ya están disponibles, este gancho será omitido.drupal_after_install
: ejecutado después del conjunto de tareas instalar. Si las configuraciones de Drupal ya están disponibles, este gancho será omitido.drupal_before_build
: ejecutado antes del conjunto de tareas construir. Si las configuraciones de Drupal no están disponibles, este gancho será omitido.drupal_after_build
: ejecutado después del conjunto de tareas construir. Si las configuraciones de Drupal no están disponibles, este gancho será omitido.
Forma de trabajar de Bmeme
Bmeme utiliza este rol para automatizar las operaciones de creación / instalación / construcción de un proyecto de Drupal durante
su proceso de desarrollo. Usamos Docker como entorno de desarrollo, tanto localmente como en instancias de prueba remotas.
El rol se realiza dentro de nuestras imágenes de Docker php
disponibles aquí.
Las mismas imágenes también son utilizadas por la prueba de rol molecule.
Dependencias
N/A
Ejemplo de Playbook
- hosts: servidor_web
vars_files:
- vars/main.yml
roles:
- geerlingguy.apache
- geerlingguy.mysql
- geerlingguy.php-versions
- geerlingguy.php
- geerlingguy.php-mysql
- geerlingguy.composer
- bmeme.drupal
Dentro de vars/main.yml
drupal_project_dir: /ruta/a/mi/proyecto
drupal_site_name: Mi increíble instancia de Drupal
drupal_after_build: "tasks/my-after-build-tasks.yml"
Si deseas usar este rol para instalar una distribución específica de Drupal (por ejemplo: Lightning):
- hosts: servidor_web
vars_files:
- vars/main.yml
roles:
- geerlingguy.apache
- geerlingguy.mysql
- geerlingguy.php-versions
- geerlingguy.php
- geerlingguy.php-mysql
- geerlingguy.composer
- bmeme.drupal
drupal_project_composer_project: "acquia/lightning-project:8.8.1"
Licencia
MIT/BSD
Información sobre el autor
Este rol fue creado en 2020 por Bmeme.
Creates a Drupal project via composer, install it and re-build it by configs
ansible-galaxy install bmeme.drupal