bmeme.drupal

Flujo de trabajo Mantenimiento Licencia MIT

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.

Acerca del proyecto

Creates a Drupal project via composer, install it and re-build it by configs

Instalar
ansible-galaxy install bmeme.drupal
Licencia
mit
Descargas
66.2k
Propietario
Digital Factory