Пользователь Jenkins получает «Отказано в доступе» при развертывании - PullRequest
0 голосов
/ 24 января 2019

Развертывание PDF-документации Jenkins выполняет простой командный файл:

@echo off
REM
REM Adapt the filepath as needed
REM
set PDF_OUTPUT_DIR="F:\svnWorkingCopy\kostra\trunk\DITA\__out_pdf"
set PDF_DEPLOY_DIR="\\FILE-SRV01\Austausch\Setup_Masterbuild\KOSTRA_AKVS\Deutsch\KostraAKVS"
del %PDF_DEPLOY_DIR%\KostraUserManual.pdf /F /Q
copy %PDF_OUTPUT_DIR%\kostra.pdf %PDF_DEPLOY_DIR%\KostraUserManual.pdf /Y

Выход с разрешения запрещен. Конец вывода на консоль (на немецком языке):

[kostra] $ cmd /c call C:\Windows\TEMP\jenkins1093559218605334188.bat

F:\svnWorkingCopy\kostra>F:\svnWorkingCopy\kostra\trunk\DITA\kostra-pdf-deploy.bat
Zugriff verweigert
        0 Datei(en) kopiert.
Build step 'Windows Batch-Datei ausführen' marked build as failure
Archiviere Artefakte
Discard old builds...
#111 is removed because old than numToKeep
Sending e-mails to: fjk@akgsoftware.de
Finished: FAILURE

Пользователь Jenkins - это пользователь, вошедший на эту машину (Win Server 2012 r2), и обладающий всеми правами Jenkins.

Если я открою CMD и выполню командный файл вручную, все пойдет нормально. Есть идеи, почему Дженкинс отказывается копировать файл? Есть ли способ получить более подробную ошибку сообщения. от Дженкинс?

Ответы [ 2 ]

0 голосов
/ 12 апреля 2019

Нашли решение для моей среды (Jenkins as Windows Service):

  1. Системный пользователь по умолчанию, назначенный службе Jenkins, должен быть изменен на зарегистрированного пользователя Windows.

  2. Даже после этого Jenkins как служба не знает о подключенных сетевых дисках, поэтому вы должны изменить их на UNC-пути, если вам необходимо выполнить развертывание в локальной сетевой папке.

0 голосов
/ 25 января 2019

Я вижу, вы запускаете Дженкинс на окнах. Сначала проверьте, разрешено ли пользователю, запустившему Jenkins, писать в вашем каталоге. Если это не так, перезапустите Jenkins с пользователем, которому разрешено писать в этот каталог.

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