12
FEV

Laravel Envoy: Exécutez des commandes SSH en PHP

Publié le 12/02/14 à 08h59 par DJo

Laravel Envoy est une bibliothèque PHP permettant d'exécuter facilement des commandes linux sur serveurs distants ou locaux via SSH.

Laravel Envoy est une bibliothèque PHP permettant d'exécuter facilement des commandes linux sur serveurs distants ou locaux via SSH.

Lorsque vous créez des applications PHP complexes nécessitant de manipuler le filesystem de votre serveur ou encore supprimer des fichiers de cache, il peut être intéressant de pouvoir exécuter des commandes console en PHP.

Laravel Envoy est une bibliothèque indépendante (pas besoin d'utiliser Laravel) permettant d'exécuter facilement des tâches, à la fois sur un serveur en local ou sur un serveur distant.

Pour l'installer sur votre serveur, téléchargez le fichier phar du projet et compilez ce dernier.

Dans un premier temps, commencez par créer un fichier PHP Envoy.blade.php à la racine de votre projet:

@servers(['web-1' => '192.168.1.1', 'web-2' => '192.168.1.2'])
@task('deploy', ['on' => ['web-1', 'web-2']])
    cd site
    git pull origin {{ $branch }}
    php app/console cache:clear
@endtask

Ces instructions permettront d'exécuter 3 commandes sur 2 serveurs différents. Pour les exécuter, il suffit de lancer la commande:

envoy run deploy

"deploy" étant le nom donné à notre tâche.

L'authentification se fait en SSH, il est donc conseillé de créer des clés SSH entre les deux serveurs pour ne pas qu'un mot de passe vous soit demandé systématiquement.

Il est possible d'exécuter en parallèle les commandes sur plusieurs serveurs, gérer l'arrêt de l'éxécution dans le cas où une commande échouerait.

Des macros permettent d'exécuter plusieurs tâches:

@macro('deploy')
    foo
    bar
@endmacro
@task('foo')
    echo "HELLO"
@endtask
@task('bar')
    echo "WORLD"
@endtask

Bref, un outil parfait pour gérer ses déploiements et tâches de maintenance.

Il vous faudra toutefois PHP 5.4 pour faire fonctionner Envoy.

Si vous voulez voir une démo vidéo, allez faire un tour sur Laracasts.

 

Site Officiel

Personne n'a baraguiné de chtite phrase pour le moment !


Ajouter un Commentaire

Pour poster un commentaire, vous devez être identifié. Vous pouvez choisir parmi ces trois méthodes d'identification:

Compte la Ferme du Web

Identifiez-vous
Inscrivez-vous

Compte Facebook

Connexion avec Facebook

Compte Twitter

Connexion avec votre compte twitter
Rechercher sur la Ferme du web