Question

Je souhaite effectuer un déploiement à distance à partir de ma machine de génération sur un serveur. La communication à distance peut être effectuée via un script à l'aide de commandes ssh, mais je préférerais utiliser phing et un fichier deploy.xml permettant l'automatisation.

Quelles alternatives dois-je effectuer pour effectuer des tâches ssh (et aussi scp) à partir d'un fichier de construction phing?

Était-ce utile?

La solution

Si vous avez vraiment besoin de phing, alors, il n'y a que l'exécutif. Si vous êtes ouvert à d’autres outils, consultez capistrano et ma réponse dans " Configurer un projet Web PHP, l'infrastructure. ".

Autres conseils

SCPTask dans Phing:

  

copie des fichiers depuis et vers un hôte distant à l'aide de scp. Cette tâche nécessite une extension PHP SSH2 pour fonctionner ...

J'ai rencontré un tâches SCP et SSH . pour Phing hier. Vous devrez également suivre les instructions pour installer SSH2 pour PHP . Je ne pouvais pas obtenir les tâches pour travailler tout de suite, vous pourriez. J'ai modifié ma copie, si vous en avez besoin, je peux vous la fournir.

J'ai rencontré le même problème il y a environ un an et à l'époque, je ne pouvais pas trouver de tâche. J'ai fini par faire une tâche d'exécution, ainsi tout était dans le fichier xml.

<exec command="scp -i keys/id_rsa myfile user@$server:myfile" dir="." />

Je sais que c'est vieux, mais il semble y avoir plusieurs liens brisés et de la désinformation.

ScpTask : http: //www.phing .info / docs / guide / stable / apcs60.html

SshTask : http: //www.phing .info / docs / guide / stable / apcs60.htm

Pour SemanticScuttle , nous utilisons rsync pour déployer les fichiers de version sur le serveur SourceForge - également via exec . Rsync comprend ssh.

Pour ssh, il y a l'extension ssh2 PECL puis Phing a le ssh scp tâches.

  1. Sur un Mac, installez libssh2 via Homebrew. Sous Linux, utilisez votre gestionnaire de paquets.
  2. sudo pecl installer pecl.php.net/ssh2-0.12

Vous pouvez maintenant faire ceci:

<?xml version="1.0"?>
<project name="test" default="test">
  <target name="test">
    <ssh username="vagrant" password="vagrant" host="192.168.123.456"
        command="pwd" property="pwd" display="false" />
    <echo>The current working directory is ${pwd}</echo>
  </target>
</project>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top