web-dev-qa-db-fra.com

Augmenter le délai de connexion Jenkins

Est-ce que quelqu'un sait comment augmenter le délai d'attente avant que Jenkins ne déconnecte un utilisateur? Je cherche à l'élever à 1 jour ou à peu près.

Je travaille dans et hors de Jenkins toute la journée et nous continuons à nous déconnecter entre les travaux. Ajouté à cette frustration, la case à cocher "rester connecté" ne semble pas fonctionner non plus.

63
Ray

Jenkins utilise Jetty et Le délai d'attente par défaut de Jetty est de 30 minutes . Ceci est indépendant des paramètres d'authentification - j'utilise Active Directory, mais c'est toujours ce paramètre qui affecte les délais d'expiration.

Vous pouvez remplacer le délai en transmettant un argument --sessionTimeout=<minutes> au script d'initialisation Jenkins ou -DsessionTimeout=<minutes> au fichier .war. Par exemple:

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

Alternativement, vous pouvez éditer le <jenkinsHome>/.jenkins/war/WEB-INF/web.xml de Jenkins et ajouter explicitement le définir:

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

Selon la documentation d'Oracle , vous pouvez définir cette valeur sur 0 pour désactiver complètement les délais.

Pour connaître la valeur actuelle des délais d'expiration, vous pouvez utiliser la console Groovy fournie dans Jenkins:

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

Sur mon exemple, cela montre Result: 30.

54
Wilfred Hughes

À partir de 1.528, vous pouvez utiliser le paramètre --sessionTimeout <minutes> lors du démarrage de jenkins via un script init. Si vous commencez la guerre, passez -DsessionTimeout=<minutes>

Mise à jour pour 1.6

Si vous passez comme argument, utilisez --sessionTimeout=<minutes>

11
cesar

À partir de la version 2.107.2 de Jenkins, vous voudrez inclure sessionEviction

Par exemple, pour garder les utilisateurs connectés pendant 24 heures et 12 heures d’inactivité:

--sessionTimeout=1440 --sessionEviction=43200

Si vous ne spécifiez pas sessionEviction, les personnes qui ferment l'onglet seront déconnectées au bout de 30 minutes.

8
jhuffaker

il semble également possible de le configurer en utilisant la console Grovy:

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

Mais je suppose qu'il ne sera disponible que pour la session en cours

6
Sven Keller

Cette version de Jenkins 1.567 dispose également de l'option d'activation de l'actualisation automatique. Elle actualise donc en permanence la session et ne me déconnecte jamais. Ça marche pour moi... 

2

Pour Ubuntu:

nano /etc/default/jenkins

Ajouter à JENKINS_ARGS à la fin du fichier:

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

Sur ma distribution Linux, ce paramètre peut être ajouté à/etc/sysconfig/jenkins

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

Par la suite, redémarrez avec

Sudo /etc/init.d/jenkins restart
0
Steve Jones