트러블슈팅

[jenkins] 설치 파일 권한 관련 오류

KidAnt 2024. 1. 29. 16:46

발단

  • 젠킨스를 서비스에 올리고 정상 작동을 확인하고 대시보드에 들어갈려고 링크를 넣으니 위의 오류가 발생했다
  • 코드 내용은 아래와 같다
jenkins.model.InvalidBuildsDir: ${ITEM_ROOTDIR}/builds does not exist and probably cannot be created
	at jenkins.model.Jenkins.checkRawBuildsDir(Jenkins.java:3471)
	at jenkins.model.Jenkins.loadConfig(Jenkins.java:3392)
Caused: java.io.IOException
	at jenkins.model.Jenkins.loadConfig(Jenkins.java:3396)
	at jenkins.model.Jenkins$12.run(Jenkins.java:3491)
	at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:177)
	at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:305)
	at jenkins.model.Jenkins$5.runTask(Jenkins.java:1170)
	at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:221)
	at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:120)
	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)
Caused: org.jvnet.hudson.reactor.ReactorException
	at org.jvnet.hudson.reactor.Reactor.execute(Reactor.java:290)
	at jenkins.InitReactorRunner.run(InitReactorRunner.java:49)
	at jenkins.model.Jenkins.executeReactor(Jenkins.java:1205)
	at jenkins.model.Jenkins.<init>(Jenkins.java:992)
	at hudson.model.Hudson.<init>(Hudson.java:86)
	at hudson.model.Hudson.<init>(Hudson.java:82)
	at hudson.WebAppMain$3.run(WebAppMain.java:247)
Caused: hudson.util.HudsonFailedToLoad
	at hudson.WebAppMain$3.run(WebAppMain.java:264)

조치

  • 확인 결과 해당 오류는 설치 파일 내에 권한이 꼬일때 발생하는 오류
  • 즉 'jenkins' 사용자 및 그룹이 아닌 다른 사용자 및 그룹의 파일 권한일때 읽지 못해 발생하는 오류이다.
ll
total 87520
drwxr-xr-x  3 root root     4096 Jan 29 15:14 ./
drwxrwxrwx  5 root root     4096 Jan 29 15:14 ../
drwxr-xr-x 11 root root     4096 Jan 29 16:09 .jenkins/
-rw-r--r--  1 root root 89542726 Jan 24 20:06 jenkins.war
-rw-r--r--  1 root root    55850 Jan 29 15:46 jenkins_0129.log
  • 그래서 젠킨스를 설치한 디렉토리를 확인해보니 위와 같이 root : root 상태로 되어있었다.
chown -R jenkins:jenkins $JENKINS_HOME
ll
total 87520
drwxr-xr-x  3 root    root        4096 Jan 29 15:14 ./
drwxrwxrwx  5 root    root        4096 Jan 29 15:14 ../
drwxr-xr-x 11 jenkins jenkins     4096 Jan 29 16:30 .jenkins/
-rw-r--r--  1 jenkins jenkins 89542726 Jan 24 20:06 jenkins.war
-rw-r--r--  1 root    root       55850 Jan 29 15:46 jenkins_0129.log
systemctl restart jenkins.service
  • 'chown -R jenkins:jenkins $JENKINS_HOME' 명령어를 사용하여 위와 같이 권한을 변경하고 재시작 해주었다

  • 정상으로 작동되는 것을 확인하였다

참고

https://stackoverflow.com/questions/50798720/jenkins-throwing-error-jenkins-model-invalidbuildsdir-item-rootdir-builds-d

 

Jenkins throwing error: jenkins.model.InvalidBuildsDir: ${ITEM_ROOTDIR}/builds does not exist and probably cannot be created

i updated Jenkins from apt command line on Ubuntu,i did sudo apt upgrade jenkins immediately after update i am getting this: jenkins.model.InvalidBuildsDir: ${ITEM_ROOTDIR}/builds does not exist a...

stackoverflow.com