J'ai une installation Jenkins-ci sur une compression Debian.
Fuseau horaire par défaut actuel: 'America / Toronto' L'heure locale est maintenant: Lun 9 juil 16:00:57 EDT 2012. L'heure universelle est maintenant: lun. Juil. 9 20:00:57 UTC 2012.
Dans le fichier / etc / default / rcS, j'ai:
UTC = non
Malheureusement, cela ne fonctionne pas, dans les informations système de jenkins:
user.timezone Etc / UTC
J'ai cherché pendant quelques heures .. malheureusement, je n'ai pas trouvé de correctif, toute aide serait grandement appréciée.
Merci pour votre temps
Réponses:
Vous devez transmettre la valeur requise de user.timezone comme argument JVM lorsque vous démarrez Jenkins. La ligne de commande Java ressemblera à quelque chose comme:
Malheureusement, je ne connais pas l'installation de Debian, mais les paramètres JVM doivent être définis dans le script /etc/init.d/jenkins ou dans un fichier de propriétés référencé à partir de ce script.
la source
/etc/init.d/rc.local
. Aurait probablement fonctionné si vous aviez un script d'initialisation Sysv pour démarrer Jenkins. Il y a quelques exemples sur le site Web de Jenkins. LeUTC=no
en/etc/default/rcS
n'a rien à voir avec fuseau horaire sur votre machine. Il indique si l'heure stockée dans l'horloge matérielle est l'heure locale ou l'heure UTC. A propos du réglage de l'heure, de l'utilisationntp
ou de tout autre démon NTP en tant que client, car il ajustera lentement l'heure sans voyager dans le temps.Trois ans plus tard, j'ai trouvé plusieurs pièges pour que cela fonctionne. Je vais donc développer la réponse acceptée (qui est correcte) et ajouter une réponse complète pour CentOS.
Gotcha # 1: Les paramètres Jenkins à modifier
La documentation Jenkins actuelle sur le changement de fuseau horaire dit de définir
user.timezone
ouorg.apache.commons.jelly.tags.fmt.timeZone
. Mais, j'ai trouvé que les deux sont nécessaires. La gelée fonctionne pour Jenkins et certains plugins, tandis que celle de l'utilisateur fonctionne pour d'autres plugins.Gotcha # 2: Les paramètres du système d'exploitation à mettre à jour
Pour CentOS dans l'est des États-Unis, modifiez
/etc/sysconfig/jenkins
pour:Si vous définissez ces
-D
paramètresJENKINS_ARGS
, cela ne fonctionnera pas.Gotcha # 3: redémarrage
Vous devez redémarrer à partir de la ligne de commande, l'ensemble du service. Le simple fait de redémarrer en toute sécurité Jenkins n'est pas suffisant. Donc:
Lorsque vous avez fait tout cela, vérifiez que les deux paramètres de fuseau horaire correspondent dans votre panneau d'informations système Jenkins: http://jenkins.example.com/systemInfo
la source
Dans Ubuntu 14.04, aucune des solutions ci-dessus n'a fonctionné pour moi, mais j'ai fini par exécuter la commande suivante, qui tire une interface où le fuseau horaire peut être changé de la valeur par défaut (aucune sélectionnée) à quelque chose de plus spécifique:
sudo dpkg-reconfigure tzdata
Tout d'abord, vous êtes invité à sélectionner le continent (c'est-à-dire l'Amérique, l'Asie, etc.), puis la ville, ce qui dans mon cas a abouti à "Asia / Kolkata" pour le fuseau horaire IST en Inde.
Voir UbuntuTime - Utilisation de la ligne de commande .
De plus, après avoir changé le fuseau horaire, j'ai redémarré Jenkins:
sudo /etc/init.d/jenkins stop sudo /etc/init.d/jenkins start
puis vérifié que l'heure était en heure locale IST. Dans
http://<yourservername>/systemInfo
, comme fourni par l'utilisateur bishop, sous la section Propriétés système, pour la propriété "user.timezone", je vois maintenant "Asia / Kolkata" comme sa valeur.la source
Si vous exécutez Jenkins dans Apache Tomcat, ajoutez-les à <Apache-Tomcat-Dir> /conf/catalina.properties:
Les deux sont nécessaires.
la source
Si cela se rapporte à l'exécution de travaux basés sur un calendrier cron (c'est-à-dire Build périodiquement), vous pouvez définir votre fuseau horaire dans le calendrier cron par travail:
la source
Pour Jenkins v2.73.3 sur CentOS 7.1 (dans Docker), nous avons constaté que vous devez à la fois
1. définissez le fuseau horaire du système d'exploitation, par exemple «ln -sf / usr / share / zoneinfo / Asia / Jakarta / etc / localtime» et
2. sous Manage Jenkins, définissez le fuseau horaire, par exemple 'Asia / Jakarta'.
Après un jenkins régulier: xxxx / restart, le nouveau fuseau horaire est utilisé.
la source
Ajout d'une réponse pour couvrir la situation lors de l' exécution de Jenkins dans un conteneur Docker sous CentOS . Dans ce cas, les options peuvent ne pas être définies dans / etc / sysconfig / jenkins (en fonction de vos scripts de démarrage du service jenkins). Un script jenkins.sh est utilisé pour démarrer le service jenkins. Ce script jenkins.sh est similaire à celui utilisé par le projet jenkins-inside-docker, donc cette réponse est, espérons-le, utile à tous les jenkins dans les projets docker qui en découlent.
https://github.com/jenkinsci/docker/blob/master/jenkins.sh
Ci-dessous, nous obtenons TZ, par exemple Europe / Dublin et passons -e $ TZ à Docker Run afin que nous puissions avoir un script qui l'écrit dans / etc / timezone ou lie / etc / localtime mais l'important est de passer ces deux arguments dans JAVA_OPTS: "-Dorg.apache.commons.jelly.tags.fmt.timeZone = $ TZ -Duser.timezone = $ TZ". Le script jenkins.sh les transmet à la ligne de commande qui démarre le processus jenkins.
Sur l'hôte docker lors de la création de l'exemple de conteneur de la commande runer docker:
Les options ont été passées dans la variable docker dans la commande docker run, puis passées à la commande jenkins start.
la source