मेरे पास जेनकिन्स वर्क का उपयोग कर मास्टर/स्लेव कॉन्फ़िगरेशन में 2 RHEL मशीन सेटअप हैं। 1.60 9.2स्लेव SetupPlugin का उपयोग कर दास के पथ में कैसे जोड़ें?
दास एसएसएच गुलाम प्लगइन 1.10 के माध्यम से लॉन्च किया जा रहा है।
मैं अपने दास मशीन को चलाने के लिए आवश्यक टूल इंस्टॉल करने के लिए Slave Setup Plugin v 1.9 का उपयोग करने का प्रयास कर रहा हूं। विशेष रूप से मैं sqlplus स्थापित कर रहा हूँ।
if command -v sqlplus >/dev/null; then
echo "sqlplus already setup. Nothing to do."
else
#Create directory for sqlplus and unzip it there.
mkdir /jenkins/tools/sqlplus
tar -xvf sqlplussetup/instantclient-basiclite-linux.x64-12.1.0.2.0.tar.gz -C /jenkins/tools/sqlplus || { echo 'unzip failed' ; exit 1; }
tar -xvf sqlplussetup/instantclient-sqlplus-linux.x64-12.1.0.2.0.tar.gz -C /jenkins/tools/sqlplus || { echo 'unzip failed' ; exit 1; }
cd /jenkins/tools/sqlplus/instantclient_12_1
#Create links for the Oracle libs
ln -s libclntsh.so.12.1 libclntsh.so || { echo 'Could not create link' ; exit 1; }
ln -s libocci.so.12.1 libocci.so || { echo 'Could not create link' ; exit 1; }
#Add two lines to .bashrc only if they don't already exist. Export LD_LIBRARY_PATH and add sqlplus to PATH.
grep -q -F 'export LD_LIBRARY_PATH=/jenkins/tools/sqlplus/instantclient_12_1:$LD_LIBRARY_PATH' /home/jenkins/.bashrc || echo 'export LD_LIBRARY_PATH=/jenkins/tools/sqlplus/instantclient_12_1:$LD_LIBRARY_PATH' >> /home/jenkins/.bashrc
grep -q -F 'export PATH=$PATH:/jenkins/tools/sqlplus/instantclient_12_1' /home/jenkins/.bashrc || echo 'export PATH=$PATH:/jenkins/tools/sqlplus/instantclient_12_1' >> /home/jenkins/.bashrc
#Export variables so they can be used right away
export LD_LIBRARY_PATH=/jenkins/tools/sqlplus/instantclient_12_1:$LD_LIBRARY_PATH
export PATH=$PATH:/jenkins/tools/sqlplus/instantclient_12_1
echo "sqlplus has been setup."
fi
यह स्क्रिप्ट सफलतापूर्वक चलता है और सब कुछ काम करने के लिए प्रकट होता है जब तक मैं एक निर्माण चलाने के लिए और sqlplus
आदेश पर अमल करने का प्रयास करें:
यहाँ स्क्रिप्ट है कि मैं क्रम में चला रहा हूँ स्थापित करने sqlplus कोशिश करने के लिए है। बिल्ड विफल रहता है क्योंकि sqlplus
एक मान्यता प्राप्त कमांड नहीं है।
मेरा मुख्य प्रश्न यह है: दास लॉन्च करते समय स्वचालित रूप से पर्यावरण चर जोड़ने का उचित तरीका क्या है?
कृपया ध्यान दें कि मैं स्वचालित ऐसा करने का तरीका ढूंढ रहा हूं। मैं अपने दास के लिए कॉन्फ़िगरेशन स्क्रीन में नहीं जाना चाहता, चेकबॉक्स पर टिकटें और एक पर्यावरण चर निर्दिष्ट करें। यह उन चीज़ों के प्रति प्रतिकूल है जो मैं प्राप्त करने की कोशिश कर रहा हूं जो एक दास है जो एक बार जुड़े हुए निर्माण के लिए तत्काल प्रयोग योग्य है।
मुझे बहुत समझ में आता है कि मेरी स्क्रिप्ट क्यों काम नहीं करती है। जब जेनकींस गुलाम लॉन्च कर रहा है यह पहली बार एक SSH कनेक्शन बनाता है और फिर इसे आदेश
/bin/sh -xe /jenkins/tmp/hudson8035138410767957141.sh
कहाँ hudson8035138410767957141.sh
की सामग्री को ऊपर से मेरी स्क्रिप्ट है का उपयोग करते हुए अपना सेटअप स्क्रिप्ट चलाता है। तो जाहिर है, export
isn't going to work। मैं उम्मीद कर रहा था कि निर्यात को .bashrc
फ़ाइल में जोड़ना इस पर होगा लेकिन यह काम नहीं करता है। मैं सोचता हूं ऐसा इसलिए है क्योंकि एसएसएच कनेक्शन स्थापित होने के बाद यह स्क्रिप्ट निष्पादित की जाती है और इसलिए .bashrc
पहले ही पढ़ा जा चुका है।
समस्या यह है कि मैं इस सीमा के आसपास काम करने के किसी भी तरीके से नहीं समझ सकता।
हम वास्तविक नौकरियां चलाने से पहले चर सेट अप करने के लिए https://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin का उपयोग करते हैं। यदि आप प्रतिष्ठानों के बारे में कुछ सम्मेलनों का पालन करते हैं, तो इससे मदद मिल सकती है। – Jayan