jenkins ldap 로그인 에러

# jenkins ldap 로그인이 안되거나 몇번씩 로그인을 시도해야 하는 경우가 발생한다.
# /var/log/jenkins/jenkins.log 또는
# http://ysoftman-jenkins/log/all 에서 로그인을 보면 ldap 인증에러가 발생했다.
org.acegisecurity.AuthenticationServiceException: LdapCallback;
ldap.ysoftman.com:389; socket closed; nested exception is javax.naming.ServiceUnavailableException: ldap.ysoftman.com:389; socket closed; remaining name '';

# 클라이언트(젠킨스)가 ldap 서버의 타임아웃에 비해 너무 길어서 생긴 이슈로 보이며,
# 젠킨스의 ldap 커넥션 풀 크기와 타임아웃을 작게 주도록 한다.
https://docs.oracle.com/javase/jndi/tutorial/ldap/connect/config.html

# 위 설명을 자세히 보면 java system properties 로 설정해야 된다고 나온다.
# 젠킨스 설정 파일에 다음과 같이 설정한다.

# ubuntu
sudo vi /etc/default/jenkins
# 또는
# centos
sudo vi /etc/sysconfig/jenkins
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dcom.sun.jndi.ldap.connect.pool.maxsize=20 -Dcom.sun.jndi.ldap.connect.pool.prefsize=10 -Dcom.sun.jndi.ldap.connect.pool.timeout=5000"

# jenkins 관리 -> "끄기전 준비" 를 켜서 잡이 실행되는 것을 막는다.
# 이제 jenkins 서버에 접속해 jenkins 서비스를 재시작하면 옵션이 적용된다.
sudo systemctl restart jenkins

# 옵션이 적용 확인
ps -ef | grep jenkins

comments:

댓글 쓰기