Вопрос

Я хотел бы выполнить удаленное развертывание со своего компьютера сборки на сервер. Удаленное взаимодействие может быть выполнено с помощью команд ssh из сценария, но я бы предпочел использовать phing и файл deploy.xml, которые бы выполняли автоматизацию.

Какие альтернативы у меня есть для выполнения ssh (а также scp) задач из файла сборки phing?

Это было полезно?

Решение

Если вам действительно нужен финг, то на самом деле есть только exec. Если вы открыты для других инструментов, ознакомьтесь с capistrano и моим ответом в " Настройка веб-проекта PHP, инфраструктуры. ".

Другие советы

SCPTask в Phing:

  

копирует файлы на удаленный хост и с него, используя scp. Для этой задачи требуется расширение PHP SSH2. для работы ...

Я столкнулся с задачами SCP и SSH для Phing вчера. Вам также нужно будет следовать инструкциям по установке SSH2 для PHP . Я не смог заставить задачи работать прямо из коробки, вы могли бы. Я изменил свою копию, если вам нужно, я могу предоставить.

Я столкнулся с той же проблемой около года назад, и тогда я не мог найти задачу. Я закончил тем, что выполнил задачу exec, таким образом, это было все в файле xml.

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

Я знаю, что это старая версия, но, похоже, есть несколько неработающих ссылок и некоторая дезинформация.

ScpTask : http: //www.phing .info / документы / руководство / стабильный / apcs60.html

SshTask : http: //www.phing .info / документы / руководство / стабильный / apcs60.htm

Для SemanticScuttle мы используем rsync для развертывания файлов релизов на сервере SourceForge - также через exec , Rsync понимает SSH.

Для ssh есть расширение ssh2 PECL, а затем Phing имеет ssh и scp задач.

<Ол>
  • На Mac установите libssh2 через Homebrew. В Linux используйте свой менеджер пакетов.
  • sudo pecl install pecl.php.net/ssh2-0.12
  • Теперь вы можете сделать это:

    <?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>
    
    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top