• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
DrupalCamp Lyon 2012 - Industrialiser Drupal avec Drush
 

DrupalCamp Lyon 2012 - Industrialiser Drupal avec Drush

on

  • 2,021 views

Drush - Drupal Shell - est un élément important dans le développement de sites Drupal. La plupart développeurs s'en servent pour effectuer des tâches courantes comme activer des modules, vider ...

Drush - Drupal Shell - est un élément important dans le développement de sites Drupal. La plupart développeurs s'en servent pour effectuer des tâches courantes comme activer des modules, vider des caches, faire des sauvegardes de la base de données entre autres.

Cependant au fil des années Drush s'est enrichit de possibilités avancées pour industrialiser le cycle de vie d'un projet : lancer des opérations sur plusieurs plateformes distantes avec les site-alias, synchroniser les bases de données et les fichiers de différentes instances avec sql-sync et rsync, composer ses propres commandes personnalisées avec les shell-alias. Avec Drush Make, il est possibile d'assembler automatiquement les différents modules, thèmes, patches et librairies javascript avec une makefile du projet.

Lors de cette présentation nous verrons comment les équipes d'Alter Way utilisent toute la puissance de Drush pour développer, tester développements via des plateformes d'intégration continue ainsi que pour gérer les déploiements dans un processus de travail parfaitement industrialisé.

Statistics

Views

Total Views
2,021
Views on SlideShare
2,021
Embed Views
0

Actions

Likes
3
Downloads
22
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    DrupalCamp Lyon 2012 - Industrialiser Drupal avec Drush DrupalCamp Lyon 2012 - Industrialiser Drupal avec Drush Presentation Transcript

    • Industrialisation Drupal avec Drush Rodolfo Ripado //
    • Qui suis-je ?↳ Rodolfo Ripado, alias Gaspaio↳ Drupaholic depuis 3 ans↳ Modules : Simple Subscription, Custom Tokens, Swftools Plugins↳ Mon dada : industrialisation, DevOps, ...bref, je déteste faire la même chose deux fois.↳ Consultant Drupal chezRodolfo Ripado - Drupal Camp Lyon mai 2012 2 / 19
    • Un accompagnement open source à 360°Rodolfo Ripado - Drupal Camp Lyon mai 2012 3 / 19
    • Drupal, we have a problem !↳ Développer un site Drupal implique beaucoup de tâches répétitives !↳ Vider les caches, télécharger/activer/désactiver des modules, mise à jour des features, etc.↳ Dupliquer des instances dun projet :  "mais ... ça marche chez moi !"↳ Déployer des mises à jour sur les serveurs dintégration, production.Rodolfo Ripado - Drupal Camp Lyon mai 2012 4 / 19
    • Bang !↳ Terriblement ennuyeux : on pointe ... on clique ... on attend ... on pointe ... on clique ... on attend↳ Les erreurs, les oublis sont fréquents.↳ Cest lent. Les actions manuelles ne peuvent pas être automatisées↳ Faire du dev Drupal, cest :  pas efficace  dangereux pour la santé de votre projet (et de vos devs).Rodolfo Ripado - Drupal Camp Lyon mai 2012 5 / 19
    • Industrialiser !!↳ Il nous faut rendre ces procédures possibles en ligne de commande, bien plus rapide que linterface web de Drupal.↳ Automatiques, i.e. scriptées↳ Evolutives !↳ Fiables !↳ Pour tout cela il nous faut : DRUSH !Rodolfo Ripado - Drupal Camp Lyon mai 2012 6 / 19
    • Drush - Drupal Shell↳ Application en ligne de commande pour effectuer des opérations Drupal  Le couteau suisse de Drupal.  Facile à installer, via PEAR, aptitude, ...  Compatible windows, OSX et linux↳ Quelques commandes basiques mais incroyablent utiles : $ drush cache-clear all # vider tous les caches Drupal. Raccourci: cc $ drush pm-download <nom_module> # télécharger un module. Raccourci: dl $ drush pm-enable <nom_module> # activer un module. Raccourci: en $ drush pm-disable <nom_module> # désactiver un module. Raccourci: dis $ drush user-password <user_name> # changer un mot de passe. Raccourci: upwd $ drush sql-dump > sauvegarde.sql # sauvegarder la base de données dans un fichier $ drush site-install monprofil # installer un site Drupal. Raccourci: siRodolfo Ripado - Drupal Camp Lyon mai 2012 7 / 19
    • Drush - Drupal Shell↳ Drush accélère votre développement local.  Vous vous demanderez comment vous avez pu travailler sans drush !↳ Il permet dautomatiser certaines opérations via des scripts : update-site.sh # Script très simple de mise à jour dun site Drupal # 1. Mise à jour du code hg fetch # 2. Mise à jour de la base de données et “vidage” des caches drush updatedb drush cc all↳ Mais il fait beaucoup plus grâce à ses scripts de confgurationRodolfo Ripado - Drupal Camp Lyon mai 2012 8 / 19
    • Drush – Les Shell Aliases↳ Le but : référencer des instances Drush dans nos commandes ! .../sites/all/drush/aliases.drushrc.php↳ Les shell aliases sont des définitions dinstances Drupal, // Alias pour le serveur dintégration locales ou distantes $aliases[inte] = array( uri => monprojet.integration, root => /var/www/monprojet,↳ Placés dans un fichier nommé remote-user => webmaster, aliases.drushrc.php );↳ A minima, il contient : // Alias pour le serveur de production  LURI de la machine distante (ou locale) $aliases[prod] = array( uri => monprojet.production,  Le chemin vers le document root de linstance Drupal root => /var/www/monprojet, remote-user => webmaster,  Lutilisateur système, utilisé pour le login ssh ou rsync );Rodolfo Ripado - Drupal Camp Lyon mai 2012 9 / 19
    • Industrialisation DrupalDrush – les shell aliases↳ Ce fichier peut être :  Global : /etc/drush/aliases.drushrc.php  Utilisateur : ~/.drush/aliases.drushrc.php  Projet : <root>/sites/all/drush/aliases.drushrc.php↳ Peut / doit être versionné avec le code !↳ Peut aussi contenir, pour une instance donnée nimporte quel paramètre pour nimporte quelle option de Drush.↳ On peut maintenant lancer des commandes du type : # Vider les caches de linstance dintégration drush @inte cc all # Télécharger une sauvegarde de la base de données dintégration drush @inte sql-dump > sauvegarde.sqlRodolfo Ripado - Alter Way Formation - http://www.alterway.fr/formation 10 / 19
    • Industrialisation DrupalShell aliases : synchroniser des instances Drupal Import BD et média $ drush sql-sync @inte @self $ drush rsync @inte:%files @self:%files @self @inte $ drush sql-sync @prod [@self, @inte] $ drush rsync @prod [@self, @inte] @inte @prod Import @self BD et média ↳ Pour en savoir plus : $ drush topic docs-aliasesRodolfo Ripado - Alter Way Formation - http://www.alterway.fr/formation 11 / 19
    • Drush Make↳ Drush make est une extension une commande Drush 5 pour créer des sites Drupal prêts-à-installer.↳ A partir dun fichier de configuration - la makefile – Drush Make télécharge les modules, profils, thèmes, patches, libraires, ... de votre site à partir de sources différentes et construit votre répertoire Drupal.Rodolfo Ripado - Alter Way Formation - http://www.alterway.fr/formation 12 / 19
    • Une makefile très simple ma_makefile.make ; Une makefile vraiment très simple core = 7.x api = 2 projects[] = drupal ; Base modules projects[] = ctools projects[] = views↳ Combinée à un profil dinstallation, une makefile permet de packager un site Drupal en entier.Rodolfo Ripado - Alter Way Formation - http://www.alterway.fr/formation 13 / 19
    • Drush Make + profil dinstallation : AWDrupal↳ AW Drupal est :  Une makefile  Un profil dinstallation  Disponible sur github : https://github.com/alterway/awdrupal↳ A quoi cela sert ?  Installer un Drupal pré-configuré avec quelques modules "essentiels"  pour faire des tests, pour démarrer un projet, etc.  Il sagit dun work in progress. Ce nest pas une distribution, ni un produit, mais tout simplement un outil pratique pour les drupaliens de chez nous ou dailleurs.↳ Le répertoire est composé de :  Une makefile : build-awdrupal.make  Un profil dinstallation classique↳ Drush make + Drush site-install = un site drupal en deux commandes !Rodolfo Ripado - Alter Way Formation - http://www.alterway.fr/formation 14 / 19
    • Open Atrium :Comment utiliser Drush Make pour packager une distribution↳ Le projet Open Atrium utilise les Makefiles pour distribuer une version packagée sur Drupal.org.  http://drupal.org/project/openatrium↳ Il sagit dun cas décole : un projet exemplaire de ce quon peut faire avec les makefiles.↳ Drupal.org effectue le packaging de distributions Drupal de manière automatisée à partir dune ou plusieurs makefiles, qui suivent certaines conventions de nommage.↳ Les pages de documentation à ce sujet, toutes neuves, toutes fraîches, sont sur http://drupal.org/node/642116 (Packaging a distribution on Drupal.org)Rodolfo Ripado - Alter Way Formation - http://www.alterway.fr/formation 15 / 19
    • Builder Open Atrium à partir de Drupal.org↳ 1. On télécharge :  build-openatrium.make  drupal-org-core.make↳ 2. On lance :  drush make build-openatrium.make atrium↳ La makefile build-opentrium.make est ce quon appelle une stub makefile :  elle ne sert quà télécharger le profil dinstallation qui vient avec sa propre makefile↳ Démo-Time !Rodolfo Ripado - Alter Way Formation - http://www.alterway.fr/formation 16 / 19
    • Ze Power of Ze Makefile !↳ Patches  Installer et télécharger des patches y compris du core de Drupal↳ Récursivité et inclusions  Un profil peut inclure une makefile  Une makefile peut en cacher une autre↳ Support natif de git !↳ On peut sen servir pour packager nos projets :  Le dépôt ne contient que le code custom et des makefiles  Un script de build prépare une archive avec la dernière version du projet  Cette archive - le build - est déployé sur le serveur de developpement/intégration/production.  Une excellente présentation dune architecture de ce type : http://drupalcity.de/sites/default/files/presentation-slides/streamline-your-drupal- development.pdfRodolfo Ripado - Alter Way Formation - http://www.alterway.fr/formation 17 / 19
    • Drush et lindustrialisation du développement Drupal Postes locaux des développeurs drush fu drush make ... Code Dépôt de code Hg / Git / SVN Déploiement drush updatedb drush fra drush make Import BD et média shell aliases drush sql-sync drush rsync Intégration ProductionRodolfo Ripado - Alter Way Formation - http://www.alterway.fr/formation 18 / 19
    • Pour me retrouver : I  ! → rodolfo.ripado@alterway.fr RC → ggaspaio@gmail.com E → @gaspaioM Ou … près de la machine à café dans 5 minutes !