Pergunta

Eu gostaria de fazer a implantação remota de minha máquina de compilação para um servidor. A comunicação remota pode ser feito através de comandos SSH a partir de um script, mas eu prefiro usar phing e um arquivo deploy.xml que faria a automação.

Que alternativas que eu tenho que fazer ssh (e também scp) tarefas de dentro de um arquivo de construção phing?

Foi útil?

Solução

Se você realmente precisa phing, então afaik só há exec. Se você está aberto para outras ferramentas, ter um olhar para Capistrano e minha resposta em "Setting um projeto PHP web, a infra-estrutura. ".

Outras dicas

SCPTask em Phing:

cópias arquivos de e para um host remoto usando scp. Esta tarefa exige que o PHP SSH2 para a função ...

me deparei com um SCP e tarefas SSH para phing ontem. Você também terá que seguir as instruções para instalar SSH2 para PHP . Eu não era capaz de obter as tarefas de trabalho em linha reta fora da caixa, você pode. Eu modifiquei a minha cópia, se você precisar eu posso fornecer.

Eu corri para o mesmo problema há um ano e naquela época eu não poderia encontrar uma tarefa. Acabei fazendo uma tarefa exec, desta forma era tudo no arquivo xml.

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

Para SemanticScuttle , usamos rsync para implantar arquivos a libertação para o servidor de SourceForge - também via exec . Rsync entende ssh.

Para ssh, há a extensão ssh2 PECL e depois Phing tem a ssh e scp tarefas.

  1. Em um Mac, instalar libssh2 via Homebrew. No Linux, use seu gerenciador de pacotes.
  2. sudo pecl install pecl.php.net/ssh2-0.12

Agora você pode fazer isso:

<?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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top