Mis à jour le mercredi 10 août 2016
  • 2 heures
  • Facile
Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Introduction du cours

logo de dploy
Logo de Dploy

Dploy c'est quoi ?

Dploy c'est un un script qui va uploader les fichiers et dossiers que vous avez versionné avec Git sur un serveur distant.

En effet quand on travaille sur de petits projets on est souvent en présence d'un simple accès ftp sur un serveur mutualisé et là on est bien ennuyé. On doit prendre chaque fichier indépendament pour l'uploader avec le risque de mettre le site en carafe :-° si on oublie quelque chose.

Avec Dploy, Git et Node.js vous avez le trio gagnant, vous allez pouvoir n'uploader que ce qui est nécéssaire et toujours dans la dernière version grace à une simple ligne de commande :

dploy

Prérequis

Avant de commencer, voyons ensemble ce dont vous avez besoin.

Les prérequis pour ce cours sont :

  • Connaitre l'utilisation du logiciel Git, si ce n'est pas le cas reportez-vous au tutoriel de Mathieu Nebra, il est très complet.

  • Git doit être installé sur votre ordinateur.

  • Avoir Node.js d'installé sur son ordinateur.

  • Avoir suivi le cours sur Node.js au moins pour la partie installation.

  • Une connexion internet.

  • Un hébergement sur lequel se connecter en ftp ou en sftp.

Si tout est bon, on peut commencer !

Dans un premier temps on ouvre une console pour écrire des lignes de commande sous Windows on appuie sur les touches windows+r et on tape cmd dans le champ de la fenêtre qui vient de s'ouvrir puis Entrée.

Sous OS X et Linux, n'importe quel terminal fait l'affaire.

Une console vient de s'ouvrir, elle affiche ceci :

Microsoft Windows [version 6.1.7601]Copyright (c) 2009 Microsoft Corporation. Tous droits réservés.

C:\Users\monnom>

 Pour installer Dploy, j'écris :

npm install dploy -g​

L'option -g permet de l'installer globalement.

Node.js va alors récupérer les fichiers sources et les installer sur votre système, il se charge seul des dépendances nécessaires.

Cela devrait ressembler à ceci :

Microsoft Windows [version 6.1.7601]Copyright (c) 2009 Microsoft Corporation. Tous droits réservés.

C:\Users\monnom>npm install dploy -g

C:\Users\monnom\AppData\Roaming\npm\dploy -> C:\Users\monnom\AppData\Roaming\npm\node_modules\dploy\bin\dploydploy@1.2.0 
C:\Users\monnom\AppData\Roaming\npm\node_modules\dploy
├── colors@0.6.2
├── signals@1.0.0
├── minimatch@0.2.14 (lru-cache@2.5.0, sigmund@1.0.0)
├── ssh2@0.2.25 (streamsearch@0.1.2, asn1@0.1.11)
├── glob-expand@0.0.2 (lodash@1.2.1, glob@3.1.21)
├── ftp@0.3.7 (xregexp@2.0.0, readable-stream@1.1.13-1)
├── yamljs@0.1.5 (glob@3.1.21, argparse@0.1.15)
└── prompt@0.2.13 (pkginfo@0.3.0, revalidator@0.1.8, read@1.0.5, winston@0.6.2,utile@0.2.1)

C:\Users\monnom>

Pour vérifier si l'installation s'est bien passée, vous pouvez taper la ligne ci-dessous pour connaitre la version :

dploy --version

En retour vous avez :

v1.2.0

C'est laconique mais on a l'essentiel, on peut continuer...:D

Configurer Dploy

Dans un premier temps il faut se rendre dans un dossier dans lequel on a un projet qui utilise Git, par exemple un projet sous WordPress.

Donc je me rends à  :

E:\wamp\www\wordpress>

Et là dans la console je tape :

E:\wamp\www\wordpress>​ dploy install

Et je valide Entrée.

Si je me rends dans le dossier je me rend compte qu'un fichier dploy.yaml a été créé, il contient ceci :

dev:
    scheme: ftp
    host: ftp.my-dev-server.com
    port: 21
    user: user
    pass: password
    check: true
    path:
        local: release/
        remote: public_html/

stage:
    scheme: ftp
    host: ftp.my-stage-server.com
    port: 21
    user: user
    pass: password
    check: true
    path:
        local: release/
        remote: public_html/

live:
    scheme: ftp
    host: ftp.my-live-server.com
    port: 21
    user: user
    pass: password
    check: true
    path:
        local: release/
        remote: public_html/

On distingue trois blocks prénommés dev, stage, live. Si vous n'avez qu'un serveur ftp à disposition, vous pouvez supprimer dev et stage, ils ne vous seront d'aucune utilité. Leur présence est requise si vous avez plusieurs environnements de travail.

Penchons-nous sur la configuration du fichier dploy.yaml.

live:
    scheme: ftp
    host: ftp.my-live-server.com
    port: 21
    user: user
    pass: password
    check: true
    path:
        local: release/
        remote: public_html/
  • sheme : C'est le protocole de communication qu'on va utiliser, il est possible d'utiliser sftp.

  • host : L'adresse de votre serveur ftp.

  • port : Le port standard pour ftp c'est le 21 pour sftp c'est le 22, je vous laisse choisir en fonction de votre configuration.

  • user : Votre nom d'utilisateur.

  • pass :  Votre mot de passe.

  • check : True ou false. Si il est à false, il ne vous demandera pas votre accord avant d'envoyer les fichiers, je vous conseille de le laisser à true.

  • path :

  • local : Vous pouvez supprimer la ligne.

  • remote : Le dossier sur le ftp où est publié le site.

Ce qui nous donne pour un hébergement chez OVH par exemple :

live: 
    scheme: ftp 
    host: ftp.my-live-server.com 
    port: 21 
    user: monnom 
    pass: monMotDePass
    check: true 
    path: 
        remote: /www/

Sécurité

Comme un nouveau fichier a été créé à la racine de votre site et qu'il contient des informations sensibles, je vous conseille de rajouter à votre fichier .gitignore la ligne dploy.yaml avant de commiter et de pousser vos modifications.

C'est parti !

Une seule chose à faire  :

E:\wamp\www\wordpress> dploy

Si vous avez plusieurs environnements configurés, il faut préciser lequel vous voulez mettre à jour.

Par exemple :

E:\wamp\www\wordpress> dploy stage

 On peut en mettre plusieurs à jour en même temps :

E:\wamp\www\wordpress> dploy stage dev

En réponse vous devriez avoir quelque chose qui ressemble à ceci :

Connecting to live...
Checking revisions...
Checking diffs between [c8724d77cf87bc53aff773dc520f1770401b0a4d] > [479ed8c64c
85cc9ff64f128f4f61e18d6fabeb2]
Files that will be uploaded:
[ ? ] readme.html > /www/readme.html
[ ? ] wp-admin/about.php > /www/wp-admin/about.php
[ ? ] wp-content/languages/admin-fr_FR.mo > /www/wp-content/languages/admin-fr_
R.mo
[ ? ] wp-content/languages/admin-fr_FR.po > /www/wp-content/languages/admin-fr_
R.po
[ ? ] wp-includes/ID3/getid3.lib.php > /www/wp-includes/ID3/getid3.lib.php
[ ? ] wp-includes/class-IXR.php > /www/wp-includes/class-IXR.php
[ ? ] wp-includes/class-wp-customize-widgets.php > /www/wp-includes/class-wp-cu
tomize-widgets.php
[ ? ] wp-includes/compat.php > /www/wp-includes/compat.php
[ ? ] wp-includes/images/crystal/license.txt > /www/wp-includes/images/crystal/
icense.txt
[ ? ] wp-includes/js/jquery/jquery-migrate.js > /www/wp-includes/js/jquery/jque
y-migrate.js
[ ? ] wp-includes/js/jquery/jquery-migrate.min.js > /www/wp-includes/js/jquery/
query-migrate.min.js
[ ? ] wp-includes/pluggable.php > /www/wp-includes/pluggable.php
[ ? ] wp-includes/version.php > /www/wp-includes/version.php
[ ? ] wp-login.php > /www/wp-login.php
[ ? ] .rev > /www/.rev                               y
[ + ] File uploaded: readme.html: those files? (Y/n)

On valide en tapant y puis la touche entrée

En retour le travail s'effectue :

[ + ] File uploaded: wp-admin/about.php:
[ + ] File uploaded: wp-content/languages/admin-fr_FR.mo:
[ + ] File uploaded: wp-content/languages/admin-fr_FR.po:
[ + ] File uploaded: wp-includes/ID3/getid3.lib.php:
[ + ] File uploaded: wp-includes/class-IXR.php:
[ + ] File uploaded: wp-includes/class-wp-customize-widgets.php:
[ + ] File uploaded: wp-includes/compat.php:
[ + ] File uploaded: wp-includes/images/crystal/license.txt:
[ + ] File uploaded: wp-includes/js/jquery/jquery-migrate.js:
[ + ] File uploaded: wp-includes/js/jquery/jquery-migrate.min.js:
[ + ] File uploaded: wp-includes/pluggable.php:
[ + ] File uploaded: wp-includes/version.php:
[ + ] File uploaded: wp-login.php:
[ + ] File uploaded: .rev:
Upload completed for live
All Completed :)

Et voila votre ftp est à jour...

Sur le serveur distant un fichier .rev a été créé, il contient une clé que va comparer dploy lors de la prochaine mise à jour. Il ne faut pas y toucher.

Conclusion

Dploy est un manière simple et fiable pour mettre à jour vos projets en ligne avec un seul mot : "dploy".

Lien vers le site officiel :

http://leanmeanfightingmachine.github.io/dploy/

Exemple de certificat de réussite
Exemple de certificat de réussite