Cmi en drupal 8

Post on 24-Jan-2017

141 views 1 download

Transcript of Cmi en drupal 8

CMI en Drupal 8Exportar configuraciones entre entornos

Actualmente trabajo en:

¿Y este quien es?

Robert Menetray Caballero

¿Qué es CMI (Configuration Management Initiative)?

En D7 tenemos Features y otros módulos como Strongarm que permiten exportar las configuraciones. El problema es que es un engorro usar features para esto. (hook_update_N(), configuraciones olvidadas al reconstruir, ...)

La Iniciativa de Gestión de la Configuración es el intento de mejorar el despliegue entre entornos y de sustituir a Features en una tarea para la que no se diseñó inicialmente.

El resultado de CMI es el módulo “Configuration Manager” (esta en el core)

No es para ...

“Configuration Manager” hace que sea posible el despliegue de configuración de un entorno a otro siempre que sea el mismo sitio. El sitio se identifica con la ayuda de un identificador único universal (UUID).

Si lo que se quiere es reutilizar funcionalidades de un proyecto a otro para eso está el módulo Features

A grandes rasgos: ¿Cómo funciona?

Por defecto, las configuraciones de Drupal se almacenan en la base de datos. Sin embargo, Drupal 8 ofrece la posibilidad de exportarlas a código.

Es tan simple como:

Exportar la configuración de la base de datos a archivos.

Subir los archivos al entorno donde se han de aplicar.

Importar a la base de datos la nueva config.

¿Sirve para todo?

Exporta/Importa todo lo que no es contenido:

config de módulos y temas (los activa/desinstala automáticamente)

colocación de los bloques (sin su contenido)

menús de navegación (sin items de menú)

config de los tipos de contenido y vocabularios de taxonomías

listados de Views

roles, permisos, etc

¿Cómo usarlo? (interfaz)

Desde interfaz

Desde drush:drush config-export (drush cex)

drush config-import (drush cim)

Sobrescribir valores (settings.php)

Siendo el nombre del archivo: system.performance.yml

Se puede sobrescribir desde el settings.php con:

$config['system.performance']['css']['preprocess'] = FALSE;

$config['system.performance']['js']['preprocess'] = FALSE;

Configuraciones distintas entre entornos

Para evitar que se activen y exporten configuraciones de determinados módulos:

Con el filtro “skip-modules” del Drush

Con el módulo “Configuration Split”

skip-modules

$command_specific['config-export']['skip-modules'] = array('devel');

$command_specific['config-import']['skip-modules'] = array('devel');

Configuration Split

Módulos interesantes

Configuration development (https://www.drupal.org/project/config_devel)

Configuration Update Manager (https://www.drupal.org/project/config_update)

Configuration Split (https://www.drupal.org/project/config_split)

Configuration Read-only mode (https://www.drupal.org/project/config_readonly)

Consejos

Siempre exportar antes de ejecutar git pull. Sino se pierden configuraciones que haya hecho otra persona.

Antes de importar se han de revisar las configuraciones que se sobreescribiran. Por si alguien toca la configuración sin que te hayas dado cuenta.

Drush te facilita la vida. Usalo!!

Errores conocidos

Los bloques se rompen

Algunas veces no se importa todo a la primera

Cuidado al eliminar cosas que tengan dependencias. A veces recrean cosas y pueden eliminar contenidos.

DEMO