티스토리 뷰

DevOps/System&Tools

Initialize Jenkins Authentication

jacobbaek Jacob_baek 2021. 4. 19. 21:53

LDAP연동을 한 Jenkins가 LDAP 연동과의 문제로 로그인이 불가한 상황이 있었다. 이와 같은 경우 UI상에서는 해결할수 있는 방법이 없어 이를 간단히 shell 상에서 변경하여 해결하는 방법을 기술하였다.

먼저 /var/jenkins_home/config.xml 파일을 확인하자. 해당파일이 실제 Configure Global Security에서 참조하는 파일이며 여기서 아래와 같은 useSecurity 항목을 수정해야 한다.
일반적으로 useSecurity element는 true로 설정되어 있을것이다.

 <useSecurity>true</useSecurity>

위 useSecurity를 false 로 아래와 같은 명령을 통해 변경하고

cd /var/jenkins_home/
cp config.xml config.xml_old
sed -i "s/useSecurity>true/useSecurity>false/" config.xml

Jenkins를 재시작하면 된다.
(만약 kubernetes 환경이라면 jenkins pod를 삭제하면 된다. 기본적으로 volume이 pv로 사용되게 되어 있어 삭제시에도 중요 데이터 파일이 삭제되지는 않는다. 다만 기존 설정이 변경될수 있으니 이는 조심해야 한다.)

재시작시 로그인 자체를 수행없이 관리메뉴까지 모두 보여지게 되므로 가급적 이슈해결용도로만 사용하고 계정을 새로 생성해서 접근을 제한하거나 빠르게 복구하는 과정을 거치는것이 좋다.

또한 추천하는 방식은 Jenkins Configuration as Code plugin을 통한 설정관리를 하는것이다.
yaml 파일로 코드방식의 관리가 가능하기에 재시작되거나 서비스 이상이 있을 경우 해당 파일만 변경해도 
서비스를 원복하는데 많은 도움이 된다. 
참고로 /var/jenkins_home/casc.yaml 파일이 default path이고 해당 파일을 복사하여 필요에 따라 관리가 가능하다.
댓글
댓글쓰기 폼