2008-10-23 7 views
5

Me gustaría realizar la implementación remota desde mi máquina de compilación en un servidor. La interacción remota se puede realizar a través de comandos ssh desde un script, pero prefiero usar phing y un archivo deploy.xml que haría la automatización.¿Hay tareas ssh y scp disponibles para phing?

¿Qué alternativas tengo para hacer tareas ssh (y también scp) desde un archivo de construcción phing?

Respuesta

-2

Si realmente necesita phing, entonces afaik solo hay un ejecutivo. Si está abierto para otras herramientas, eche un vistazo a capistrano y mi respuesta en "Setting up a PHP web project, the infrastructure.".

+0

Gracias ... Capistrano utilizado en el pasado y estoy feliz con él. Sin embargo, significa que su equipo ahora necesita comprender 2 idiomas (PHP y un poco de Ruby). Prefiero ir por una solución, pero todos debemos ser pragmáticos ... – Johan

+0

Esa es una verdadera preocupación. Sin embargo, un buen programador aprenderá a manejar un archivo capistrano en menos de un día. Créeme. Por ejemplo, no hago ningún rubí por lo general y he codificado tareas con espacios de nombres en menos de ocho horas. Los documentos para capistrano son bastante increíbles. – Till

+2

No responde la pregunta sobre autenticación de clave pública mediante tareas de Phing. –

5

Me encontré con el mismo problema hace un año y en aquel entonces no pude encontrar una tarea. Terminé haciendo una tarea ejecutiva, de esta manera estaba todo en el archivo xml.

<exec command="scp -i keys/id_rsa myfile [email protected]$server:myfile" dir="." /> 
9

Me encontré con un SCP and SSH tasks para Phing ayer. También deberá seguir las instrucciones para installing SSH2 for PHP. No pude hacer que las tareas salgan directamente de la caja, es posible. Modifiqué mi copia, si es necesario, puedo proporcionarla.

+0

Si está usando WAMP, todo lo que tiene que hacer es hacer clic con el botón izquierdo en el icono de WAMP, ir a PHP -> Extensiones de PHP, luego habilitar php_ss2. –

0

para SSH, está el ssh2 extensión PECL y luego Phing tiene las ssh y scp tareas.

  1. En una Mac, instale libssh2 a través de Homebrew. En Linux, use su administrador de paquetes.
  2. sudo pecl install pecl.php.net/ssh2-0.12

Ahora puede hacer esto:

<?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> 
Cuestiones relacionadas