जेनकिंस के साथ कुबेरनेट्स इंस्टॉलेशन को स्वचालित करने पर तीन लेखों में से पहले, "कुबेरनेट्स एडब्ल्यूएस, भाग 1 के साथ जेनकिंस का उपयोग करना," हमने पूर्व-आवश्यक कलाकृतियों का निर्माण किया और जेनकिंस नोड बनाया। इस निरंतरता लेख में, हम जेनकिंस पाइपलाइन के लिए जेनकिंसफाइल को कॉन्फ़िगर करेंगे और जेनकिंस पाइपलाइन बनाएंगे। इस लेख में निम्नलिखित भाग हैं:
- जेनकिन्सफाइल को कॉन्फ़िगर करना
- जेनकींस पाइपलाइन बनाना
- निष्कर्ष
जेनकिंसफाइल बनाना
जेनकिंस पाइपलाइन को जेनकिंसफाइल . नामक टेक्स्ट फ़ाइल में कॉन्फ़िगर किया गया है ग्रूवी सिंटैक्स में। जेनकिंसफाइल चरणों . के होते हैं . एक "स्टेप" एक बिल्ड स्टेप है, जेनकिंस को लागू करने के लिए एक निर्देश। दो प्रकार के चरण समर्थित हैं:नोड और मंच . एक "नोड" एक शीर्ष-स्तरीय चरण है जो कोड चलाने के लिए एजेंट/एस पर एक निष्पादक/एस का चयन करता है। नोड एक मशीन है (मास्टर या एजेंट ) और नोड चरण के भीतर एक लेबल को मशीन का चयन करने के लिए नोड के लिए मशीन पर एक लेबल से मेल खाना चाहिए। "नोड" चरण एक कार्यस्थान बनाता है , जो एक फ़ाइल निर्देशिका है, संसाधन गहन प्रसंस्करण के लिए विशिष्ट जेनकींस कार्य के लिए। "नोड" चरण एक निष्पादक स्लॉट पर इसके भीतर परिभाषित चरणों को जेनकिंस बिल्ड कतार में जोड़कर शेड्यूल करता है। जब निष्पादक स्लॉट बिल्ड कतार से चलने वाले शेड्यूल किए गए चरणों को मुक्त करता है।
Jenkinsfile . नामक फ़ाइल बनाएँ (बिना किसी प्रत्यय के)। विंडोज पर बिना प्रत्यय वाली फाइल कमांड प्रॉम्प्ट से निम्न कमांड के साथ बनाई जाती है। ध्यान दें "।" कमांड के अंत में, जिसे शामिल किया जाना है।
>notepad Jenkinsfile.
संवाद में "जेनकिंसफाइल नहीं खोजा जा सका। फ़ाइल। क्या आप एक नई फाइल बनाना चाहते हैं?" हाँ क्लिक करें। एक जेनकिंसफाइल फ़ाइल बन जाती है। जेनकिंसफाइल . में , "नोड" नामक एक शीर्ष-स्तरीय चरण बनाएं जिसमें "जेनकींस" लेबल जेनकिंस एजेंट में कॉन्फ़िगर किए गए लेबल मान के समान हो।
node('jenkins') { }
नोड चरण के भीतर, अन्य चरणों जोड़ें कुबेरनेट्स क्लस्टर स्थापित करने के लिए। चरण चरणजोड़ें कुबेरनेट्स स्थापित करने के लिए। कुबेरनेट्स को स्थापित करने की प्रक्रिया अच्छी तरह से प्रलेखित है और इस पर फिर से चर्चा नहीं की जाएगी। संदर्भ के लिए, "अमेज़ॅन वेब सर्विसेज (एडब्ल्यूएस) पर कुबेरनेट्स के साथ शुरुआत करना" स्थापना प्रक्रिया पर विस्तार से चर्चा करता है। शेल कमांड "श" के साथ चलाए जाते हैं। चर के लिए उपयोगकर्ता इनपुट जैसे कि श्रमिकों की संख्या और उदाहरण प्रकार के लिए संकेत दिया जा सकता है।
kube-aws init CloudFormation स्टैक को इनिशियलाइज़ करने के लिए कमांड का क्लस्टर नाम हार्ड-कोडेड "kubernetes-coreos-cluster" (मनमाना नाम) है। --external-dns-name एक डोमेन नाम पर सेट है, NOSQLSEARCH.COM , जो अलग-अलग उपयोगकर्ताओं के लिए अलग होगा। EC2 कुंजी जोड़ी --key-name . के साथ सेट की गई है से kubernetes-coreos , जो पहले बनाया गया था। KMS कुंजी KeyMetadata.Arn . पर सेट है aws kms . के साथ पहले उत्पन्न स्ट्रिंग --kms-key . में कमांड करें विकल्प। जेनरेट किया गया जेनकिंसफाइल नीचे सूचीबद्ध है:
node('jenkins') { stage 'set env' sh "sudo yum install gnupg2" sh "gpg2 --keyserver pgp.mit.edu --recv-key FC8A365E" sh "gpg2 --fingerprint FC8A365E" sh "wget https://github.com/coreos/coreos-kubernetes/releases/ download/v0.7.1/kube-aws-linux-amd64.tar.gz" sh "wget https://github.com/coreos/coreos-kubernetes/releases/ download/v0.7.1/kube-aws-linux-amd64.tar.gz.sig" sh "gpg2 --verify kube-aws-linux-amd64.tar.gz.sig kube-aws-linux- amd64.tar.gz" sh "tar zxvf kube-aws-linux-amd64.tar.gz" sh "sudo mv linux-amd64/kube-aws /usr/local/bin" sh "export AWS_ACCESS_KEY_ID=AKIAJGFCP4HUFH4453FA" sh "export AWS_SECRET_ACCESS_KEY=7BaiUETep3zPYrhrzKYpBdwkwVV16 BTT+pt2/EXF" sh "aws ec2 create-volume --availability-zone us-east-1c --size 10 --volume-type gp2" stage 'kube-aws init' deleteDir() sh "mkdir coreos-cluster" sh "cd coreos-cluster" sh "kube-aws init --cluster-name=kubernetes-coreos-cluster --external-dns-name=NOSQLSEARCH.COM --region=us-east-1 --availability-zone=us-east-1c --key-name=kubernetes-coreos --kms-key-arn='arn:aws:kms:us-east-1:672593526685:key/ f380f8b3-e93d-4a37-b87f-9ad1dbe909be '" stage "kube-aws render" WORKER_COUNT = input message: 'Number of Nodes', parameters: [[$class: 'StringParameterDefinition', defaultValue: '3', description: '', name: 'WORKER_COUNT']] INSTANCE_TYPE = input message: 'Instance Type', parameters: [[$class: 'StringParameterDefinition', defaultValue: 't2.micro', description: '', name: 'INSTANCE_TYPE']] sh "kube-aws render" sh "sed -i '''s/#workerCount: 1/workerCount: '''$WORKER_COUNT'''/''' cluster.yaml" sh "sed -i '''s/#workerInstanceType: m3.medium/workerInstanceType: '''$INSTANCE_TYPE'''/''' cluster.yaml" sh "kube-aws validate" stage "Archive CFN" step([$class: 'ArtifactArchiver', artifacts: 'cluster.yaml, stack-template.json,credentials/*,userdata/*', fingerprint: true]) stage "Deploy Cluster" shouldDeploy = input message: 'Should Deploy Cluster?', parameters: [[$class: 'ChoiceParameterDefinition', choices: 'yesno', description: '', name: 'Deploy']] if(shouldDeploy == "yes") { echo "Deploying Kubernetes cluster" sh "kube-aws up" sh "kube-aws status" step([$class: 'ArtifactArchiver', artifacts: 'kubeconfig', fingerprint: true]) } }
जेनकींस पाइपलाइन बनाना
जेनकिंस डैशबोर्ड में, नई नौकरियां बनाएं click क्लिक करें जेनकिंस पाइपलाइन बनाने के लिए, जैसा कि चित्र 1 में दिखाया गया है।
चित्र 1: जेनकिंस जॉब सृजित करने के लिए "नई नौकरियां बनाएं" चुनें
उपयोगकर्ता इंटरफ़ेस में, एक पाइपलाइन नाम निर्दिष्ट करें (इंस्टॉल-कुबेरनेट्स ), उदाहरण के लिए, और पाइपलाइन . चुनें , जैसा कि चित्र 2 में दिखाया गया है। ठीक क्लिक करें।
चित्र 2: पाइपलाइन का चयन
पाइपलाइन कॉन्फ़िगरेशन विज़ार्ड प्रारंभ हो जाता है, जैसा कि चित्र 3 में दिखाया गया है।
चित्र 3: जेनकिंस पाइपलाइन कॉन्फ़िगरेशन विज़ार्ड
पाइपलाइन . चुनें टैब। परिभाषा . में फ़ील्ड में, पाइपलाइन स्क्रिप्ट का चयन करें विकल्प, जैसा कि चित्र 4 में दिखाया गया है।
चित्र 4: पाइपलाइन टैब
पहले सूचीबद्ध जेनकिंसफाइल को कॉपी और पेस्ट करें। सहेजें Click क्लिक करें , जैसा चित्र 5 में दिखाया गया है।
चित्र 5: पाइपलाइन स्क्रिप्ट को कॉन्फ़िगर करना
एक नई जेनकिंस पाइपलाइन बन जाती है (चित्र 6 देखें)।
चित्र 6: जेनकिंस पाइपलाइन बनाई गई
प्रारंभ में, पाइपलाइन नहीं चल रही है और स्थिति किसी भी बिल्ड के प्रारंभ या चलने की सूची नहीं होनी चाहिए, जैसा कि चित्र 7 में दिखाया गया है।
चित्र 7: जेनकिंस पाइपलाइन स्थिति
निष्कर्ष
इस लेख में, हमने जेनकिंसफाइल को कॉन्फ़िगर किया है और जेनकिंस पाइपलाइन बनाने के लिए जेनकिंसफाइल का उपयोग किया है। जेनकिंस के साथ कुबेरनेट्स इंस्टॉलेशन को स्वचालित करने पर तीसरे और अंतिम लेख में, हम कुबेरनेट्स को स्थापित करने के लिए इस लेख में बनाई गई जेनकिंस पाइपलाइन चलाएंगे। इसके बाद, हम स्थापित कुबेरनेट्स क्लस्टर का परीक्षण करेंगे।