[jenkins] Jenkins 로그인 시간 제한 늘리기

Jenkins가 사용자를 로그 아웃하기 전에 시간 초과 창을 늘리는 방법을 아는 사람이 있습니까? 1 일 정도 올리려고합니다.

나는 하루 종일 젠킨스에서 일하고 일하며 작업을 실행하는 사이에 계속 로그 아웃됩니다. 이 좌절감에 더해 ‘로그인 상태 유지’확인란도 작동하지 않는 것 같습니다.



답변

Jenkins는 Jetty를 사용하고 Jetty의 기본 제한 시간은 30 분 입니다. 이것은 인증 설정과 무관합니다. Active Directory를 사용하지만 시간 제한에 영향을 미치는 것은 여전히이 설정입니다.

--sessionTimeout=<minutes>Jenkins init 스크립트 또는 -DsessionTimeout=<minutes>.war 파일에 인수 를 전달하여 시간 제한을 재정의 할 수 있습니다 . 예를 들면 :

# Set the session timeout to 1 week
$ java -jar jenkins.war --sessionTimeout=10080

또는 Jenkins를 편집 <jenkinsHome>/.jenkins/war/WEB-INF/web.xml하고 명시 적으로 설정할 수 있습니다.

<session-config>
  <!-- one hour -->
  <session-timeout>60</session-timeout>
</session-config>

Oracle의 문서 에 따르면 이를 0으로 설정하여 시간 초과를 모두 비활성화 할 수 있습니다.

제한 시간의 현재 값을 찾으려면 Jenkins에서 제공하는 Groovy 콘솔을 사용할 수 있습니다.

import org.kohsuke.stapler.Stapler;
Stapler.getCurrentRequest().getSession().getMaxInactiveInterval() / 60

제 경우에 이것은 Result: 30.


답변

Jenkins 버전 2.107.2부터 sessionEviction을 포함하고 싶을 것입니다.

예를 들어 사용자가 24 시간 동안 12 시간 동안 활동하지 않는 동안 로그인 상태를 유지하려면 :

--sessionTimeout=1440 --sessionEviction=43200

sessionEviction을 지정하지 않으면 탭을 닫은 사람들은 30 분 후에 로그 아웃됩니다.


답변

1.528 --sessionTimeout <minutes>부터는 init 스크립트를 통해 젠킨스를 시작할 때 매개 변수를 사용할 수 있습니다 . 전쟁을 시작한다면-DsessionTimeout=<minutes>

1.6 업데이트

인수로 전달하는 경우 --sessionTimeout=<minutes>


답변

그루비 콘솔을 사용하여 설정할 수도 있습니다.

import org.kohsuke.stapler.Stapler;
Stapler.getCurrentRequest().getSession().setMaxInactiveInterval(TIME_IN_SECONDS)

하지만 현재 세션에서만 사용할 수 있습니다.


답변

Ubuntu의 경우 :

nano /etc/default/jenkins

파일 끝에 JENKINS_ARGS 를 추가 합니다.

JENKINS_ARGS="--webroot=/var/cache/$NAME/war --httpPort=$HTTP_PORT --sessionTimeout=1440 --sessionEviction=43200"


답변

이 버전의 Jenkins 1.567에는 자동 새로 고침 활성화 옵션이 있으므로 어떻게 든 세션을 계속 새로 고치고 로그 아웃되지 않습니다. 그것은 나를 위해 작동합니다 …


답변

내 Linux 배포판에서이 설정을 / etc / sysconfig / jenkins에 추가 할 수 있습니다.

# Pass arbitrary arguments to Jenkins.
# Full option list: java -jar jenkins.war --help
#
JENKINS_ARGS="--sessionTimeout=480"

그런 다음

sudo /etc/init.d/jenkins restart