Дженкинс не может получить доступ к общей папке - PullRequest
0 голосов
/ 14 мая 2018

У меня есть приложение ASP.Net.Я хочу развернуть на удаленной машине Windows.У меня есть общая папка wwwroot.Для развертывания из cmd используйте следующую команду

c:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe" "C:\path_to_project" /p:SolutionDir="path_to_solution_dir" /p:DeployOnBuild=true /p:Configuration=Release /p:PublishProfile="Profile.pubxml"

Профиль выглядит следующим образом

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
       <WebPublishMethod>FileSystem</WebPublishMethod>
       <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
       <LastUsedPlatform>Any CPU</LastUsedPlatform>
       <SiteUrlToLaunchAfterPublish />
       <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
       <ExcludeApp_Data>False</ExcludeApp_Data>
       <publishUrl>\\<ip_address>\wwwroot</publishUrl>
       <DeleteExistingFiles>True</DeleteExistingFiles>
   </PropertyGroup>
</Project>

Из командной строки он работает нормально.Но когда я помещаю то же самое в конвейерный сценарий Jenkins с помощью Batch-плагина, я получаю следующую ошибку

error MSB3191: Unable to create directory "\\<ip_address>\wwwroot". 
Could not find a part of the path '\\<ip_address>\wwwroot'

Что не так с Jenkins?Есть ли проблемы с настройками конфигурации?Может быть, мне нужно изменить подход к развертыванию?

Ответы [ 3 ]

0 голосов
/ 24 августа 2018

проверить, что значение параметра становится разрешенным. Также проверьте, что у учетной записи, с которой работает Jenkins, есть права доступа к общей папке. У нас тоже есть аналогичное требование, учитывая сетевую зависимость и ограничение параллельного выполнения, мы установили агенты в соответствующих блоках, и мы выполняем локальное развертывание, используя подчиненное устройство Jenkins

0 голосов
/ 28 августа 2018

Попробуйте и переключите <publishUrl>\\<ip_address>\wwwroot</publishUrl> в свой каталог.

0 голосов
/ 22 августа 2018

Решено именно для этого подхода еще в 2015/16 году.

Это была моя установка:

  1. Публикация профиля для каждой целевой среды в веб-проектах, которые будут развернуты на удаленном компьютере (източка зрения мастера Jenkins) IIS сайты.
  2. Файл преобразования Web.config для каждой целевой среды
  3. Web Deploy 3.6, установленный на целевой машине IIS.
  4. ГарантированоЯ получаю "зеленую галочку", чтобы доказать возможность подключения в профиле публикации.(Обратите внимание, что вам может потребоваться переустановить Web Deploy для правильной работы. По какой-то причине Web Deploy не устанавливается правильно с первого раза)
  5. Строгие стандарты именования имен профилей, имен сайтов IIS и имен AppPool, так что все
  6. Я сделал 5, чтобы передать параметры из шага Jenkins Windows Batch (это была работа вольным стилем, прежде чем я полностью перешел на конвейер в текущей роли, которая началась в январе 2018 года), в два пакета DOSсценарий, который я написал для

    a) Удаленное управление целевым IIS (запуск / остановка сайтов и AppPools)

    b) Удаленное удаление текущего содержимого сайта перед повторным развертыванием MSBuild через Профиль публикации и MSBuild /p:DeployOnBuild.

Я использовал PSExec для достижения «удаленной» возможности и назвал ее частью пакетных сценариев DOS.

Я уверен, что вы могли бы добиться того жес Powershell, но принципы те же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...