Вопрос




Кто-нибудь знает о задаче SFTP для msbuild?Мы хотели бы автоматизировать наши развертывания в рабочей среде, но по соображениям безопасности мы не разрешаем общий доступ к файлам SMB из нашей среды разработки / тестирования / сборки в рабочей среде.

Прямо сейчас разработчики развертывают код, вручную загружая файлы с помощью FileZilla по SFTP-соединению.Это довольно подвержено ошибкам, поэтому мы планируем автоматизировать загрузку SFTP.Хотя, если есть какой-то механизм, отличный от SFTP, который был бы столь же безопасным, я был бы рад использовать его вместо этого.

Я подумываю просто использовать задачу msbuild "exec" и ftp-клиент командной строки, такой как pscp.Но если кто-то уже создал sftp-задачу, это, конечно, было бы здорово.


Спасибо,
Ричард

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

Решение

Можно было бы установить WinSCP и просто использовать MSBuild Выполнить задачу

Я использовал что-то вроде следующего, чтобы загрузить ISO-файл на сервер после сборки.

winscp.exe sftp://root:password;@192.168.0.200:22/uploaddir/ "c:\myfile.iso"

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

Обычно я поступаю ТОЧНО так же, как делал Ryu, и использую WinSCP, однако я делаю еще один шаг вперед и использую скриптовые возможности WinSCP для создания более настраиваемого развертывания.

Я подробно описал это в сообщении в блоге, в котором подробно описана полная настройка:

http://www.diaryofaninja.com/blog/2010/09/21/continuous-integration-tip-1-ndash-ftp-deployment

однако основная суть этого заключается в передаче файла сценария в WinSCP следующим образом:

<Target Name="AfterBuild">
<!-- Set the path to your FTP program (winscp) -->
<PropertyGroup>
    <PathToWinSCP>"C:\Program Files (x86)\WinSCP\winscp.exe"</PathToWinSCP>        
</PropertyGroup>
<!-- Get the date as a string for our log filename-->
<GetDate Format="yyyyMMdd">
    <Output PropertyName="DateString" TaskParameter="Date"/>
</GetDate>
<!-- Convert the path to an absolute path -->
<ConvertToAbsolutePath Paths="$(OutputPath)">
    <Output TaskParameter="AbsolutePaths" PropertyName="OutputPath"/>
</ConvertToAbsolutePath>
<!-- Fire WinSCP and give it your script files name 
    as well as passing it the parameter to this build -->
<Exec Command="$(PathToWinSCP) /script=$(OutputPath)Deployment\FtpDeployment.config /parameter $(OutputPath) /log=$(OutputPath)FtpLog-$(DateString).txt" />
</Target> 

и мой сценарий выглядит следующим образом:

option batch abort
option confirm off

open ftp://myUsername:myPassword@ftp.myftpsite.com

put %1%\*

rm FtpDeployment.config

exit 

Файловая система также поддерживает это из командная строка.

Установите putty и используйте инструменты командной строки для передачи ваших файлов sftp на сервер.Используйте pagent и keys, чтобы избежать жесткого кодирования или повторного ввода пароля.

Существует множество SSH-инструментов на базе .net, возьмите один и оберните его с помощью msbuild task (создайте свой собственный) или ccnet task.

У Ant есть задача scp, если возможно, вызовите ANT-скрипт из msbuild.в любом случае используйте надежный открытый / закрытый ключ для шифрования.

edtFTPnet/PRO предлагает полную поддержку SFTP в .NET.

Если вы заинтересованы в приобретении копии, мы были бы рады написать для вас задание MSBuild SFTP - это была бы удобная функция.Контактные данные на сайте.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top