오늘도 한 뼘 더

[Jenkins] Unable to read /var/jenkins_home/config.xml 본문

DevOps & Infra/Jenkins

[Jenkins] Unable to read /var/jenkins_home/config.xml

나른한댕댕이🐶 2023. 12. 21. 11:40
728x90
반응형

  # 배경  

도커로 올린 jenkins의 이미지를 변경하는 과정에서 다음과 같은 에러가 발생했다. 

Unable to read /var/jenkins_home/config.xml

 

  # 문제  

다음과 같은 에러 메시지가 뜨면서 Jenkins가 시작이 되지 않았다.

config.xml파일을 백업으로 이름을 변경하고 올리면 Jenkins가 재시작이 되었는데 문제는 설정이 다 초기화되는 상태였다.

---- Debugging information ----
cause-exception     : com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message       : hudson.security.GlobalMatrixAuthorizationStrategy
class               : hudson.model.Hudson
required-type       : hudson.model.Hudson
converter-type      : hudson.util.RobustReflectionConverter
path                : /hudson/authorizationStrategy
line number         : 12
version             : 2.426.2
-------------------------------
	at hudson.util.RobustReflectionConverter.doUnmarshal(RobustReflectionConverter.java:381)
	at hudson.util.RobustReflectionConverter.unmarshal(RobustReflectionConverter.java:289)
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:74)
	at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72)
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:68)
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:52)
	at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:136)
	at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
	at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1464)
	at hudson.util.XStream2.unmarshal(XStream2.java:230)
	at hudson.util.XStream2.unmarshal(XStream2.java:201)
	at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1441)
	at hudson.XmlFile.unmarshal(XmlFile.java:196)
Caused: java.io.IOException: Unable to read /var/jenkins_home/config.xml

 

 

  # 원인 및 해결방법  

## 원인

 

찾아보니 이 문제는 config 파일에서 hudson.security.GlobalMatrixAuthorizationStrategy를 인식하기 위해서는 Matrix Authorization Strategy 플러그인을 사용해야 했고 이를 위해서 Folders 플러그인이 업데이트가 되어야 했는데 Folder 플러그인이 업데이트가 되지 않아서 Matrix Authorization Strategy 플러그인을 사용할 수 없어서 config.xml 파일을 읽을 수가 없어서 동작하지 않는 것이었다.

 

## 해결 방법

  1. Jenkins 버전 업데이트
    Folders 플러그인 업데이트를 위해서는 jenkins 2.368 버전 이상이 필요하다고 하여 최신 버전으로 업데이트를 진행하였다.
  2. Folders 플러그인 업데이트
  3. Matrix Authorization Strategy 사용 가능 여부 확인

위 과정을 통해서 Jenkins가 다시 잘 동작하는 것을 확인하였다.

728x90
반응형
Comments