Jenkinsがユーザーをログアウトする前にタイムアウトウィンドウを増やす方法を知っている人はいますか?私はそれを1日かそこらに上げたいと思っています。
私は一日中ジェンキンスを出入りしており、ジョブの実行の間にログアウトし続けています。この不満に加えて、「ログイン状態を維持する」チェックボックスも機能しないようです。
JenkinsはJettyを使用し、 Jettyのデフォルトのタイムアウトは30分です 。これは認証設定とは無関係です。ActiveDirectoryを使用していますが、タイムアウトに影響するのはこの設定のままです。
引数--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以降、initスクリプトを介してjenkinsを起動するときに--sessionTimeout <minutes>
パラメーターを使用できます。戦争を開始する場合は、-DsessionTimeout=<minutes>
を渡します
1.6用に更新
引数として渡す場合は、--sessionTimeout=<minutes>
を使用します
grovyコンソールを使用して設定することも可能です:
import org.kohsuke.stapler.Stapler;
Stapler.getCurrentRequest().getSession().setMaxInactiveInterval(TIME_IN_SECONDS)
しかし、それは現在のセッションでのみ利用できると思います
このバージョンのJenkins 1.567には、自動更新を有効にするオプションもあるため、セッションの更新が継続され、ログアウトすることはありません。わたしにはできる...
Ubuntuの場合:
nano /etc/default/jenkins
ファイルの最後にJENKINS_ARGSを追加します。
JENKINS_ARGS="--webroot=/var/cache/$NAME/war --httpPort=$HTTP_PORT --sessionTimeout=1440 --sessionEviction=43200"
私の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