Я хотел бы сделать удаленное развертывание со своего компьютера сборки на сервер. Удаленное взаимодействие может быть выполнено с помощью команд ssh из скрипта, но я бы предпочел использовать phing и файл deploy.xml, которые бы выполняли автоматизацию.
Какие альтернативы у меня есть для выполнения задач ssh (а также scp) из файла сборки phing?
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/docs/guide/stable/apcs60.html
SshTask : http://www.phing.info/docs/guide/stable/apcs60.htm
Для SemanticScuttle мы используем rsync для развертывания файлов релизов на сервере SourceForge - также через exec. Rsync понимает SSH.
Для ssh есть расширение ssh2 PECL, а затем Phing имеет задачи ssh и scp .
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>
Если вам действительно нужен финг, то на самом деле есть только exec. Если вы открыты для других инструментов, посмотрите на capistrano и мой ответ в " Настройка веб-проекта PHP, инфраструктуры. ".