Pregunta

Me gustaría hacer una implementación remota desde mi máquina de compilación en un servidor. La comunicación remota se puede realizar a través de comandos ssh desde un script, pero preferiría usar phing y un archivo deploy.xml que haría la automatización.

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

¿Fue útil?

Solución

Si realmente necesitas phing, entonces afaik solo hay exec. Si está abierto para otras herramientas, eche un vistazo a capistrano y mi respuesta en " Configurando un proyecto web de PHP, la infraestructura. ".

Otros consejos

SCPTask en Phing:

  

copia archivos desde y hacia un host remoto usando scp. Esta tarea requiere el extensión de PHP SSH2 para funcionar ...

Encontré un Tareas de SCP y SSH para Phing ayer. También deberá seguir las instrucciones para instalar SSH2 para PHP . No pude hacer que las tareas funcionaran directamente de la caja, podrías. Modifiqué mi copia, si es necesario, puedo proporcionarla.

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

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

Sé que esto es antiguo pero parece que hay varios enlaces rotos y algo de información errónea.

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

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

Para SemanticScuttle , usamos rsync para desplegar lanzar archivos al servidor de SourceForge - también a través de exec . Rsync entiende ssh.

Para ssh, existe la extensión ssh2 PECL y luego Phing tiene la ssh y scp .

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

Ahora puedes 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>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top