জেনকিনস সিআই কীভাবে ডেবিয়ান স্কুজে ইউটিসির পরিবর্তে স্থানীয় সময় ব্যবহার করতে পারেন


15

আমার একটি জেনকিনস-সিআই ইনস্টলস রয়েছে একটি ডেবিয়ান স্কুজে।

বর্তমান ডিফল্ট সময় অঞ্চল: 'আমেরিকা / টরন্টো'
স্থানীয় সময় এখন: সোম 9 জুলাই 16:00:57 ইডিটি 2012।
ইউনিভার্সাল সময় এখন: সোম 9 জুলাই 20:00:57 ইউটিসি 2012।

আমার কাছে / ইত্যাদি / ডিফল্ট / আরসিএস ফাইলটিতে:

ইউটিসি = না

দুর্ভাগ্যক্রমে এটি কাজ করছে না, জেনকিনগুলির সিস্টেম তথ্যতে:

ইউজার.টাইমজোন ইসি / ইউটিসি

আমি কয়েক ঘন্টা অনুসন্ধান করেছি .. দুর্ভাগ্যক্রমে কোনও সমাধান খুঁজে পেলাম না কোনও সাহায্যের প্রশংসা হবে।

আপনার সময় জন্য ধন্যবাদ


2
.5.৫ বছর পরে, আমি এখনও দেখতে চাইলে যে সময় নির্ধারণ করতে চাইছি সেট করতে আমার ব্যবহারকারী প্রোফাইলটি কনফিগার করতে পারি না।
mkaatman

উত্তর:


16

আপনি জেনকিনস শুরু করার সময় আপনাকে জেভিএম যুক্তি হিসাবে ইউটিআর টাইমজোন আপনার প্রয়োজনীয় মানটি পাস করতে হবে। জাভা কমান্ড লাইনটি এর মতো দেখতে পাবেন:

$JAVA_HOME/java -Duser.timezone="America/Toronto" [other JVM parameters] $JENKINS_HOME/jenkins.jar

দুর্ভাগ্যক্রমে আমি দেবিয়ান ইনস্টলেশনের সাথে পরিচিত নই, তবে জেভিএম প্যারামিটারগুলি হয় /etc/init.d/jenkins স্ক্রিপ্টে বা সেই স্ক্রিপ্ট থেকে রেফারেন্সযুক্ত কোনও সম্পত্তি ফাইলে সংজ্ঞায়িত করা উচিত।


এটি নিখুঁতভাবে কাজ ধন্যবাদ।
ড্র্যাগ করুন

1
আমাকে অবশ্যই যুক্ত করতে হবে, জেনকিনস অতীতে টাইম ট্রাভেল পছন্দ করবেন না: শেষ স্যসাস: -322 এমএস (# 30)
ড্রেন

1
আরো দেখুন stackoverflow.com/questions/8777111/jenkins-show-wrong-time/... , উত্তর মূলত থেকে উত্পন্ন সঙ্গে wiki.jenkins-ci.org/display/JENKINS/Change+time+zone
মাইকেল

1
সেন্টোস / রেল-এ, আপনি / ইত্যাদি / সিসকনফিগ / জেনকিনস সেট করতে পারেন: জেনকিনস_জেভা_অপশন = "- ডুজার.টাইমজোন = আমেরিকা / নিউ_ইয়র্ক"
নন্দোপ

1
আমি বিশ্বাস করি না ডেবিয়ান সঠিকভাবে সময় অঞ্চল স্থাপন করেছে /etc/init.d/rc.local। জেনকিন্স শুরু করার জন্য সম্ভবত আপনার সাথে কাজ করেছেন সিসভ ইনডি স্ক্রিপ্ট। জেনকিন্স ওয়েবসাইটে কয়েকটি উদাহরণ রয়েছে। UTC=noমধ্যে /etc/default/rcSআপনার মেশিনে সময় অঞ্চল সঙ্গে কিছুই করার আছে। এটি বলছে যে হার্ডওয়্যার ঘড়িতে সঞ্চিত সময়টি স্থানীয় সময় বা ইউটিসি সময়। সময়, ব্যবহার ntpবা ক্লায়েন্ট হিসাবে অন্য কোনও এনটিপি-ডেমন সামঞ্জস্য করার বিষয়ে, কারণ এটি সময় ভ্রমণ ছাড়াই আস্তে আস্তে সময়কে সামঞ্জস্য করবে।
অ্যান্ডার্স

9

তিন বছর পরে, আমি বেশ কয়েকটি গোচা এটি কাজ করতে দেখলাম। সুতরাং, আমি স্বীকৃত উত্তরটি বিস্তারিতভাবে জানাব (যা সঠিক) এবং সেন্টোসের জন্য একটি সম্পূর্ণ উত্তর যুক্ত করব।


গোচা # 1: জেনকিন্স সেটিংস পরিবর্তন করতে

সময় অঞ্চল পরিবর্তন করার বিষয়ে বর্তমান জেনকিনস ডকুমেন্টেশন user.timezone বা সংজ্ঞায়িত করতে বলে org.apache.commons.jelly.tags.fmt.timeZone। তবে, আমি খুঁজে পেয়েছি যে উভয়ই প্রয়োজনীয়। জেলি একটি জেনকিন্স যথাযথ এবং কিছু প্লাগইনগুলির জন্য কাজ করে, অন্যদিকে ব্যবহারকারী অন্য প্লাগইনগুলির জন্য কাজ করে।


গোছা # 2: ওএস সেটিংস আপডেট করার জন্য

পূর্ব মার্কিন যুক্তরাষ্ট্রের সেন্টোসের জন্য, এতে সম্পাদনা /etc/sysconfig/jenkinsকরুন:

JENKINS_JAVA_OPTIONS="-Dorg.apache.commons.jelly.tags.fmt.timeZone=America/New_York -Duser.timezone=America/New_York"
JENKINS_ARGS=""

আপনি যদি এই -Dসেটিংসটি intoোকান তবে JENKINS_ARGSএটি কার্যকর হবে না।


গোচা # 3: পুনঃসূচনা হচ্ছে

আপনাকে কমান্ড লাইন, পুরো পরিষেবাটি থেকে পুনরায় চালু করতে হবে। কেবল একটি জেনকিন্স নিরাপদ পুনঃসূচনা করা যথেষ্ট নয় । তাই:

sudo service jenkins restart

আপনি যখন এই সব কাজ করেছি, চেক যে উভয় সময়ের অঞ্চল সেটিংস আপনার জেনকিন্স সিস্টেম তথ্য প্যানেলে মেলে: http://jenkins.example.com/systemInfo


1
এটি সেন্টোসের অধীনে ডকার পাত্রে জেনকিনগুলি চালানোর ক্ষেত্রে সহায়তা করেছে তবে / ইত্যাদি / সিসকনফিগ / জেনকিনসে সেট না করা বিকল্পগুলি। বিকল্পগুলি ডকার রান কমান্ডে ডকার ভেরিয়েবলে পাস হয়েছিল এবং তারপরে জেনকিন্স স্টার্ট কমান্ডে প্রেরণ করা হয়েছিল।
গাইতে

7

উবুন্টু ১৪.০৪-তে, উপরের কোনও সমাধান আমার পক্ষে কাজ করে নি, তবে আমি নীচের কমান্ডটি চালিয়ে গিয়েছি, যা একটি ইন্টারফেস নিয়ে গেছে যেখানে টাইমজোনটি ডিফল্ট (কোনও নির্বাচিত নয়) থেকে আরও নির্দিষ্ট কিছুতে পরিবর্তন করা যেতে পারে:

sudo dpkg-reconfigure tzdata

প্রথমে আপনাকে মহাদেশ, (যেমন আমেরিকা, এশিয়া, ইত্যাদি) এবং তারপরে শহরটি বেছে নেওয়ার জন্য অনুরোধ জানানো হয়েছে, যা আমার ক্ষেত্রে ভারতের আইএসটি টাইমজোনটির জন্য "এশিয়া / কলকাতা" তৈরি করেছিল।

উবুন্টুটাইম - কমান্ড লাইন ব্যবহার করে দেখুন ।

এছাড়াও, সময় অঞ্চল পরিবর্তন করার পরে, আমি জেনকিন্স পুনরায় চালু করেছি:

sudo /etc/init.d/jenkins stop sudo /etc/init.d/jenkins start

এবং তারপরে যাচাই করা হয়েছিল যে সময়টি স্থানীয় আইএসটি সময় ছিল। ইন http://<yourservername>/systemInfo, যেমন সিস্টেমের বৈশিষ্ট্য ধারার অধীন, ব্যবহারকারী বিশপ দ্বারা উপলব্ধ, "user.timezone" সম্পত্তি জন্য, আমি এখন "এশিয়া / কলকাতা" এর মান হিসেবে দেখতে।


2

আপনি যদি অ্যাপাচি টমক্যাটে জেনকিনগুলি চালাচ্ছেন তবে এগুলিকে <অ্যাপাচি- টমক্যাট-ডির> / কনফ / কেটালিনা.প্রোপার্টি যুক্ত করুন:

user.timezone=America/New_York
org.apache.commons.jelly.tags.fmt.timeZone=America/New_York

দুটোই দরকার।


2

যদি এটি ক্রোন শিডিয়ুলের ভিত্তিতে কাজের নির্বাহের সাথে সম্পর্কিত হয় (যেমন পর্যায়ক্রমে বিল্ড করুন), আপনি প্রতি কাজের ভিত্তিতে ক্রোন শিডিউলে আপনাকে সময় অঞ্চল নির্ধারণ করতে পারেন:

TZ=Europe/Dublin
0 7 * * 1-5

0

জেনকিন্স v2.73.3 এর জন্য CentOS 7.1 এ (ডকারে) আমরা খুঁজে পেয়েছি যে আপনি উভয়কেই রাখতে পারেন

১. ওএসের সময় অঞ্চল নির্ধারণ করুন যেমন 'এলএনএসএস / ইউএসআর / শেয়ার / জোনিনফো / এশিয়া / জাকার্তা / ইত্যাদি / স্থানীয় সময়' এবং

২. জেনকিন্স ম্যানেজ এর আওতায় টাইমজোন যেমন 'এশিয়া / জাকার্তা' সেট করুন

নিয়মিত জেনকিনের পরে: এক্সএক্সএক্সএক্সএক্স / পুনরায় চালু করার সময় নতুন টাইমজোন ব্যবহৃত হয়।


0

CentOS এর অধীনে ডকার পাত্রে জেনকিনগুলি চলাকালীন পরিস্থিতিটি কভার করার জন্য একটি উত্তর যুক্ত করা হচ্ছে । এই ক্ষেত্রে বিকল্পগুলি / etc / sysconfig / jenkins এ সেট নাও করা যেতে পারে (আপনার জেনকিনস পরিষেবা শুরু স্ক্রিপ্টগুলির উপর নির্ভর করে)। জেনকিনস.এস স্ক্রিপ্টটি জেনকিনস পরিষেবা শুরু করতে ব্যবহৃত হয়। এই জেনকিনস.এস স্ক্রিপ্টটি জেনকিনস-ইন-ডকার প্রকল্প দ্বারা ব্যবহৃত একইরকম তাই এই উত্তরটি ডকার প্রজেক্টগুলিতে যে কোনও জেনকিনদের পক্ষে আশাবাদী is

https://github.com/jenkinsci/docker/blob/master/jenkins.sh

নীচে আমরা টিজেড পেয়েছি যেমন ইউরোপ / ডাবলিন এবং পাস -e $ ডকের দৌড়ের জন্য টিজেড যাতে আমাদের কাছে একটি স্ক্রিপ্ট থাকতে পারে যাতে / ইত্যাদি / টাইমজোন বা লিঙ্কগুলি / ইত্যাদি / স্থানীয় সময় লেখা যায় তবে গুরুত্বপূর্ণ বিষয়টি জাভাএওপিটিএসে এই দুটি আর্গুমেন্টটি পাস করছে: "-Dorg.apache.commons.jelly.tags.fmt.timeZone = $ TZ -Duser.Timezone = $ TZ"। Jenkins.sh স্ক্রিপ্ট এগুলি কমান্ড-লাইনে পাস করে যা জেনকিনস প্রক্রিয়া শুরু করে।

ডকার হোস্টে ডকার রান কমান্ডের ধারক উদাহরণ তৈরি করার সময়:

TZFILE=$(readlink -f /etc/localtime)
TZ=$(echo $TZFILE|sed s#.*zoneinfo\/##)
TZARG=" -e $TZ "

ID=$(docker run $TARG \
-d \
--user=jenkins \
--name jenkins-${USER} \
--restart always \
-p $HOST_IP:$JENKINS_PORT:${JENKINS_PORT_INTERNAL} \
-p $HOST_IP:$JENKINS_SLAVE_PORT:50000 \
$TZARG \
--env JAVA_OPTS="-Dhudson.Main.development=true \
    -Dhudson.footerURL=$JENKINS_URL \
    -Dorg.apache.commons.jelly.tags.fmt.timeZone=$TZ -Duser.timezone=$TZ \
    -Xms800M -Xmx800M -Xmn400M \
    " \
--env JENKINS_HOME=/var/jenkins_home \
-v $JENKINS_DIR:/var/jenkins_home \
$VARGS \
$ADDITIONALARGS \
$IMAGE \
/bin/tini /usr/local/bin/jenkins.sh \
)
echo "INFO: container ID:$ID" |tee JENKINS.CONTAINER.ID

বিকল্পগুলি ডকার রান কমান্ডে ডকার ভেরিয়েবলে পাস হয়েছিল এবং তারপরে জেনকিন্স স্টার্ট কমান্ডে প্রেরণ করা হয়েছিল।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.