Jenkins होस्टिंग, कंट्रोलर और एजेंट अलग
प्राग या कोविल्हा में अपनी मशीन पर एक Jenkins कंट्रोलर, बिल्ड को उन एजेंटों को धकेला जाता है जहाँ उन्हें होना चाहिए - यह वह एकमात्र आकार सलाह है जो Jenkins प्रोजेक्ट देता है और जिसे अधिकांश इंस्टॉलेशन नज़रअंदाज़ करते हैं।
यह किसके लिए है
एक Jenkins जो किसी की डेस्क के नीचे रहता है
यह 2019 से बिल्ड कर रहा है, किसी को याद नहीं कि कौन-से प्लगइन मायने रखते हैं, और पूरी रिलीज़ प्रक्रिया एक डिस्क और बिना बैकअप वाले टावर पर निर्भर है।
एक कंट्रोलर जो अपनी बिल्ड चलाता है
executor को कंट्रोलर पर आवंटित किया गया था क्योंकि यह आसान था, और अब एक भारी जॉब वेब इंटरफ़ेस को भी अपने साथ नीचे ले जाता है - जिसे Jenkins दस्तावेज़ीकरण ठीक इन्हीं शब्दों में खराब प्रथा बताता है।
एक टीम जो होस्टेड CI में नहीं जा सकती
बारह साल की पाइपलाइनें, एक प्लगइन जिसे किसी ने नहीं बदला, और एक जॉब जो हार्डवेयर से बात करता है। Jenkins समस्या नहीं है; इसके नीचे की मशीन है।
आपकी अपनी मशीन आपको क्या देती है
- एक कंट्रोलर जो प्रतिक्रियाशील बना रहता है, क्योंकि बिल्ड वेब इंटरफ़ेस परोसने वाली चीज़ के बजाय एजेंटों पर चलते हैं।
- हर प्लगइन अपग्रेड से पहले स्नैपशॉट के साथ NVMe पर JENKINS_HOME, ताकि रोलबैक पूरी शाम के बजाय दो क्लिक में हो।
- अलग होस्ट के रूप में जोड़े गए और SSH या इनबाउंड प्रोटोकॉल पर जुड़े एजेंट, कंट्रोलर से अलग आकार के।
- AS204057 से एक स्थिर IPv4, ताकि एक आंतरिक रजिस्ट्री, आर्टिफ़ैक्ट स्टोर या डिप्लॉय लक्ष्य पते के अनुसार कंट्रोलर को अनुमति दे सके।
- आपको इसके साथ जो भी एजेंट चाहिए - बिल्ड के लिए Linux, जब किसी जॉब को चाहिए तो हमारे लाइसेंस के साथ Windows Server।
- टियर III फ़ैसिलिटी, एक शामिल बैकअप, और एक मशीन जो ऑफिस के एयर कंडीशनिंग पर निर्भर नहीं है।
पाइपलाइन वास्तव में क्या करती है उसके अनुसार आकार
Jenkins प्रोजेक्ट जानबूझकर एक एकल हार्डवेयर संख्या प्रकाशित करने से मना करता है, आकार निर्धारण को एक अनिश्चित विज्ञान कहता है, और कंट्रोलर मेमोरी को एक छोटी इंस्टॉल के लिए 200 MB से लेकर एक बड़ी के लिए 70 GB और उससे ज़्यादा कहीं भी रखता है। जो यह स्पष्ट रूप से कहता है वह यह है कि काम कहाँ जाता है: कंट्रोलर पर executor आवंटित न करें, क्योंकि एक बिल्ड इसे ओवरलोड कर सकती है और इसे गिरा सकती है। इसलिए कंट्रोलर का आकार इंटरफ़ेस, प्लगइन और जॉब इतिहास के लिए तय करें, और बिल्ड के लिए एजेंट जोड़ें। बिलिंग रूप पर एक चेतावनी: एक शांत हफ़्ते में एक फ़्लैट मासिक होस्ट उतना ही खर्च करता है, जहाँ होस्टेड CI मिनट कुछ खर्च नहीं करते - Jenkins आमतौर पर अधिकांश दिनों में चलता है, और यही ठीक वह जगह है जहाँ यह जीतता है।
Debian या Ubuntu पर Jenkins कैसे इंस्टॉल करें
स्थिर LTS लाइन, Jenkins प्रोजेक्ट की अपनी रिपॉज़िटरी से, वे जिस क्रम में दस्तावेज़ीकृत करते हैं उसमें। Java 21 या बाद का एक आवश्यकता है, सुझाव नहीं।
-
Java इंस्टॉल करें
sudo apt update sudo apt install fontconfig openjdk-21-jre java -versionJenkins को Java 21 या बाद का चाहिए। दस्तावेज़ीकृत कमांड में fontconfig इसके साथ आता है क्योंकि इमेज रेंडर करने वाले प्लगइन इसके बिना उलझन भरे तरीके से फ़ेल होते हैं।
-
Jenkins LTS रिपॉज़िटरी जोड़ें
sudo wget -O /etc/apt/keyrings/jenkins-keyring.asc \ https://pkg.jenkins.io/debian-stable/jenkins.io-2026.key echo "deb [signed-by=/etc/apt/keyrings/jenkins-keyring.asc]" \ https://pkg.jenkins.io/debian-stable binary/ | sudo tee \ /etc/apt/sources.list.d/jenkins.list > /dev/nulldebian-stable LTS लाइन है; साधारण debian पथ साप्ताहिक है। साइनिंग की को घुमाया जाता है, इसलिए किसी पुरानी गाइड के बजाय Jenkins पेज से वर्तमान फ़ाइल नाम लें।
-
इसे इंस्टॉल करें और शुरू करें
sudo apt update sudo apt install jenkins sudo systemctl enable jenkins sudo systemctl start jenkinsJenkins पोर्ट 8080 पर सुनता है और अपने jenkins उपयोगकर्ता के रूप में चलता है, जिसमें जो कुछ भी मायने रखता है वह /var/lib/jenkins के अंतर्गत है। वही डायरेक्टरी है जिसका आप स्नैपशॉट लेते हैं और बैकअप करते हैं।
-
पहले लॉगिन को अनलॉक करें
sudo cat /var/lib/jenkins/secrets/initialAdminPasswordसर्वर को पोर्ट 8080 पर खोलें और वह मान पेस्ट करें। इसे सेटअप करते समय पूरे इंटरनेट से पहुँच योग्य न छोड़ें - इसे हमारे VPN गेटवे के पीछे बांधें, या पहले पोर्ट 8080 को अपने ऑफिस के पते तक सीमित करें।
-
बिल्ड को कंट्रोलर से हटाएं
# Manage Jenkins -> Nodes -> Built-In Node -> set executors to 0 # then Manage Jenkins -> Nodes -> New Node for each agent hostयह वह एक आकार सलाह है जिसे Jenkins दस्तावेज़ीकरण खुलकर बताता है: कंट्रोलर पर executor आवंटित करने से एक बिल्ड इसे ओवरलोड कर सकती है और क्रैश कर सकती है। बिल्ट-इन नोड को शून्य executor पर सेट करें और एजेंट होस्ट जोड़ें, जिन्हें यह प्रति जॉब अनुकूलित करने के बजाय सामान्य और बदलने योग्य रखने की सिफ़ारिश करता है।
-
SSH पर एक एजेंट कनेक्ट करें
sudo -u jenkins ssh-keygen -t ed25519 -f /var/lib/jenkins/.ssh/agent sudo -u jenkins ssh-copy-id -i /var/lib/jenkins/.ssh/agent.pub jenkins@AGENT-HOSTनिजी चाबी को SSH Username with private key क्रेडेंशियल के रूप में जोड़ें, फिर SSH लॉन्च विधि से नोड बनाएं। हर एजेंट कनेक्शन कंट्रोलर को कुछ थ्रेड और 2 MB से थोड़ा ज़्यादा खर्च कराता है, इसलिए कुछ एजेंट कंट्रोलर का आकार तय नहीं करते - प्लगइन और जॉब इतिहास करते हैं।
आधिकारिक दस्तावेज़ीकरण के विरुद्ध जाँचा गया 2026-08-15 — स्रोत पढ़ें
हम क्या नहीं हैं
- हम Jenkins प्रोजेक्ट नहीं हैं। Jenkins Linux Foundation का ट्रेडमार्क है और सॉफ़्टवेयर उनका है; यहाँ कुछ भी उनके द्वारा समर्थित नहीं है। हम वह मशीन बेचते हैं जिस पर यह चलता है।
- हम आपके प्लगइन का रखरखाव नहीं करते। प्लगइन अपग्रेड ही वह जगह है जहाँ Jenkins इंस्टॉलेशन टूटते हैं, और यह जानने वाला व्यक्ति कि आपके 60 प्लगइनों में से कौन-से मायने रखते हैं वह आपकी ओर है - हालाँकि हर अपग्रेड से पहले स्नैपशॉट हमारी ओर से है।
- हम कीमत के हिस्से के रूप में आपके जॉब माइग्रेट नहीं करते। हम विंडो और JENKINS_HOME की कॉपी में मदद करेंगे, और यदि आप चाहते हैं कि यह मदद के बजाय पूरी तरह किया जाए तो बाकी के लिए कोट देंगे।
- यहाँ कोई प्रबंधित Jenkins कंट्रोल प्लेन नहीं है। यदि आप चाहते हैं कि अपग्रेड का स्वामित्व पूरी तरह से किसी और के पास हो, तो एक होस्टेड CI उत्पाद ईमानदार जवाब है और यह वह नहीं है।
- Windows एजेंटों को Windows Server लाइसेंस चाहिए, जो हम सर्वर पर उपलब्ध करा सकते हैं, लेकिन बिल्ड को जिस भी टूल लाइसेंस की ज़रूरत हो वह आपका ही रहता है।
वे हिस्से जो टीमें देर से खोजती हैं
- JENKINS_HOME पूरा इंस्टॉलेशन है - कॉन्फ़िगरेशन, जॉब इतिहास, क्रेडेंशियल, प्लगइन। इसका बैकअप लें और एक कंट्रोलर एक घंटे में फिर से बनाया जा सकता है; इसे छोड़ें और यह बिल्कुल भी नहीं बनाया जा सकता।
- हर प्लगइन अपग्रेड से पहले स्नैपशॉट लें। यह वह एकल परिवर्तन है जिसके एक कार्यशील Jenkins को गिराने की सबसे अधिक संभावना है, और एक स्नैपशॉट इसे दो-क्लिक रोलबैक में बदल देता है।
- कंट्रोलर पर शून्य executor दस्तावेज़ीकृत सिफ़ारिश है, पसंद नहीं। एक बिल्ड जो कंट्रोलर को ओवरलोड करती है वह वेब इंटरफ़ेस को भी अपने साथ ले जाती है।
- एजेंट को बदलने योग्य होना चाहिए। दस्तावेज़ीकरण प्रति जॉब एक विशेष रूप से कॉन्फ़िगर किए गए होस्ट के बजाय सामान्य, बदलने योग्य एजेंटों के लिए तर्क देता है, क्योंकि विशेष रूप से कॉन्फ़िगर किया गया वाला हमेशा वही होता है जो बंद है।
- पोर्ट 8080 अनलॉक्ड Jenkins छोड़ने की जगह नहीं है। इसे पहले लॉगिन से पहले VPN गेटवे या एड्रेस अनुमति सूची के पीछे रखें, बाद में नहीं।
- कंट्रोलर मेमोरी प्लगइन, जॉब संख्या और बिल्ड इतिहास के साथ बढ़ती है, बिल्ड कितनी कठिन हैं इसके साथ नहीं - वह लोड एजेंटों का है।
होस्टेड CI मिनट बनाम आपका अपना रनर
| प्रोवाइडर-होस्टेड CI मिनट | DCXV पर एक रनर | |
|---|---|---|
| आप किसके लिए भुगतान करते हैं | जब तक प्रोजेक्ट रहता है, हर जॉब के चलने का हर मिनट | उस महीने पाइपलाइन जो भी करे, एक फ़्लैट मासिक होस्ट |
| एक बिल्ड जो धीमी हो जाती है | हर महीने जब तक यह धीमी रहती है ज़्यादा खर्च होता है | और कुछ खर्च नहीं होता - मशीन का भुगतान पहले से हो चुका है |
| Docker लेयर कैश | जब तक आप इसे स्वयं अपलोड और डाउनलोड न करें हर जॉब पर कोल्ड | स्थानीय NVMe पर वार्म, जॉब्स के बीच और दिनों के बीच |
| समवर्तिता | एक प्लान स्तर जिसे आप अपग्रेड करते हैं | एक संख्या जिसे आप अपनी कॉन्फ़िगरेशन फ़ाइल में सेट करते हैं |
| चेकआउट कहाँ लैंड होता है | एक साझा फ्लीट, अक्सर एक ऐसे क्षेत्र में जिसे आप पिन नहीं कर सकते | प्राग या कोविल्हा में एक मशीन, एक साइप्रस अनुबंध के अंतर्गत |
| आउटबाउंड पता | एक बड़ी साझा रेंज जिसे कोई अनुमति नहीं दे सकता | AS204057 से एक स्थिर IPv4, अनुमति देने के लिए आपका |
| मशीन क्या रख सकती है | जो भी रनर इमेज संयोग से साथ में शिप हो | कोई भी टूलचेन, लाइसेंस या फ़िक्सचर सेट जिसे आप एक बार इंस्टॉल करते हैं |
यह आपके होस्ट पर कैसे शुरू होता है
बताएं कि पाइपलाइन क्या करती है
आज आप जो सबसे भारी जॉब चलाते हैं, एक साथ कितने चाहिए, और क्या यह कंटेनर इमेज बनाता है। बिना अनुमान लगाए होस्ट का आकार तय करने के लिए इतना पर्याप्त है।
हम मशीन सौंपते हैं
प्राग या कोविल्हा, रूट एक्सेस और एक स्थिर IPv4, दस मिनट से कम में। यदि रनर पहले से किसी इमेज में बना हुआ है तो अपनी इमेज लाएं।
इस पेज पर दिए गए वॉकथ्रू का पालन करें
यह विक्रेता का क्रम है, किसी ब्लॉग पोस्ट के बजाय उनके वर्तमान दस्तावेज़ीकरण से लिया गया है, और एक स्वच्छ होस्ट पर इसमें कुछ मिनट लगते हैं।
इसका स्नैपशॉट लें, फिर दूसरा जोड़ें
पहली पाइपलाइन के हरी होते ही एक स्नैपशॉट लें, ताकि अगली मशीन एक रीबिल्ड के बजाय एक रीस्टोर हो। एक पूल होस्ट जोड़कर बढ़ता है, एक को विशाल बनाकर नहीं।
हमें क्यों चुनें
- टियर III प्रमाणित फ़ैसिलिटी, 99.982% फ़ैसिलिटी SLA
- स्वयं का नेटवर्क, AS204057, IPv4 और IPv6 ड्यूल-स्टैक
- ~10 मिनट की औसत प्रतिक्रिया के साथ 24/7/365 सहायता
- साइप्रस कंपनी, EU क्षेत्राधिकार, 2007 से GDPR-अनुरूप
FAQ
- Ubuntu या Debian पर Jenkins इंस्टॉल करने के लिए मुझे क्या चाहिए?
Java 21 या बाद का, फिर Jenkins प्रोजेक्ट की apt रिपॉज़िटरी। fontconfig और openjdk-21-jre इंस्टॉल करें, pkg.jenkins.io से debian-stable keyring और sources लाइन जोड़ें, apt install jenkins, सेवा सक्षम करें और शुरू करें, फिर इसे /var/lib/jenkins/secrets/initialAdminPassword में मान से अनलॉक करें। Jenkins पोर्ट 8080 पर सुनता है। पूरा क्रम इस पेज पर है
- एक Jenkins कंट्रोलर को कितनी RAM चाहिए?
Jenkins प्रोजेक्ट जानबूझकर एक संख्या देने से मना करता है, आकार निर्धारण को एक अनिश्चित विज्ञान कहता है और कंट्रोलर मेमोरी को एक छोटी इंस्टॉलेशन के लिए 200 MB और एक बहुत बड़ी के लिए 70 GB या उससे ज़्यादा के बीच कहीं भी रखता है। इसे प्लगइन, जॉब संख्या और बिल्ड इतिहास बढ़ाते हैं, बिल्ड कितनी कठिन हैं यह नहीं - क्योंकि बिल्ड को कंट्रोलर पर नहीं चलना चाहिए। एक छोटी टीम के लिए 8 GB एक आरामदायक शुरुआत है
- क्या बिल्ड को Jenkins कंट्रोलर पर चलना चाहिए?
नहीं, और दस्तावेज़ीकरण सीधे तौर पर यह कहता है: एक कंट्रोलर पर executor आवंटित करना खराब प्रथा है क्योंकि एक बिल्ड इसके CPU या मेमोरी को ओवरलोड कर सकती है और इसे क्रैश कर सकती है। बिल्ट-इन नोड को शून्य executor पर सेट करें और एजेंट जोड़ें। प्रोजेक्ट प्रति जॉब एक होस्ट अनुकूलित करने के बजाय एजेंटों को सामान्य और बदलने योग्य रखने की भी सिफ़ारिश करता है
- मैं Jenkins का बैकअप कैसे लूँ?
JENKINS_HOME, जो एक पैकेज इंस्टॉल पर /var/lib/jenkins है, पूरा इंस्टॉलेशन है: कॉन्फ़िगरेशन, जॉब परिभाषाएं, बिल्ड इतिहास, क्रेडेंशियल और प्लगइन। इसका बैकअप लें और एक कंट्रोलर एक घंटे में फिर से बनाया जा सकता है। यहाँ हर प्लान में एक बैकअप शामिल है, और हर प्लगइन अपग्रेड से पहले एक स्नैपशॉट उस परिवर्तन को जिसके Jenkins को तोड़ने की सबसे ज़्यादा संभावना है दो-क्लिक रोलबैक में बदल देता है
- मैं एक बिल्ड एजेंट कैसे कनेक्ट करूँ?
सामान्य मार्ग SSH है: jenkins उपयोगकर्ता के रूप में एक चाबी जनरेट करें, सार्वजनिक आधा एजेंट होस्ट पर रखें, निजी आधा एक SSH क्रेडेंशियल के रूप में जोड़ें और SSH लॉन्च विधि से नोड बनाएं। हर एजेंट कनेक्शन कंट्रोलर को कुछ थ्रेड और 2 MB से थोड़ा ज़्यादा खर्च कराता है, इसलिए एजेंट कंट्रोलर का आकार तय नहीं करते
- क्या पोर्ट 8080 पर Jenkins छोड़ना सुरक्षित है?
खुले इंटरनेट पर नहीं। पहले लॉगिन से पहले इसे हमारे VPN गेटवे के पीछे रखें या पोर्ट को अपने पतों तक सीमित करें, बाद में नहीं - प्रारंभिक एडमिन पासवर्ड एक सर्वर पर एक फ़ाइल में है जो, जब तक आप ऐसा नहीं करते, पूरी दुनिया को जवाब दे रहा है। AS204057 से एक स्थिर IPv4 दूसरी ओर की अनुमति सूची को भी सीधा बनाता है
यदि आपको सहायता चाहिए या अतिरिक्त प्रश्न हैं, तो कृपया मैनेजरों से संपर्क करें या सहायता टीम को इस पते पर लिखें support@dcxv.com
शुरू करने के लिए तैयार हैं?
- मासिक बिलिंग
- कोई सेटअप शुल्क नहीं
- कोई लॉक-इन नहीं