SlideShare una empresa de Scribd logo
1 de 14
Drupal 8:
Deploy con capistrano
¿Qué es Capistrano?
Capistrano (http://capistranorb.com/) es una herramienta escrita en ruby para la
automatización de tareas en servidores remotos y realizar despliegues en
estructuras complejas.
Capistrano NO se instala en la(s) máquina(s) de destino, el único requisito en los
entornos es ssh. Podemos centralizar los despliegues en una máquina con
acceso ssh a todas las demás (maquina de deploy) y realizar las diferentes tareas
(backups, tags de git, despliegues) con total seguridad y de una manera
controlada.
Requisitos
En la(s) máquina(s) de destino tenemos que tener acceso vía ssh, nada más!
para todo lo demás capistrano se apaña.
En la máquina de deploy tenemos que tener instalado… Capistrano, y por lo tanto
ruby 2.0 o superior.
Hemos preparado una plantilla para los entornos de deploy que simplifica la
configuración:
https://github.com/davidgallego/drupal8_capistrano
Qué hace Capistrano
- Tareas básicas de deploy:
- Sube tu código al/los servidor(es) en
releases.
- Tiene directorios y archivos
compartidos entre releases.
- Puedes hacer rollback en cualquier
momento.
- Custom Task.
- Creación de copias de seguridad DB
- Ejecución de comandos drush en
Estructura:
├── current ->
/var/www/my_app_name/releases/20150
120114500/
├── releases
│ ├── 20150080072500
│ ├── 20150090083000
│ ├── 20150100093500
│ ├── 20150110104000
│ └── 20150120114500
├── repo
│ └── <VCS related data>
├── revisions.log
└── shared
└── <linked_files and linked_dirs>
Desarrollo
Instalamos drupal desde https://github.com/drupal-composer/drupal-project/, el
core, los themes contribuidos y los módulos contribuidos se instalan desde
composer, por lo tanto no están en el repositorio.
Los módulos se instalan y actualizan con composer:
composer require drupal/redirect ~8.1
composer update drupal/core
La configuración va en /sites/default/settings.local.php fuera del repo.
Configuración de Capistrano
Genérica (capistrano/config/deploy.rb)
- Configuramos el repo: set :repo_url, 'git@example.com:path/to/repo/reponame.git'
- Configuramos la ruta de drupal (normalmente /web): set :app_path, "path/to/drupal/dir"
Entornos (capistrano/config/deploy/{NOMBRE_ENTORNO}.rb)
- Configuramos la rama que se tiene que desplegar: set :branch, 'dev'
- Configuramos el directorio en el que se tiene que desplegar: set :deploy_to, 'path_in_the/server'
- Configuramos el/los servidores: server 'ip_or_domain.es', port: 22, user: 'deploy_user', roles:
%w{app db web}
Deploy
Ya estamos preparados para hacer deploy:
cap {entorno} deploy
Listo!
(bueno en realidad no….) la primera vez que hagamos el deploy será un FAIL, tenemos que crear el
archivo shared/web/sites/default/settings.local.php con la configuración del servidor.
cap {entorno} deploy y Ahora si!.. Listo!
Para rollback (despues de hacer mas de dos deploys)
cap {entorno} deploy:rollback (nos preguntará si queremos restaurar alguna copia de db)
Drupal 8:
Gestión de la configuración
Configuration Management Initiative
Por fin todo lo que sea configuración es exportable e importable a través de
archivos yml, pero…
¿CÓMO GESTIONAMOS ESTO?
Si sólo hay un desarrollador no hay ningún problema, haces los cambios que
haya que hacer, los exportas en desarrollo y los importas en el entorno que toque,
mola!
Si el proyecto es multi-developer XD … puede que haya algún problema
Problemas
Mike exporta su configuración y la sube al repositorio.
Bob crea un nuevo tipo contenido...
Bob recoge la configuración del repo y se la importa, (o dios!!!!, todos los cambios
de configuración que había realizado, no están….)
Bob, eres mu tonto
Problemas
Mike exporta su configuración y la sube al repositorio.
Bob actualiza su repo, exporta su configuración y la sube al repositorio.
Mike actualiza su repo e importa la configuración
O dios!!!!, todos los cambios de configuración que había realizado, no están….
Bob, eres mu tonto
Flow
Bueno entonces cómo!!!!
Una posible solución: http://nuvole.org/blog/2014/aug/20/git-workflow-managing-
drupal-8-configuration
Mike, si ha realizado cambios de configuración, antes de hacer un pull siempre
hace una exportación de su configuración, luego hace el pull, si tiene conflictos
los corrige y luego realiza un import de la configuración para incorporar los
cambios de sus compañeros.
En los entornos (dev|pre|pro) nunca se realizan cambios de configuración.
PROCESO
drush config-export
git add --all
git commit -m “Cambios en config”
git pull origin master
(Arreglamos posibles conflictos si fuera necesario)
drush config-import
git push origin master
¿¿¿CUAL ES TU SOLUCIÓN????

Más contenido relacionado

La actualidad más candente

Provisión Automática de máquinas con Ansible
Provisión Automática de máquinas con AnsibleProvisión Automática de máquinas con Ansible
Provisión Automática de máquinas con AnsibleCarlos Gimeno Yáñez
 
Crear servidor local de repositorios de paquetes DEB para Ubuntu
Crear servidor local de repositorios  de paquetes DEB para UbuntuCrear servidor local de repositorios  de paquetes DEB para Ubuntu
Crear servidor local de repositorios de paquetes DEB para UbuntuIgnacio Lozano
 
94 Php. Instalacion De Apache 2.0.58
94 Php. Instalacion De Apache 2.0.5894 Php. Instalacion De Apache 2.0.58
94 Php. Instalacion De Apache 2.0.58José M. Padilla
 
Instalación de apache en linux
Instalación de apache en linuxInstalación de apache en linux
Instalación de apache en linuxanthonycanela
 
Introduccion a Ansible
Introduccion a AnsibleIntroduccion a Ansible
Introduccion a AnsibleOsvaldo
 
Lenguajes del lado del servidor y del lado del usuario
Lenguajes del lado del servidor y del lado del usuarioLenguajes del lado del servidor y del lado del usuario
Lenguajes del lado del servidor y del lado del usuariolinhos315
 
Sesion Nº 03 Tecnologias Web I Instalación Y Configuración Del Servidor A...
Sesion Nº 03   Tecnologias Web I   Instalación Y Configuración Del Servidor A...Sesion Nº 03   Tecnologias Web I   Instalación Y Configuración Del Servidor A...
Sesion Nº 03 Tecnologias Web I Instalación Y Configuración Del Servidor A...Edgar A. Cruz Huaman
 
Aplicaciones web con php y my sql
Aplicaciones web con php y my sqlAplicaciones web con php y my sql
Aplicaciones web con php y my sqlyanetzis
 

La actualidad más candente (18)

Guía instalación koha por paquetes en ubuntu 16.04 lts actualizada
Guía instalación koha por paquetes en ubuntu 16.04 lts actualizadaGuía instalación koha por paquetes en ubuntu 16.04 lts actualizada
Guía instalación koha por paquetes en ubuntu 16.04 lts actualizada
 
A4 instalación de koha
A4   instalación de kohaA4   instalación de koha
A4 instalación de koha
 
9.laravel
9.laravel9.laravel
9.laravel
 
0 entorno php
0 entorno php0 entorno php
0 entorno php
 
Provisión Automática de máquinas con Ansible
Provisión Automática de máquinas con AnsibleProvisión Automática de máquinas con Ansible
Provisión Automática de máquinas con Ansible
 
Entorno PHP
Entorno PHPEntorno PHP
Entorno PHP
 
Mis comandos favoritos en linux parte 3
Mis comandos favoritos en linux parte 3Mis comandos favoritos en linux parte 3
Mis comandos favoritos en linux parte 3
 
Kohana
KohanaKohana
Kohana
 
Crear servidor local de repositorios de paquetes DEB para Ubuntu
Crear servidor local de repositorios  de paquetes DEB para UbuntuCrear servidor local de repositorios  de paquetes DEB para Ubuntu
Crear servidor local de repositorios de paquetes DEB para Ubuntu
 
94 Php. Instalacion De Apache 2.0.58
94 Php. Instalacion De Apache 2.0.5894 Php. Instalacion De Apache 2.0.58
94 Php. Instalacion De Apache 2.0.58
 
1. system ctl
1. system ctl1. system ctl
1. system ctl
 
Instalación de apache en linux
Instalación de apache en linuxInstalación de apache en linux
Instalación de apache en linux
 
Drupal 8, de cero a producción en minutos.
Drupal 8, de cero a producción en minutos.Drupal 8, de cero a producción en minutos.
Drupal 8, de cero a producción en minutos.
 
Introducción a Ansible
Introducción a AnsibleIntroducción a Ansible
Introducción a Ansible
 
Introduccion a Ansible
Introduccion a AnsibleIntroduccion a Ansible
Introduccion a Ansible
 
Lenguajes del lado del servidor y del lado del usuario
Lenguajes del lado del servidor y del lado del usuarioLenguajes del lado del servidor y del lado del usuario
Lenguajes del lado del servidor y del lado del usuario
 
Sesion Nº 03 Tecnologias Web I Instalación Y Configuración Del Servidor A...
Sesion Nº 03   Tecnologias Web I   Instalación Y Configuración Del Servidor A...Sesion Nº 03   Tecnologias Web I   Instalación Y Configuración Del Servidor A...
Sesion Nº 03 Tecnologias Web I Instalación Y Configuración Del Servidor A...
 
Aplicaciones web con php y my sql
Aplicaciones web con php y my sqlAplicaciones web con php y my sql
Aplicaciones web con php y my sql
 

Destacado

תעודה השתתפות בסמינר מסע הגיבור דר סטיבן גיליגן
תעודה השתתפות בסמינר מסע הגיבור דר סטיבן גיליגןתעודה השתתפות בסמינר מסע הגיבור דר סטיבן גיליגן
תעודה השתתפות בסמינר מסע הגיבור דר סטיבן גיליגןTimora Shapira
 
Karisma master class veso2016 2016 10-01 v2
Karisma master class veso2016 2016 10-01 v2Karisma master class veso2016 2016 10-01 v2
Karisma master class veso2016 2016 10-01 v2CxO Professional Oy
 
Die Geschäftsberichtssaison steht vor der Tür
Die Geschäftsberichtssaison steht vor der TürDie Geschäftsberichtssaison steht vor der Tür
Die Geschäftsberichtssaison steht vor der TürMike Münch
 
Packaging cluster
Packaging clusterPackaging cluster
Packaging clusterjurgen29
 
Täydellisen myyjän profiili - Haaga-Helia, myynnin koulutusohjelma
Täydellisen myyjän profiili - Haaga-Helia, myynnin koulutusohjelmaTäydellisen myyjän profiili - Haaga-Helia, myynnin koulutusohjelma
Täydellisen myyjän profiili - Haaga-Helia, myynnin koulutusohjelmaCxO Professional Oy
 

Destacado (8)

תעודה השתתפות בסמינר מסע הגיבור דר סטיבן גיליגן
תעודה השתתפות בסמינר מסע הגיבור דר סטיבן גיליגןתעודה השתתפות בסמינר מסע הגיבור דר סטיבן גיליגן
תעודה השתתפות בסמינר מסע הגיבור דר סטיבן גיליגן
 
Karisma master class veso2016 2016 10-01 v2
Karisma master class veso2016 2016 10-01 v2Karisma master class veso2016 2016 10-01 v2
Karisma master class veso2016 2016 10-01 v2
 
Die Geschäftsberichtssaison steht vor der Tür
Die Geschäftsberichtssaison steht vor der TürDie Geschäftsberichtssaison steht vor der Tür
Die Geschäftsberichtssaison steht vor der Tür
 
Sesntmedeknem
SesntmedeknemSesntmedeknem
Sesntmedeknem
 
Packaging cluster
Packaging clusterPackaging cluster
Packaging cluster
 
Lekts-2
Lekts-2Lekts-2
Lekts-2
 
Täydellisen myyjän profiili - Haaga-Helia, myynnin koulutusohjelma
Täydellisen myyjän profiili - Haaga-Helia, myynnin koulutusohjelmaTäydellisen myyjän profiili - Haaga-Helia, myynnin koulutusohjelma
Täydellisen myyjän profiili - Haaga-Helia, myynnin koulutusohjelma
 
Capistrano
CapistranoCapistrano
Capistrano
 

Similar a Drupal 8: Gestión de la configuración con Capistrano

2290277 Instalacion De Un Servidor De Base De Datos Postgre Sql Apache Jboss ...
2290277 Instalacion De Un Servidor De Base De Datos Postgre Sql Apache Jboss ...2290277 Instalacion De Un Servidor De Base De Datos Postgre Sql Apache Jboss ...
2290277 Instalacion De Un Servidor De Base De Datos Postgre Sql Apache Jboss ...Freddy Banguero
 
Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamente
Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamenteCrea tus instaladores para linux (fedora, ubuntu, etc) sencillamente
Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamenteKuboosoft
 
2290277 instalacion-de-un-servidor-de-base-de-datos-postgre sql-apache-jboss-...
2290277 instalacion-de-un-servidor-de-base-de-datos-postgre sql-apache-jboss-...2290277 instalacion-de-un-servidor-de-base-de-datos-postgre sql-apache-jboss-...
2290277 instalacion-de-un-servidor-de-base-de-datos-postgre sql-apache-jboss-...Andrea Guaygua
 
97132962-instalacion-de-open meetings-en-squeeze
 97132962-instalacion-de-open meetings-en-squeeze 97132962-instalacion-de-open meetings-en-squeeze
97132962-instalacion-de-open meetings-en-squeezexavazquez
 
Deployer Despliegue rápido de apps
Deployer  Despliegue rápido de appsDeployer  Despliegue rápido de apps
Deployer Despliegue rápido de appsPHP Vigo
 
Desplegando Proyectos Symfony2 con Capistrano-Capifony y Git
Desplegando Proyectos Symfony2 con Capistrano-Capifony y GitDesplegando Proyectos Symfony2 con Capistrano-Capifony y Git
Desplegando Proyectos Symfony2 con Capistrano-Capifony y Gitmoisesgallego
 
Instalación KOHA: desarrollo, requerimientos y configuración
Instalación KOHA: desarrollo, requerimientos y configuraciónInstalación KOHA: desarrollo, requerimientos y configuración
Instalación KOHA: desarrollo, requerimientos y configuraciónSocialBiblio
 
Requerimientos de instalación
Requerimientos de instalaciónRequerimientos de instalación
Requerimientos de instalaciónPrincezitha Ruiz
 
J boss es un servidor de aplicaciones j2 ee desarrollado por red hat
J boss es un servidor de aplicaciones j2 ee desarrollado por red hatJ boss es un servidor de aplicaciones j2 ee desarrollado por red hat
J boss es un servidor de aplicaciones j2 ee desarrollado por red hatGissela Tingo
 
Interchange How-To for Red Hat Linux ES4
Interchange How-To for Red Hat Linux ES4Interchange How-To for Red Hat Linux ES4
Interchange How-To for Red Hat Linux ES4David Ramirez
 
Interchange CMS - e-commerce
Interchange CMS - e-commerceInterchange CMS - e-commerce
Interchange CMS - e-commerceDavid Ramirez
 
Manual PXE - RHEL 6.2
Manual PXE - RHEL 6.2Manual PXE - RHEL 6.2
Manual PXE - RHEL 6.2cyberleon95
 
Nuestro primer Sitio Web Con Software Libre
Nuestro primer Sitio Web Con Software LibreNuestro primer Sitio Web Con Software Libre
Nuestro primer Sitio Web Con Software LibreHollman Enciso
 
William fabricio manual de sistemas sas
William fabricio manual de sistemas sasWilliam fabricio manual de sistemas sas
William fabricio manual de sistemas sasRafael Toro
 

Similar a Drupal 8: Gestión de la configuración con Capistrano (20)

2290277 Instalacion De Un Servidor De Base De Datos Postgre Sql Apache Jboss ...
2290277 Instalacion De Un Servidor De Base De Datos Postgre Sql Apache Jboss ...2290277 Instalacion De Un Servidor De Base De Datos Postgre Sql Apache Jboss ...
2290277 Instalacion De Un Servidor De Base De Datos Postgre Sql Apache Jboss ...
 
Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamente
Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamenteCrea tus instaladores para linux (fedora, ubuntu, etc) sencillamente
Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamente
 
2290277 instalacion-de-un-servidor-de-base-de-datos-postgre sql-apache-jboss-...
2290277 instalacion-de-un-servidor-de-base-de-datos-postgre sql-apache-jboss-...2290277 instalacion-de-un-servidor-de-base-de-datos-postgre sql-apache-jboss-...
2290277 instalacion-de-un-servidor-de-base-de-datos-postgre sql-apache-jboss-...
 
97132962-instalacion-de-open meetings-en-squeeze
 97132962-instalacion-de-open meetings-en-squeeze 97132962-instalacion-de-open meetings-en-squeeze
97132962-instalacion-de-open meetings-en-squeeze
 
Despues de instalar fedora 14
Despues de instalar fedora 14Despues de instalar fedora 14
Despues de instalar fedora 14
 
Deployer Despliegue rápido de apps
Deployer  Despliegue rápido de appsDeployer  Despliegue rápido de apps
Deployer Despliegue rápido de apps
 
Deployer - despliegue rápido de apps
Deployer - despliegue rápido de appsDeployer - despliegue rápido de apps
Deployer - despliegue rápido de apps
 
Desplegando Proyectos Symfony2 con Capistrano-Capifony y Git
Desplegando Proyectos Symfony2 con Capistrano-Capifony y GitDesplegando Proyectos Symfony2 con Capistrano-Capifony y Git
Desplegando Proyectos Symfony2 con Capistrano-Capifony y Git
 
Instalación KOHA: desarrollo, requerimientos y configuración
Instalación KOHA: desarrollo, requerimientos y configuraciónInstalación KOHA: desarrollo, requerimientos y configuración
Instalación KOHA: desarrollo, requerimientos y configuración
 
Integrando sonar
Integrando sonarIntegrando sonar
Integrando sonar
 
Php andmysql
Php andmysqlPhp andmysql
Php andmysql
 
Requerimientos de instalación
Requerimientos de instalaciónRequerimientos de instalación
Requerimientos de instalación
 
J boss es un servidor de aplicaciones j2 ee desarrollado por red hat
J boss es un servidor de aplicaciones j2 ee desarrollado por red hatJ boss es un servidor de aplicaciones j2 ee desarrollado por red hat
J boss es un servidor de aplicaciones j2 ee desarrollado por red hat
 
Pdf
PdfPdf
Pdf
 
Mercurial
MercurialMercurial
Mercurial
 
Interchange How-To for Red Hat Linux ES4
Interchange How-To for Red Hat Linux ES4Interchange How-To for Red Hat Linux ES4
Interchange How-To for Red Hat Linux ES4
 
Interchange CMS - e-commerce
Interchange CMS - e-commerceInterchange CMS - e-commerce
Interchange CMS - e-commerce
 
Manual PXE - RHEL 6.2
Manual PXE - RHEL 6.2Manual PXE - RHEL 6.2
Manual PXE - RHEL 6.2
 
Nuestro primer Sitio Web Con Software Libre
Nuestro primer Sitio Web Con Software LibreNuestro primer Sitio Web Con Software Libre
Nuestro primer Sitio Web Con Software Libre
 
William fabricio manual de sistemas sas
William fabricio manual de sistemas sasWilliam fabricio manual de sistemas sas
William fabricio manual de sistemas sas
 

Más de Biko

Guia Rapida Para Entender A La Generacion Z
Guia Rapida Para Entender A La Generacion ZGuia Rapida Para Entender A La Generacion Z
Guia Rapida Para Entender A La Generacion ZBiko
 
De maquetador a componentizador React, ¿qué ha cambiado?
De maquetador a componentizador React, ¿qué ha cambiado?De maquetador a componentizador React, ¿qué ha cambiado?
De maquetador a componentizador React, ¿qué ha cambiado?Biko
 
Narrativas Metafóricas
Narrativas MetafóricasNarrativas Metafóricas
Narrativas MetafóricasBiko
 
¿Son los micropagos el nuevo mal?
¿Son los micropagos el nuevo mal?¿Son los micropagos el nuevo mal?
¿Son los micropagos el nuevo mal?Biko
 
Tendencias para la venta experiencial 2017
Tendencias para la venta experiencial 2017Tendencias para la venta experiencial 2017
Tendencias para la venta experiencial 2017Biko
 
Triplica la conversión de tu landing page
Triplica la conversión de tu landing pageTriplica la conversión de tu landing page
Triplica la conversión de tu landing pageBiko
 
Progressive web apps
Progressive web apps Progressive web apps
Progressive web apps Biko
 
¡Hola flexbox! Adiós float...
¡Hola flexbox! Adiós float...¡Hola flexbox! Adiós float...
¡Hola flexbox! Adiós float...Biko
 
Working effectively with legacy code
Working effectively with legacy codeWorking effectively with legacy code
Working effectively with legacy codeBiko
 
Atom.io el editor definitivo VS PhpStorm el editor definitivo
Atom.io el editor definitivo VS PhpStorm el editor definitivoAtom.io el editor definitivo VS PhpStorm el editor definitivo
Atom.io el editor definitivo VS PhpStorm el editor definitivoBiko
 
Contribuir a drupal
Contribuir a drupalContribuir a drupal
Contribuir a drupalBiko
 
Apis killed the website star.pptx
Apis killed the website star.pptxApis killed the website star.pptx
Apis killed the website star.pptxBiko
 
Introducción a Tag Manager
Introducción a Tag ManagerIntroducción a Tag Manager
Introducción a Tag ManagerBiko
 
Fields en drupal 8
Fields en drupal 8Fields en drupal 8
Fields en drupal 8Biko
 
Amp - contenido instantáneo en móvil
Amp - contenido instantáneo en móvilAmp - contenido instantáneo en móvil
Amp - contenido instantáneo en móvilBiko
 
Sesión de narrativa digital y proceso de descubrimiento en proyectos
Sesión de narrativa digital y proceso de descubrimiento en proyectosSesión de narrativa digital y proceso de descubrimiento en proyectos
Sesión de narrativa digital y proceso de descubrimiento en proyectosBiko
 
Tendencias web en el sector agroalimentario
Tendencias web en el sector agroalimentarioTendencias web en el sector agroalimentario
Tendencias web en el sector agroalimentarioBiko
 
Realidad aumentada y Movilidad
Realidad aumentada y MovilidadRealidad aumentada y Movilidad
Realidad aumentada y MovilidadBiko
 
Movilidad - Tendencias que cambiarán nuestras vidas
Movilidad - Tendencias que cambiarán nuestras vidasMovilidad - Tendencias que cambiarán nuestras vidas
Movilidad - Tendencias que cambiarán nuestras vidasBiko
 
Webinar: Aterrizaje de proyectos digitales
Webinar: Aterrizaje de proyectos digitalesWebinar: Aterrizaje de proyectos digitales
Webinar: Aterrizaje de proyectos digitalesBiko
 

Más de Biko (20)

Guia Rapida Para Entender A La Generacion Z
Guia Rapida Para Entender A La Generacion ZGuia Rapida Para Entender A La Generacion Z
Guia Rapida Para Entender A La Generacion Z
 
De maquetador a componentizador React, ¿qué ha cambiado?
De maquetador a componentizador React, ¿qué ha cambiado?De maquetador a componentizador React, ¿qué ha cambiado?
De maquetador a componentizador React, ¿qué ha cambiado?
 
Narrativas Metafóricas
Narrativas MetafóricasNarrativas Metafóricas
Narrativas Metafóricas
 
¿Son los micropagos el nuevo mal?
¿Son los micropagos el nuevo mal?¿Son los micropagos el nuevo mal?
¿Son los micropagos el nuevo mal?
 
Tendencias para la venta experiencial 2017
Tendencias para la venta experiencial 2017Tendencias para la venta experiencial 2017
Tendencias para la venta experiencial 2017
 
Triplica la conversión de tu landing page
Triplica la conversión de tu landing pageTriplica la conversión de tu landing page
Triplica la conversión de tu landing page
 
Progressive web apps
Progressive web apps Progressive web apps
Progressive web apps
 
¡Hola flexbox! Adiós float...
¡Hola flexbox! Adiós float...¡Hola flexbox! Adiós float...
¡Hola flexbox! Adiós float...
 
Working effectively with legacy code
Working effectively with legacy codeWorking effectively with legacy code
Working effectively with legacy code
 
Atom.io el editor definitivo VS PhpStorm el editor definitivo
Atom.io el editor definitivo VS PhpStorm el editor definitivoAtom.io el editor definitivo VS PhpStorm el editor definitivo
Atom.io el editor definitivo VS PhpStorm el editor definitivo
 
Contribuir a drupal
Contribuir a drupalContribuir a drupal
Contribuir a drupal
 
Apis killed the website star.pptx
Apis killed the website star.pptxApis killed the website star.pptx
Apis killed the website star.pptx
 
Introducción a Tag Manager
Introducción a Tag ManagerIntroducción a Tag Manager
Introducción a Tag Manager
 
Fields en drupal 8
Fields en drupal 8Fields en drupal 8
Fields en drupal 8
 
Amp - contenido instantáneo en móvil
Amp - contenido instantáneo en móvilAmp - contenido instantáneo en móvil
Amp - contenido instantáneo en móvil
 
Sesión de narrativa digital y proceso de descubrimiento en proyectos
Sesión de narrativa digital y proceso de descubrimiento en proyectosSesión de narrativa digital y proceso de descubrimiento en proyectos
Sesión de narrativa digital y proceso de descubrimiento en proyectos
 
Tendencias web en el sector agroalimentario
Tendencias web en el sector agroalimentarioTendencias web en el sector agroalimentario
Tendencias web en el sector agroalimentario
 
Realidad aumentada y Movilidad
Realidad aumentada y MovilidadRealidad aumentada y Movilidad
Realidad aumentada y Movilidad
 
Movilidad - Tendencias que cambiarán nuestras vidas
Movilidad - Tendencias que cambiarán nuestras vidasMovilidad - Tendencias que cambiarán nuestras vidas
Movilidad - Tendencias que cambiarán nuestras vidas
 
Webinar: Aterrizaje de proyectos digitales
Webinar: Aterrizaje de proyectos digitalesWebinar: Aterrizaje de proyectos digitales
Webinar: Aterrizaje de proyectos digitales
 

Último

GRUPO 5 Software en el campo de la salud.pptx
GRUPO 5 Software en el campo de la salud.pptxGRUPO 5 Software en el campo de la salud.pptx
GRUPO 5 Software en el campo de la salud.pptxNicolas Villarroel
 
Producto académico 03 - Habilidades Comunicativas.pptx
Producto académico 03 - Habilidades Comunicativas.pptxProducto académico 03 - Habilidades Comunicativas.pptx
Producto académico 03 - Habilidades Comunicativas.pptx46828205
 
Practica guiada Menu_ tecnología (Tic's)
Practica guiada Menu_ tecnología (Tic's)Practica guiada Menu_ tecnología (Tic's)
Practica guiada Menu_ tecnología (Tic's)BrianaFrancisco
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfOscarBlas6
 
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxrodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxssuser61dda7
 
ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.
ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.
ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.Aldo Fernandez
 
libro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdflibro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdfFAUSTODANILOCRUZCAST
 
CamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptxCamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptx241518192
 
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULDGRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULDLeslie Villar
 
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsxactividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx241532171
 
que es Planimetría definición importancia en topografia.pptx
que es Planimetría definición importancia en topografia.pptxque es Planimetría definición importancia en topografia.pptx
que es Planimetría definición importancia en topografia.pptxmrzreyes12
 
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIA
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIAFisica General.pdf ESCUELA D QUIMICA E INGENIERIA
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIAcoloncopias5
 
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdfFLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdfYuriFuentesMartinez2
 
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdfFernandaHernandez312615
 
Tema 1 - Fundamentos de gestión contable.pptx
Tema 1 - Fundamentos de gestión contable.pptxTema 1 - Fundamentos de gestión contable.pptx
Tema 1 - Fundamentos de gestión contable.pptxchinojosa17
 
El uso de las tic en la vida continúa , ambiente positivo y negativo.
El uso de las tic  en la vida continúa , ambiente positivo y negativo.El uso de las tic  en la vida continúa , ambiente positivo y negativo.
El uso de las tic en la vida continúa , ambiente positivo y negativo.ayalayenifer617
 

Último (16)

GRUPO 5 Software en el campo de la salud.pptx
GRUPO 5 Software en el campo de la salud.pptxGRUPO 5 Software en el campo de la salud.pptx
GRUPO 5 Software en el campo de la salud.pptx
 
Producto académico 03 - Habilidades Comunicativas.pptx
Producto académico 03 - Habilidades Comunicativas.pptxProducto académico 03 - Habilidades Comunicativas.pptx
Producto académico 03 - Habilidades Comunicativas.pptx
 
Practica guiada Menu_ tecnología (Tic's)
Practica guiada Menu_ tecnología (Tic's)Practica guiada Menu_ tecnología (Tic's)
Practica guiada Menu_ tecnología (Tic's)
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdf
 
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxrodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
 
ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.
ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.
ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.
 
libro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdflibro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdf
 
CamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptxCamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptx
 
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULDGRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
 
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsxactividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
 
que es Planimetría definición importancia en topografia.pptx
que es Planimetría definición importancia en topografia.pptxque es Planimetría definición importancia en topografia.pptx
que es Planimetría definición importancia en topografia.pptx
 
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIA
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIAFisica General.pdf ESCUELA D QUIMICA E INGENIERIA
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIA
 
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdfFLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
 
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
 
Tema 1 - Fundamentos de gestión contable.pptx
Tema 1 - Fundamentos de gestión contable.pptxTema 1 - Fundamentos de gestión contable.pptx
Tema 1 - Fundamentos de gestión contable.pptx
 
El uso de las tic en la vida continúa , ambiente positivo y negativo.
El uso de las tic  en la vida continúa , ambiente positivo y negativo.El uso de las tic  en la vida continúa , ambiente positivo y negativo.
El uso de las tic en la vida continúa , ambiente positivo y negativo.
 

Drupal 8: Gestión de la configuración con Capistrano

  • 1. Drupal 8: Deploy con capistrano
  • 2. ¿Qué es Capistrano? Capistrano (http://capistranorb.com/) es una herramienta escrita en ruby para la automatización de tareas en servidores remotos y realizar despliegues en estructuras complejas. Capistrano NO se instala en la(s) máquina(s) de destino, el único requisito en los entornos es ssh. Podemos centralizar los despliegues en una máquina con acceso ssh a todas las demás (maquina de deploy) y realizar las diferentes tareas (backups, tags de git, despliegues) con total seguridad y de una manera controlada.
  • 3. Requisitos En la(s) máquina(s) de destino tenemos que tener acceso vía ssh, nada más! para todo lo demás capistrano se apaña. En la máquina de deploy tenemos que tener instalado… Capistrano, y por lo tanto ruby 2.0 o superior. Hemos preparado una plantilla para los entornos de deploy que simplifica la configuración: https://github.com/davidgallego/drupal8_capistrano
  • 4. Qué hace Capistrano - Tareas básicas de deploy: - Sube tu código al/los servidor(es) en releases. - Tiene directorios y archivos compartidos entre releases. - Puedes hacer rollback en cualquier momento. - Custom Task. - Creación de copias de seguridad DB - Ejecución de comandos drush en Estructura: ├── current -> /var/www/my_app_name/releases/20150 120114500/ ├── releases │ ├── 20150080072500 │ ├── 20150090083000 │ ├── 20150100093500 │ ├── 20150110104000 │ └── 20150120114500 ├── repo │ └── <VCS related data> ├── revisions.log └── shared └── <linked_files and linked_dirs>
  • 5. Desarrollo Instalamos drupal desde https://github.com/drupal-composer/drupal-project/, el core, los themes contribuidos y los módulos contribuidos se instalan desde composer, por lo tanto no están en el repositorio. Los módulos se instalan y actualizan con composer: composer require drupal/redirect ~8.1 composer update drupal/core La configuración va en /sites/default/settings.local.php fuera del repo.
  • 6. Configuración de Capistrano Genérica (capistrano/config/deploy.rb) - Configuramos el repo: set :repo_url, 'git@example.com:path/to/repo/reponame.git' - Configuramos la ruta de drupal (normalmente /web): set :app_path, "path/to/drupal/dir" Entornos (capistrano/config/deploy/{NOMBRE_ENTORNO}.rb) - Configuramos la rama que se tiene que desplegar: set :branch, 'dev' - Configuramos el directorio en el que se tiene que desplegar: set :deploy_to, 'path_in_the/server' - Configuramos el/los servidores: server 'ip_or_domain.es', port: 22, user: 'deploy_user', roles: %w{app db web}
  • 7. Deploy Ya estamos preparados para hacer deploy: cap {entorno} deploy Listo! (bueno en realidad no….) la primera vez que hagamos el deploy será un FAIL, tenemos que crear el archivo shared/web/sites/default/settings.local.php con la configuración del servidor. cap {entorno} deploy y Ahora si!.. Listo! Para rollback (despues de hacer mas de dos deploys) cap {entorno} deploy:rollback (nos preguntará si queremos restaurar alguna copia de db)
  • 8. Drupal 8: Gestión de la configuración
  • 9. Configuration Management Initiative Por fin todo lo que sea configuración es exportable e importable a través de archivos yml, pero… ¿CÓMO GESTIONAMOS ESTO? Si sólo hay un desarrollador no hay ningún problema, haces los cambios que haya que hacer, los exportas en desarrollo y los importas en el entorno que toque, mola! Si el proyecto es multi-developer XD … puede que haya algún problema
  • 10. Problemas Mike exporta su configuración y la sube al repositorio. Bob crea un nuevo tipo contenido... Bob recoge la configuración del repo y se la importa, (o dios!!!!, todos los cambios de configuración que había realizado, no están….) Bob, eres mu tonto
  • 11. Problemas Mike exporta su configuración y la sube al repositorio. Bob actualiza su repo, exporta su configuración y la sube al repositorio. Mike actualiza su repo e importa la configuración O dios!!!!, todos los cambios de configuración que había realizado, no están…. Bob, eres mu tonto
  • 12. Flow Bueno entonces cómo!!!! Una posible solución: http://nuvole.org/blog/2014/aug/20/git-workflow-managing- drupal-8-configuration Mike, si ha realizado cambios de configuración, antes de hacer un pull siempre hace una exportación de su configuración, luego hace el pull, si tiene conflictos los corrige y luego realiza un import de la configuración para incorporar los cambios de sus compañeros. En los entornos (dev|pre|pro) nunca se realizan cambios de configuración.
  • 13. PROCESO drush config-export git add --all git commit -m “Cambios en config” git pull origin master (Arreglamos posibles conflictos si fuera necesario) drush config-import git push origin master
  • 14. ¿¿¿CUAL ES TU SOLUCIÓN????