logo

Extra Block Types (EBT) - Nueva experiencia con Layout Builder❗

Extra Block Types (EBT): tipos de bloques con estilo y personalizables: Presentaciones de diapositivas, Pestañas, Tarjetas, Acordeones y muchos más. Configuraciones integradas para fondo, DOM Box y plugins de JavaScript. Experimenta hoy el futuro de la construcción de diseños.

Módulos de demostración EBT Descargar módulos EBT

❗Extra Paragraph Types (EPT) - Nueva experiencia con Paragraphs

Extra Paragraph Types (EPT): conjunto de módulos basado en párrafos de forma análoga.

Módulos de demostración EPT Descargar módulos EPT

Scroll
21/06/2025, by Ivan

La actualización del sitio Drupal es un proceso complejo, laborioso y costoso. Es un problema complicado que a primera vista parece sencillo, al asegurar actualizaciones seguras y confiables que dan confianza a los propietarios del sitio y accesibilidad para los visitantes del sitio.

El servicio de actualización automática para Drupal está diseñado para simplificar este proceso y asegurar que la actualización se aplique correctamente.

Tenga en cuenta que la actualización automática es una iniciativa estratégica para el proyecto Drupal. La iniciativa aún está en proceso de desarrollo, por lo que hay varios elementos importantes a considerar:

  • El módulo de actualización automática aún no está en el núcleo. En su forma inicial está disponible como un módulo adicional en https://drupal.org/project/automatic_updates.
  • Actualmente el módulo es un candidato para lanzamiento. Se espera una versión estable muy pronto.
  • En esta primera fase, el módulo de actualizaciones automáticas incluye funciones de notificación de servicios públicos (PSA) y verificación de preparación, y puede aplicar actualizaciones en el lugar manualmente o mediante cron. Las actualizaciones que incluyan modificaciones en la base de datos causarán reversión de la actualización.
  • El módulo aún no soporta actualizaciones de Contrib o instalaciones basadas en Composer. Esto está planeado para la Fase 2.

Características principales del módulo de actualización automática

Anuncios de servicio público (PSA)

Los anuncios de lanzamientos críticos de seguridad para módulos centrales y contribuidos son poco frecuentes. Cuando se publica un PSA, los propietarios del sitio deben verificar sus sitios para asegurarse de estar al tanto de los últimos lanzamientos y que el sitio esté listo para una actualización rápida una vez que las correcciones se distribuyan a la comunidad.

Verificación de preparación para actualización

No todos los sitios pueden actualizarse en cualquier momento. La verificación de preparación es un método automático para determinar si un sitio está listo para una actualización automática después de que una nueva versión es proporcionada a la comunidad. Por ejemplo, los sitios con actualizaciones pendientes en la base de datos, sistemas de archivos montados como solo lectura o sin suficiente espacio en disco para la actualización in situ no pueden recibir actualizaciones automáticas. Si su sitio no pasa la verificación de preparación y se publica un PSA, es importante resolver los problemas de preparación para que el sitio pueda actualizarse rápidamente.

Actualizaciones en el lugar

Una vez que el servicio PSA ha notificado al propietario del sitio Drupal sobre una actualización disponible y las verificaciones de preparación han confirmado que el sitio está listo para actualizar, el servicio de actualización automática puede aplicar la actualización.

Un sitio específico (o agencia o proveedor de hosting) puede decidir ofrecer opciones adicionales para el manejo de la base de datos además de estas. Por ejemplo, realizar un volcado de la base de datos y descargarlo en S3 o enviar correos electrónicos / notificaciones para tranquilidad. Finalmente, ejecutar las actualizaciones de la base de datos.

Si desarrolla sus propias acciones personalizadas, tenga en cuenta que cualquier acción que requiera código que pueda cambiar durante la actualización debe ejecutarse a través de comandos dedicados de la interfaz de línea de comandos. De lo contrario, la ejecución llamará a una versión antigua del código. Esta es una limitación inherente de PHP. Ejemplos de cómo hacer esto se pueden ver en el plugin execute_updates, que invoca un comando de consola Symfony.

Instalación

Actualmente, el módulo de actualización automática de Drupal está disponible como un módulo adicional en Drupal.org. En una iteración futura y tras pruebas extensas por parte de la comunidad, será incorporado al núcleo de Drupal. En ese momento, solo necesitará actualizar a la versión de Drupal que incluya esta funcionalidad.

Para instalar la versión contrib del módulo Automatic Updates, siga las mismas instrucciones que usaría para muchos otros módulos en Drupal.org:

  1. Importante: descargue el módulo a través de un archivo tarball. La instalación mediante Composer no es compatible actualmente.
  2. Luego instale el módulo por el método preferido.

 

El uso de este recurso actualmente no está destinado para sitios que usan Composer. Se asume que el sitio fue instalado y se gestiona desde archivos archivados. Además, solo soporta actualizaciones para Drupal Core. Iteraciones posteriores del módulo soportarán de manera más completa instalaciones de Drupal basadas en Composer.

Uso del módulo

Uso supervisado

La función PSA muestra los avisos PSA publicados en Drupal.org directamente en la interfaz administrativa de Drupal para notificar a los usuarios sobre próximos lanzamientos.

La función de verificación de preparación se ejecuta regularmente para garantizar que no haya problemas que impidan la aplicación de actualizaciones.

En la página de configuración del módulo, el usuario puede iniciar manualmente una actualización en el lugar.

Uso desatendido

Para habilitar las actualizaciones automáticas, simplemente marque la casilla en la página de configuración del módulo para ejecutar actualizaciones vía cron. Las actualizaciones solo se aplicarán si el sitio pasa la verificación de preparación.

Extensión de las actualizaciones automáticas

Las actualizaciones de base de datos pueden ser complejas, y los propietarios de sitios pueden tener diferentes motivaciones para el manejo de las actualizaciones que las incluyen. En Drupal 8, el módulo de actualización automática utiliza una arquitectura de plugins para manejar las actualizaciones de base de datos, para que el sistema sea extensible.

La configuración predeterminada es poner el sitio en modo mantenimiento, ejecutar las actualizaciones de base de datos y luego sacar el sitio del modo mantenimiento. No hay interfaz de usuario para cambiar esto (aún). El orden y secuencia para el manejo de actualizaciones de base de datos se configura mediante config en automatic_updates.settings.yml. También puede ser sobreescrito mediante settings.php con $config['automatic_updates.settings']['database_update_handling'] = ['rollback', 'alternative_plugin_id', 'yet_another_plugin']. Esto es un arreglo de identificadores de plugins.

Los plugins incluidos con el módulo son:

  • 'execute_updates'
  • 'ignore_updates'
  • 'maintenance_mode_activate'
  • 'maintenance_mode_disactivate'
  • 'rollback'

Como propietario del sitio o proveedor de servicios, puede escribir plugins adicionales para extender esta funcionalidad, tales como un plugin personalizado de respaldo de base de datos.

Arquitectura del sistema de actualización automática

Características principales

Anuncios de servicio público (PSA)

Los anuncios de servicio público se obtienen mediante el canal PSA.json proporcionado por Drupal.org y se muestran usando drupal_set_message().

Verificación de preparación

Las verificaciones de preparación son un sistema extensible que permite realizar varios tipos de verificaciones y mostrar advertencias o errores en la interfaz administrativa de Drupal.

Actualizaciones en el lugar

Las actualizaciones en el lugar están diseñadas usando "quasi-parches" firmados y hashados creados por Drupal.org. Estos quasi-parches se verifican con la biblioteca php-libsodium, que está disponible y portado a PHP 5.3.

Después de la verificación, el quasi-parche se aplica usando la función de copia de PHP, simplemente sobrescribiendo todos los archivos modificados en la actualización.

Características de prueba

En la versión actual del módulo "Actualizaciones automáticas", el usuario puede habilitar una versión de prueba del canal Json de Drupal.org PSA para ver cómo se mostrarán las notificaciones PSA.

Para ello:

1. Habilite el módulo automatic_updates_test mediante la interfaz administrativa de módulos de Drupal o con el comando:

$ drush pm-enable automatic_updates_test

2. Configure la variable para habilitar el canal de prueba usando el comando:

$ drush vset automatic_updates_psa_endpoint http://localhost/automatic_updates/test-json

Si crea su propio canal de prueba, puede reemplazar la URL del canal de prueba con este comando.

Para volver al canal oficial PSA en Drupal.org:

1. Ejecute el comando

$ drush vset automatic_updates_psa_endpoint https://updates.drupal.org/psa.json

2. Y deshabilite el módulo automatic_updates_test usando la interfaz administrativa o con el comando:

$ drush pm-disable automatic_updates_test

 

Infraestructura Drupal.org

Las actualizaciones automáticas para Drupal están respaldadas por la infraestructura de Drupal.org y financiadas por la Drupal Association.

Anuncios públicos de servicio (PSA)

Drupal.org proporciona una fuente JSON de anuncios públicos de seguridad de Drupal para uso del módulo de actualización automática.

La URL canónica para este canal es: https://updates.drupal.org/psa.json, y el canal de prueba se puede encontrar en https://updates.drupal.org/psa-this-is-only-a-test.json, que se usará para pruebas cuando sea necesario.

Este canal incluye una lista de PSA activos con los siguientes detalles:

  • title: Título del PSA.
  • link: URL completa del PSA en Drupal.org.
  • project: nombre corto del proyecto al que se refiere el PSA.
  • type: tipo de proyecto, por ejemplo núcleo, módulo, tema, distribución, etc.
  • is_psa: bandera que indica que el mensaje es un PSA y no otro tipo de recomendación de seguridad.
  • insecure: lista de versiones vulnerables del proyecto que actualmente son inseguras. No indica qué versiones serán marcadas como inseguras. Esta lista se actualiza después de la publicación de un release de seguridad, incluyendo nuevas versiones inseguras.
  • pubDate: fecha de publicación del PSA.

 

Por ejemplo, si los lanzamientos de Drupal 7 y 8 del 8 de mayo de 2019 - PSA-2019-05-07 y varias vulnerabilidades de terceros - PSA-2019-09-04 están incluidos en psa.json, el canal se verá así:

[
   {
      "title" : "Drupal 7 and 8 release on May 8th, 2019 - PSA-2019-05-07",
      "insecure" : [
         "4.7.0-beta3",
         ...
         "8.7.0-rc1",
         "8.7.0",
         "8.7.4"
      ],
      "link" : "https://www.drupal.org/psa-2019-05-07",
      "pubDate" : "2019-09-20T22:09:16+00:00",
      "project" : "drupal",
      "type" : "core",
      "is_psa" : "1"
   },
   {
      "project" : "securitydrupalorg",
      "pubDate" : "2019-09-12T21:35:55+00:00",
      "is_psa" : "1",
      "type" : "module",
      "insecure" : [],
      "title" : "Various 3rd Party Vulnerabilities - PSA-2019-09-04",
      "link" : "https://www.drupal.org/psa-2019-09-04"
   }
]

Luego, este canal es analizado por el módulo de actualización automática para mostrarse en la interfaz administrativa de Drupal. Otros módulos o servicios también pueden usar y mostrar este canal.

Generación de paquetes

El sistema de empaquetado de Drupal.org es el que produce las descargas de proyectos .tar.gz y .zip en Drupal.org. Al mismo tiempo que funciona, también actualiza el facade de Composer y, con la incorporación de este sistema de actualización automática, genera «quasi-parches» usados para actualizar el sitio con el módulo automatic_update.

Firma y seguridad de paquetes

Para garantizar que los paquetes 'quasi-patch' sean seguros y verificables, Drupal.org utiliza una arquitectura de hash y firma basada en el proyecto BSD Signify.

Los colaboradores de Drupal crearon una implementación PHP de Signify, disponible en el espacio de nombres GitHub de Drupal: https://github.com/drupal/php-signify.

Esta biblioteca se usa para crear hashes SHA a partir de los archivos incluidos en el hash del proyecto, que luego se firman usando un par de claves pública/privada generadas a partir de un HSM en la infraestructura Drupal.org.

Proporcionar retroalimentación

Para dejar sus comentarios sobre esta primera generación del módulo de actualizaciones automáticas, cree una incidencia en la cola de lanzamiento de actualizaciones automáticas.

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.