2017-01-07 1 views
1

Я пытаюсь сделать выпуск VSTS виртуальной машиной (работающей на AWS), на которой запущен IIS. Для этого я использую три задачи.Задача VSTS: копирование файла в окне машины: системная ошибка 53

  1. Окна Machine File Copy
  2. Управление IIS App
  3. Развертывание IIS App

Перед выходом я бегу трубопровод сборки, что дает мне артефакт, содержащий веб-приложение (веб-приложение .zip). Когда я вручную помещаю его на сервер, я могу выполнить шаги 2 и 3 моей версии, и приложение работает. Проблема у меня в том, что я не могу заставить Windows Machine File Copy работать. Он всегда генерирует исключение, дающее «Системную ошибку 53: сетевой путь не найден». Конечно, машины не связаны с доменом, потому что я запускаю свой выпуск на VSTS и нуждаюсь в файлах на VM AWS. Я попытался открыть порт 445 (для совместного использования файлов) и удостоверился, что у пользователя есть права на путь назначения на целевой машине. Итак, мой вопрос: как я могу переместить файлы с VSTS на AWS VM, если эти две машины не объединены.

+0

Вы можете установить агент освобождения на машине, вы можете использовать задачу копирования FTP, * я попытался открыть порт 445 (для совместного использования файлов) * FWIW Я считаю, что SMB обычно требует ICMP, UDP 137, 138, TCP 139 и 445. Вы также можете попробовать задачу командной строки, которая использует удаленное развертывание MsDeploy. Http://johan.driessen.se/posts/Deploying-to-remote-IIS-with-MsDeploy. По умолчанию это TCP 8172. –

ответ

1

Использование FTP Upload или шаг/задача вместо этого.

Что касается создания FTP-сайта, вы можете обратиться к этой статье: Creating a New FTP Site in IIS 7.

+0

Спасибо за ваш комментарий. Я дам ему попробовать. –

+0

Это также увеличит площадь поверхности для хакеров. Если у вас нет серьезного времени для того, чтобы тратить средства на безопасность, не разрешайте FTP в общедоступном ящике. –

-2

Windows File Copy предназначен для работы в одной и той же сети, и включение его в Интернете откроет ваш сервер для взлома. Он предназначен для внутренних сетей. FTP также приведет к значительному риску безопасности, если не будет надлежащим образом управляться.

Самый простой способ продвижения вперед - запустить агент на виртуальной машине в AWS, который вы хотите отпустить. Затем агент загрузит артефакты в виртуальную машину AWS и выполнит все задачи, необходимые для установки.

Это позволяет запускать задачи на локальном компьютере, не открывая его до угроз безопасности.

Если у вас есть несколько машин, которые вам нужны для управления в AWS, вы можете легко создать локальную сеть, которая позволит вашему одиночному агенту использовать копию файла Windows, чтобы нажимать файлы на несколько виртуальных машин без риска.

+0

. Что неудивительно: обеспечить задачу от VSTS. Я бы предположил, что если вы запустите задачу из VSTS, она будет более новой в вашем локальном домене. Это сервер, который работает где-то в центре данных MS. –

+0

Вы не запускаете задачу на VSTS, она работает на Агенте, который там, где вам это нужно. Вы можете установить агент на любой сервер Windows или Linux, который вам нравится в любой сети. –

-1

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: этот ответ объясняет, как выполнить требования по использованию задач Windows Machine File Copy, а также управлять/развертывать задачи IIS. Пожалуйста, всегда заботитесь о безопасности ваших целевых хостов, абсолютно необходимо подтверждение его упрощения и безопасности.

Как было отмечено в комментариях, вы должны защитить канал развертывания от внешнего мира, здесь высокоинтенсивного пример уровня:

Protect your deployment channel


Ответ: для того, чтобы используйте Windows Machine File Copy task, вам необходимо:

  • на целевой машине (один работает IIS) позволяют файлам и принтерам выполнив следующую команду из административной командной строки:

    netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=yes
  • гарантировать, что установлен 4 или более поздние целевой машине PowerShell; следующие выполняются из командной строки PS печатает версию установленной на локальном компьютере:

    PS> $PSVersionTable.PSVersion

    Чтобы получить PowerShell 5 можно, например, установить WMF 5 ;

  • на целевой машине вы должны установить .NET Framework 4.5 или более поздней;

Для двух других задач (управление/развертывание задачи IIS), вам необходимо включить прослушиватель WinRM HTTPS на целевой машине. Для сценария развертывания развития можно выполнить следующие действия:

  • ConfigureWinRM.ps1 скачать PowerShell скрипт на из officaial хранилища VSTS Задачи GitHub;

  • позволяет от командно-административной PowerShel подскажет политику выполнения RemoteSigned PowerShell:

    PS> Set-ExecutionPolicy RemoteSigned
  • запустить скрипт со следующими аргументами:

    PS> ConfigureWinRM.ps1 FQDN https

Обратите внимание, что полный доменное имя является полным доменное имя вашего компьютера, так как оно достигается заданием VSTS, например myhostname.domain.example. Обратите внимание, что этот скрипт загружает два исполняемых файла (makecert.exe и winrmconf.cmd) из Интернета, поэтому этот аппарат должен иметь подключение к Интернету. В противном случае просто загрузите эти два файла, поместите их в скрипт, запишите из сценария обращение к файлам-файлам.

Теперь вы включили прослушиватель WinRM HTTPS с самоподписанным сертификатом. Не забудьте использовать опцию «Test Certificate» (что по иронии судьбы означает не проверять сертификат, лучшим именем было бы «Пропустить CA Check») для этих двух задач.

В сценарии производственного развертывания вы можете использовать вместо него сертификат, который правильно подписан.

+0

Привет. Спасибо за ответ. Почему требуется версия PS 5? –

+0

Версия 4 PowerShell требуется сценарием, лежащим в основе задачи копирования файла Windows Machine File, если у вас есть версия 3 или более ранняя версия, я обычно предлагаю вместо версии 5 более новые функции. –

+0

Не оставит ли машина в Интернете открытой для взлома? Я, конечно, никогда не включил бы это в публичной коробке. –

Смежные вопросы