SlideShare une entreprise Scribd logo
1  sur  47
A la découverte
de Drush
« le couteau Suisse de Drupal »
Julien Dubreuil
17 nov. 2010
Sommaire
1. Présentation de Drush
2. Comment ça fonctionne
3. Alias de site
4. Créer ses commandes Drush
5. Drush Make
2
Les bases de Drush
3
Drush c’est quoi ?
Drupal Shell
Drush n’est pas un module
Regroupement de scripts
Compatible Drupal 5, 6 et 7
Opérationnel sur Linux, Mac et Windows
4
Pour quoi faire ?
Télécharger, activer, désinstaller des
modules, des thèmes...
Mettre à niveau Drupal
Effacer le cache
Exécuter le cron de Drupal
Exécuter du Php ou du Sql.
5
Pourquoi utiliser Drush?
Gagner du temps
Simplifier certaines tâches
Créer des scripts d’automatisation
6
Pré requis
Accès en ligne de commande à votre serveur
Version minimum PHP 5.2
Modifier le fichier php.ini de php-cli
Par exemple : /etc/php5/cli/php.ini
max_execution_time = 90
max_input_time = 180
memory_limit = 512M
7
Télécharger Drush
http://drupal.org/project/drush
Version actuelle 3.3.
8
Installer Drush
Voir le fichier README.TXT
Rendre le script Drush exécutable
Créer un lien symbolique ou un alias vers
/usr/local/bin/drush
9
Configuration
Tout se passe dans drushrc.php
Configurer les différents chemins d’accès
Créer des alias de sites
Définir des commandes spécifiques
Surcharger certaines variables
Paramétrer les dumps de base de données
10
Comment ça marche ?
11
Utiliser Drush
Drush est accessible de partout
$ drush [options] <command> [argument1]
12
Help !
$ drush
$ drush help [commande]
README.TXT et /examples
13
Informations
• core-status
• drupal-directory (dd)
• site-alias (sa)
• help
$ drush core-status
14
Maintenance
• updatedb (updb)
• cache-clear (cc)
• core-cron
• site-upgrade (sup)
$ drush cc all
15
Gestion des modules
• pm-enable (en)
• pm-disable (dis)
• pm-uninstall
• pm-list (sm)
• pm-releases
$ drush dl cck views panels
• pm-info
• pm-download (dl)
• pm-update (up)
• pm-updatecode (upc)
• pm-refresh (rf)
16
Base de données
• sql-conf
• sql-dump
• sql-sync
$ drush sql-dump > backup.sql
• sql-connect
• sql-query (sqlq)
• sql-cli (sqlc)
17
Variables
• variable-get (vget)
• variable-set (vset)
• variable-delete (vdel)
$ drush vset site_offline 1
18
Drush : ce qu’il faut retenir
• Facile à utiliser
• Gain de temps
19
Plus loin avec Drush
Alias de site - Commandes drush - Drush make
20
Alias de site
21
Pourquoi créer des alias ?
Accéder facilement à vos sites
Sans alias
$ drush --root=/path/to/drupal --uri=dev.sandbox.net
status
Avec alias
$ drush @sandbox status
22
Déclaration des alias
Création d’un répertoire .drush
Création d’un fichier nommé alias.drushrc.php
2 paramètres requis :
- l’adresse web du site
- l’emplacement du site
+ d’informations :
/drush/examples/example.aliases.drushrc.php
23
julien@ubuntu:~$ cd .drush/
julien@ubuntu:~/.drush$ ls aliases.drushrc.php
julien@ubuntu:~/.drush$ vi aliases.drushrc.php
Exemple de fichier
24
$aliases['dev'] = array(
'uri' => 'dev.mydrupalsite.com',
'root' => '/path/to/drupal/root',
);
$aliases['stage'] = array(
'uri' => 'stage.mydrupalsite.com',
'root' => '/path/to/remote/drupal/root',
'db-url' => 'pgsql://username:password@dbhost.com
:port/databasename',
'path-aliases' => array(
'%dump' => '/path/to/live/backup.sql',
),
);
25
Visualiser les alias
disponibles
julien@ubuntu:~$ drush sa
@stage
@dev
@sandbox
@aegir
@cooking
julien@ubuntu:~$
26
Utiliser un alias
$ drush @alias [options] <command> [argument1]
julien@ubuntu:~$ drush @sandbox dl cck views
julien@ubuntu:~$
27
Commandes Drush
28
Commande Drush
Création d’un fichier nommé .drush.inc
3 étapes pour créer une nouvelle commande :
- déclaration de celle-ci à drush
- ajout de l’aide pour l’utilisateur
- création de notre commande Drush
+ d’informations :
/drush/examples/sandwich.drush.inc
30
/**
* Implementation of hook_drush_command().
*/
function sandwich_drush_command() {
$items = array();
$items['make-me-a-sandwich'] = array(
'description' => "Makes a delicious sandwich.",
'arguments' => array(
'filling' => 'The type of the sandwich (turkey, cheese, etc.)',
),
'options' => array(
'spreads' => 'Comma delimited list of spreads (e.g. mayonnaise, mustard)',
),
'examples' => array(
'drush make-me-a-sandwich turkey --spreads=ketchup,mustard',
),
'aliases' => array('mmas'),
'bootstrap' => DRUSH_BOOTSTRAP_DRUSH, // No bootstrap at all.
);
return $items;
}
31
/**
* Implementation of hook_drush_help().
*/
function sandwich_drush_help($section) {
switch ($section) {
case 'drush:make-me-a-sandwich':
return dt("This command will make you a delicious sandwich, just how you like
it.");
}
}
32
/**
* Example drush command callback. This is where the action takes place.
*/
function drush_sandwich_make_me_a_sandwich($filling = 'ascii') {
$str_spreads = '';
if ($spreads = drush_get_option('spreads')) {
$list = implode(' and ', explode(',', $spreads));
$str_spreads = ' with just a dash of ' . $list;
}
$msg = dt('Okay. Enjoy this !filling sandwich!str_spreads.',
array('!filling' => $filling, '!str_spreads' => $str_spreads)
);
drush_print("n" . $msg . "n");
drush_print(file_get_contents(dirname(__FILE__) . '/sandwich.txt'));
}
33
Utiliser votre commande
34
julien@ubuntu:~$ drush make-me-a-sandwich
julien@ubuntu:~$ drush mmas
Drush Make
35
Drush make, mais encore?
Drush make n’est pas inclus dans Drush
Création d’un fichier d’extension .make
Liste de choses à télécharger
Intérêt = réutilisabilité des fichiers
Pratique pour les profils d’installations ou
distributions
36
Télécharger Drush Make
http://drupal.org/project/drush_make
Version 6.x-2.0-beta9
Installer Drush Make
Voir le fichier INSTALL.txt
37
Les commandes
• make
• convert-makefile
• generate-makefile
• verify-makefile
38
Drush Make en pratique ?
2 méthodes
- Créer votre fichier à la main
- Générer votre fichier
39
Exemple
40
; Core version
core = 6.x
; API version
api = 2
; Core project
projects[] = "drupal"
; Modules
projects[] = "cck"
Exemple
41
; Modules
projects[cck][subdir] = "contrib"
projects[views][subdir] = "contrib"
projects[views][version] = 2.11
projects[jquery_ui][subdir] = "contrib"
; Themes
projects[basic][subdir] = "contrib"
projects[rootcandy][subdir] = "contrib"
Exemple
42
libraries[jquery_ui][download][type] = "get"
libraries[jquery_ui][download][url] =
"http://jquery-ui.googlecode.com/files/jquery-
ui-1.7.3.zip"
libraries[jquery_ui][directory_name] =
jquery.ui
libraries[jquery_ui][destination] =
modules/contrib/jquery_ui
Exécuter un fichier .make
Placez vous dans le répertoire
$ drush make /chemin/sandbox.make
43
Ce qu’il faut retenir
44
Drush : ce qu’il faut retenir
• Facile à utiliser
• Gain de temps
• Configurable
• Extensible
• Indispensable
45
En savoir plus
Projet
http://drupal.org/project/drush
http://drupal.org/project/drush_make
FAQ
http://drush.ws/faq
Mémento des commandes
http://markferree.com/sites/default/files/drush-cheatsheet_0.pdf
Mes posts de blog
http://juliendubreuil.fr/tag/drush
46
Questions ?
47
48
Merci
Crédits photos :
http://www.flickr.com/photos/st3f4n/sets/72157616350171741/
http://www.flickr.com/photos/-spam-/sets/72157623915393872/
« Que la force de Drush
soit avec vous ! »
Blog : http://juliendubreuil.fr
Twitter : @juliendubreuil

Contenu connexe

Tendances

اسلاید اول جلسه اول دوره پاییز کلاس پایتون برای هکرهای قانونی
اسلاید اول جلسه اول دوره پاییز کلاس پایتون برای هکرهای قانونیاسلاید اول جلسه اول دوره پاییز کلاس پایتون برای هکرهای قانونی
اسلاید اول جلسه اول دوره پاییز کلاس پایتون برای هکرهای قانونی
Mohammad Reza Kamalifard
 
Gestion des disques et des permission sous Linux
Gestion des disques et des permission sous LinuxGestion des disques et des permission sous Linux
Gestion des disques et des permission sous Linux
Oussama Bessrour
 
3.0 install de ubuntu server + tasksel + ftp
3.0 install de ubuntu server + tasksel + ftp3.0 install de ubuntu server + tasksel + ftp
3.0 install de ubuntu server + tasksel + ftp
Osi Pallière
 
Activer les connexions à distance my sql
Activer les connexions à distance my sqlActiver les connexions à distance my sql
Activer les connexions à distance my sql
Ennakhli Said
 
DrupalCamp Lyon 2012 - Optimiser les performances Drupal depuis les tranchées
DrupalCamp Lyon 2012 -  Optimiser les performances Drupal depuis les tranchéesDrupalCamp Lyon 2012 -  Optimiser les performances Drupal depuis les tranchées
DrupalCamp Lyon 2012 - Optimiser les performances Drupal depuis les tranchées
Aurelien Navarre
 

Tendances (20)

اسلاید اول جلسه اول دوره پاییز کلاس پایتون برای هکرهای قانونی
اسلاید اول جلسه اول دوره پاییز کلاس پایتون برای هکرهای قانونیاسلاید اول جلسه اول دوره پاییز کلاس پایتون برای هکرهای قانونی
اسلاید اول جلسه اول دوره پاییز کلاس پایتون برای هکرهای قانونی
 
Comprendre les scripts shell auto-extractible
Comprendre les scripts shell auto-extractibleComprendre les scripts shell auto-extractible
Comprendre les scripts shell auto-extractible
 
Tp dns
Tp dns Tp dns
Tp dns
 
Mpdf 11
Mpdf 11Mpdf 11
Mpdf 11
 
Gestion des disques et des permission sous Linux
Gestion des disques et des permission sous LinuxGestion des disques et des permission sous Linux
Gestion des disques et des permission sous Linux
 
Msdos
MsdosMsdos
Msdos
 
Config ip
Config ipConfig ip
Config ip
 
Mpdf 13
Mpdf 13Mpdf 13
Mpdf 13
 
3.0 install de ubuntu server + tasksel + ftp
3.0 install de ubuntu server + tasksel + ftp3.0 install de ubuntu server + tasksel + ftp
3.0 install de ubuntu server + tasksel + ftp
 
Mpdf 3
Mpdf 3Mpdf 3
Mpdf 3
 
Linux_best_practices
Linux_best_practicesLinux_best_practices
Linux_best_practices
 
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
 
Mpdf 2
Mpdf 2Mpdf 2
Mpdf 2
 
php
phpphp
php
 
Activer les connexions à distance my sql
Activer les connexions à distance my sqlActiver les connexions à distance my sql
Activer les connexions à distance my sql
 
DrupalCamp Lyon 2012 - Optimiser les performances Drupal depuis les tranchées
DrupalCamp Lyon 2012 -  Optimiser les performances Drupal depuis les tranchéesDrupalCamp Lyon 2012 -  Optimiser les performances Drupal depuis les tranchées
DrupalCamp Lyon 2012 - Optimiser les performances Drupal depuis les tranchées
 
Mpdf 4
Mpdf 4Mpdf 4
Mpdf 4
 
Mpdf 6
Mpdf 6Mpdf 6
Mpdf 6
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Mpdf 7
Mpdf 7Mpdf 7
Mpdf 7
 

Similaire à Presentation drush

04 01 configuration raid
04 01 configuration raid04 01 configuration raid
04 01 configuration raid
Noël
 

Similaire à Presentation drush (20)

Drupalcamp Nantes - Présentation Drush
Drupalcamp Nantes - Présentation DrushDrupalcamp Nantes - Présentation Drush
Drupalcamp Nantes - Présentation Drush
 
Drupal - La puissance de Drush
Drupal - La puissance de DrushDrupal - La puissance de Drush
Drupal - La puissance de Drush
 
Install arch ultrabook full luks ssd
Install arch ultrabook full luks ssdInstall arch ultrabook full luks ssd
Install arch ultrabook full luks ssd
 
[JK] BASH pour les utilisateurs de Windows
[JK] BASH pour les utilisateurs de Windows[JK] BASH pour les utilisateurs de Windows
[JK] BASH pour les utilisateurs de Windows
 
Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops)
Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops) Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops)
Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops)
 
s de base
s de bases de base
s de base
 
Nagios twil
Nagios twilNagios twil
Nagios twil
 
Redis
RedisRedis
Redis
 
04 01 configuration raid
04 01 configuration raid04 01 configuration raid
04 01 configuration raid
 
Cours Big Data Chap3
Cours Big Data Chap3Cours Big Data Chap3
Cours Big Data Chap3
 
Des tests modernes pour Drupal
Des tests modernes pour DrupalDes tests modernes pour Drupal
Des tests modernes pour Drupal
 
Hdfs
HdfsHdfs
Hdfs
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linux
 
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
 
OpenNMS
OpenNMSOpenNMS
OpenNMS
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduce
 
les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)
 
#OSSPARIS17 - Docker Under the Hood : Networking & Loadbalancing & security m...
#OSSPARIS17 - Docker Under the Hood : Networking & Loadbalancing & security m...#OSSPARIS17 - Docker Under the Hood : Networking & Loadbalancing & security m...
#OSSPARIS17 - Docker Under the Hood : Networking & Loadbalancing & security m...
 
Le nouveau AMP : apache mariadb php
Le nouveau AMP : apache mariadb phpLe nouveau AMP : apache mariadb php
Le nouveau AMP : apache mariadb php
 
Chapitre 2 hadoop
Chapitre 2 hadoopChapitre 2 hadoop
Chapitre 2 hadoop
 

Presentation drush

Notes de l'éditeur

  1. Quelques tâches possibles à réaliser
  2. 1) Gagner du temps Téléchargement et activation d’un module : clic clic 8-9 étapes drush 2 étapes 2) et 3) Automatisation Drush = php donc scriptable Couplé à la cron = outil puissant
  3. Exemple sous Mac / linux
  4. Drusrc.php peut etre placé dans : .drush Répertoire du projet …
  5. Toutes les commandes ne sont pas forcement disponible pour chaque version de Drupal site-install (D7)
  6. Gagner du temps une fois de plus
  7. Plusieurs possibilité pour déclarer des alias Création du fichier 2 paramètres minimums
  8. Exemples de modules qui ont des commandes
  9. Drush make n’est pas inclus dans Drush Brique supplémentaire .make contenant une liste de chose à télécharger
  10. Installation archive dans .drush
  11. télécharger un module télécharger une version particulière d’un module télécharger et placer le module dans un sous rep télécharger un theme
  12. télécharger un module télécharger une version particulière d’un module télécharger et placer le module dans un sous rep télécharger un theme
  13. télécharger un module télécharger une version particulière d’un module télécharger et placer le module dans un sous rep télécharger un theme