Проблема разрешения java 7 знатока Jenkins

Я получаю эту ошибку при попытке сборки Знатока в Jenkins,

Building in workspace /var/lib/jenkins/workspace/xxxxprojectnamedeletedforprivacyxxxx
java.nio.file.AccessDeniedException: /usr/share/maven/lib/maven-settings-3.x.jar
    at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
    at sun.nio.fs.UnixFileSystemProvider.implDelete(UnixFileSystemProvider.java:244)
    at sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:103)
    at java.nio.file.Files.delete(Files.java:1079)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at hudson.Util.deleteFile(Util.java:247)
    at hudson.FilePath.deleteRecursive(FilePath.java:1202)
    at hudson.FilePath.deleteContentsRecursive(FilePath.java:1211)
    at hudson.FilePath.deleteRecursive(FilePath.java:1193)
    at hudson.FilePath.deleteContentsRecursive(FilePath.java:1211)
    at hudson.FilePath.deleteRecursive(FilePath.java:1193)
    at hudson.FilePath.access$1000(FilePath.java:191)
    at hudson.FilePath$14.invoke(FilePath.java:1172)
    at hudson.FilePath$14.invoke(FilePath.java:1169)
    at hudson.FilePath.act(FilePath.java:989)
    at hudson.FilePath.act(FilePath.java:967)
    at hudson.FilePath.deleteRecursive(FilePath.java:1169)
    at hudson.tools.JDKInstaller.performInstallation(JDKInstaller.java:130)
    at hudson.tools.InstallerTranslator.getToolHome(InstallerTranslator.java:68)
    at hudson.tools.ToolLocationNodeProperty.getToolHome(ToolLocationNodeProperty.java:107)
    at hudson.tools.ToolInstallation.translateFor(ToolInstallation.java:205)
    at hudson.model.JDK.forNode(JDK.java:130)
    at hudson.model.AbstractProject.getEnvironment(AbstractProject.java:351)
    at hudson.model.Run.getEnvironment(Run.java:2219)
    at hudson.model.AbstractBuild.getEnvironment(AbstractBuild.java:917)
    at hudson.maven.AbstractMavenBuild.getEnvironment(AbstractMavenBuild.java:56)
    at hudson.maven.MavenModuleSetBuild.getEnvironment(MavenModuleSetBuild.java:167)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:977)
    at hudson.scm.SCM.checkout(SCM.java:484)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1270)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:609)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:531)
    at hudson.model.Run.execute(Run.java:1718)
    at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:531)
    at hudson.model.ResourceController.execute(ResourceController.java:89)
    at hudson.model.Executor.run(Executor.java:240)
Finished: FAILURE

Я имею, переходят по ссылкам, и они владеют корнем, но с 777 полномочиями, так включите, чтобы все перешли по ссылке, реальный файл читается из всех.. так не уверенный, почему это происходит. какие-либо подсказки?

0
задан 29 January 2015 в 20:23
4 ответа

Похоже, вы пытаетесь удалить файл как часть своей сборки:

в java.nio.file.Files.delete (Files.java:1079)

Вам нужно будет настроить ваши разрешения соответственно, чтобы разрешить доступ для записи, а также для родительского пути и файла (ов), о котором идет речь. Лично я бы рекомендовал вам установить владельцем того же пользователя, от имени которого запускается Jenkins, и использовать chmod -R u + w, go-w , чтобы установить разрешения, позволяющие только этому пользователю вносить изменения.

0
ответ дан 4 December 2019 в 17:04

Вы управляете Дженкинс вручную или через сервис? Не рекомендуется запускать его вручную через java -jar /usr/share/jenkins/jenkins.war , но с помощью service jenkins start|stop. Когда вы запускаете его вручную, владелец сменяется пользователем, который запустил jenkins.war через java, сервис запускается под user:group jenkins.

Путь по умолчанию для jenkins (Debian/Ubuntu) должен быть /var/lib/jenkins/jobs/имя проекта/рабочее пространство, и все внутри /var/lib/jenkins/ должно принадлежать пользователю jenkins и группе jenkins (chown -R jenkins:jenkins /var/lib/jenkins/)

Также проверьте, правильно ли вы установили JDK и настроили ли вы его внутри проекта Jenkins.

.
1
ответ дан 4 December 2019 в 17:04

Если бы я должен был догадаться, похоже, что maven была установлена, скорее всего, root, и, следовательно, принадлежит root.

Если jenkins была установлена через любой менеджер пакетов, скорее всего, она запущена от имени пользователя "jenkins", который не будет иметь доступа к этой установке maven.

Просто подумайте - почему бы не настроить jenkins на установку/управление версией maven, которую вы хотите использовать?

Jenkins поместит нужную вам версию maven в место (основанное на пути /tools), к которому у него будет доступ.

.
0
ответ дан 4 December 2019 в 17:04

Я создал папку в /opt и установил разрешения, но этот путь должен быть настроен в вашем Jenkins:

sudo mkdir /opt/deploy_jenkins
sudo chmod -R a+rw deploy_jenkins/
0
ответ дан 18 March 2021 в 22:46

Теги

Похожие вопросы