Mam instalację Jenkins-ci na ściśnięciu Debiana.
Aktualna domyślna strefa czasowa: „America / Toronto” Czas lokalny jest teraz: Pon Jul 9 16:00:57 EDT 2012. Czas uniwersalny jest teraz: Pon 9 lipca 20:00:57 UTC 2012.
W pliku / etc / default / rcS mam:
UTC = nie
Niestety to nie działa, w systemie informacje o Jenkins:
user.timezone Etc / UTC
Szukałem przez kilka godzin .. niestety nie mogłem znaleźć poprawki, każda pomoc byłaby bardzo mile widziana.
Dziękuję za poświęcony czas
Odpowiedzi:
Musisz podać wymaganą wartość user.timezone jako argument JVM podczas uruchamiania Jenkinsa. Wiersz poleceń Java będzie wyglądał mniej więcej tak:
Niestety nie znam instalacji Debiana, ale parametry JVM powinny być zdefiniowane w skrypcie /etc/init.d/jenkins lub w pliku właściwości, do którego odwołuje się ten skrypt.
źródło
/etc/init.d/rc.local
. Prawdopodobnie zadziałałoby, gdybyś miał skrypt inicjujący Sysv do uruchomienia Jenkinsa. Istnieje kilka przykładów na stronie Jenkins.UTC=no
W/etc/default/rcS
nie ma nic wspólnego ze strefy czasowej na komputerze. Informuje, czy czas przechowywany w zegarze sprzętowym jest czasem lokalnym, czy czasem UTC. O dostosowywaniu czasu, używaniuntp
dowolnego innego demona NTP jako klienta, ponieważ będzie on powoli dostosowywał czas bez podróży w czasie.Trzy lata później znalazłem kilka gotch, które zaczęły działać. Opracuję na podstawie zaakceptowanej odpowiedzi (która jest poprawna) i dodam pełną odpowiedź dla CentOS.
Gotcha # 1: Ustawienia Jenkinsa do zmiany
Obecna dokumentacja Jenkinsa dotycząca zmiany strefy czasowej mówi o zdefiniowaniu
user.timezone
luborg.apache.commons.jelly.tags.fmt.timeZone
. Ale stwierdziłem, że oba są konieczne. Galaretka działa na właściwe Jenkins i niektóre wtyczki, podczas gdy użytkownik działa na inne wtyczki.Gotcha # 2: Ustawienia systemu operacyjnego do aktualizacji
W przypadku CentOS we wschodnich Stanach Zjednoczonych edytuj
/etc/sysconfig/jenkins
:Jeśli wprowadzisz te
-D
ustawieniaJENKINS_ARGS
, to nie będzie działać.Gotcha # 3: Ponowne uruchomienie
Musisz ponownie uruchomić z wiersza polecenia całą usługę. Samo bezpieczne ponowne uruchomienie Jenkinsa nie jest wystarczające. Więc:
Po wykonaniu wszystkich tych czynności sprawdź, czy oba ustawienia strefy czasowej są zgodne w panelu informacyjnym systemu Jenkins: http://jenkins.example.com/systemInfo
źródło
W Ubuntu 14.04 żadne z powyższych rozwiązań nie działało dla mnie, ale ostatecznie uruchomiłem następujące polecenie, które wyświetla interfejs, w którym strefę czasową można zmienić z domyślnej (nie wybrano) na coś bardziej szczegółowego:
sudo dpkg-reconfigure tzdata
Najpierw zostaniesz poproszony o wybranie kontynentu (tj. Ameryki, Azji itp.), A następnie miasta, co w moim przypadku spowodowało powstanie „Azji / Kalkuty” dla strefy czasowej IST w Indiach.
Zobacz UbuntuTime - Korzystanie z wiersza poleceń .
Ponadto po zmianie strefy czasowej ponownie uruchomiłem Jenkins:
sudo /etc/init.d/jenkins stop sudo /etc/init.d/jenkins start
a następnie zweryfikował, że czas jest w lokalnym czasie IST. W
http://<yourservername>/systemInfo
, jak podał biskup użytkownika, w sekcji Właściwości systemu dla właściwości „user.timezone” widzę teraz „Asia / Kalkuta” jako jej wartość.źródło
Jeśli korzystasz z Jenkinsa w Apache Tomcat, dodaj je do <Katalog Apache-Tomcat> /conf/catalina.properties:
Oba są potrzebne.
źródło
Jeśli dotyczy to wykonywania zadań na podstawie harmonogramu cron (tj. Kompiluj okresowo), możesz ustawić Strefę czasową w harmonogramie cron dla poszczególnych zadań:
źródło
W przypadku jenkins v2.73.3 na CentOS 7.1 (w oknie dokowanym) stwierdziliśmy, że musisz mieć jedno i drugie
1. ustaw strefę czasową systemu operacyjnego, np. „Ln -sf / usr / share / zoneinfo / Asia / Jakarta / etc / localtime” i
2. pod Manage Jenkins ustawić strefę czasową np. „Asia / Jakarta”.
Po zwykłym jenkins: xxxx / restart używana jest nowa strefa czasowa.
źródło
Dodanie odpowiedzi opisującej sytuację podczas uruchamiania jenkins w kontenerze dokowanym pod CentOS . W takim przypadku opcje mogą nie zostać ustawione w / etc / sysconfig / jenkins (w zależności od skryptów startowych usługi jenkins). Skrypt jenkins.sh służy do uruchomienia usługi jenkins. Ten skrypt jenkins.sh jest podobny do skryptu używanego w projekcie jenkins-inside-docker, więc ta odpowiedź jest, mam nadzieję, przydatna dla wszelkich jenkins w projektach dokerów z tego wynikających.
https://github.com/jenkinsci/docker/blob/master/jenkins.sh
Poniżej otrzymujemy TZ np. Europa / Dublin i przekazujemy -e $ TZ do uruchomienia dockera, abyśmy mogli mieć skrypt zapisujący to do / etc / timezone lub links / etc / localtime, ale ważną rzeczą jest przekazanie tych dwóch argumentów w JAVA_OPTS: „-Dorg.apache.commons.jelly.tags.fmt.timeZone = $ TZ -Duser.timezone = $ TZ”. Skrypt jenkins.sh przekazuje je do wiersza poleceń, który uruchamia proces jenkins.
Na hoście dokera podczas tworzenia przykładu kontenera polecenia uruchamiania dokera:
Opcje przekazano w zmiennej dokera w komendzie uruchamiania dokera, a następnie przekazano do komendy jenkins start.
źródło