•  अनतोरेह-प्रकाश

अल्पाइन

OSTree . पर आधारित पाइन, अल्पाइन लाइनक्स

क्या चुनना ओएस आपके सर्वर पर चलता है यह सुविधा और परिचित का विषय है। सुविधा का मतलब है कि आप कुछ ऐसा चाहते हैं जो आपको यथासंभव कम परेशानी दे, परिचित का मतलब है कि आप पसंद करेंगे नहीं यदि आपको नहीं करना है तो अतिरिक्त चीजें सीखने के लिए।

मेरे सर्वर हैं पालतू जानवरइसलिए मैं कुछ समय में मैन्युअल रूप से कुछ आदेश जारी कर रहा हूं, और पूर्ण स्वचालन की आवश्यकता नहीं है।

कोशिश करने के बाद कोरओएस एक साल के लिए मैंने अपने सरलीकृत पर स्विच किया डिस्ट्रो अल्पाइन और पर आधारित शुतुरमुर्ग.

लक्ष्य

अल्पाइन का यह संस्करण से संकेत लेता है ट्रक तथा परियोजना-परमाणु और इसे केवल-पढ़ने के लिए रूट फ़ाइल-सिस्टम के रूप में स्थापित किया जाना चाहिए, जिसमें अद्यतन परमाणु रूप से हो रहे हैं, यानी या तो वे सफल हो जाते हैं या सिस्टम पिछली स्थिति में वापस आ जाता है। इसके लिए सिस्टम को संभव होने के लिए कम से कम हमेशा होना चाहिए दो स्नैपशॉट जारी किए गए फ़ाइल-सिस्टम संस्करण का, भंडारण पर उपलब्ध है।

लक्ष्यों को

सिस्टम किस वातावरण में चलेगा? मैंने निशाना बनाया ओवीजेड और [केवीएम], लेकिन सामान्य तौर पर आप कह सकते हैं कंटेनरों तथा आभाषी दुनिया मुख्य अंतर यह है कि कंटेनर अपना कर्नेल नहीं चलाते हैं, विशेष रूप से उनके पास बूट प्रक्रिया नहीं है, वे सीधे कॉल करते हैं इस में प्रणाली (जो उदाहरण के लिए aDockerfile द्वारा परिभाषित किया जाएगाCMD याENTRYPOINT स्टेटमेंट्स), जो उन प्रक्रियाओं के पेड़ को प्रबंधित करने के लिए ज़िम्मेदार है जो कंटेनर को चालू रखेंगे (एक सामान्य सत्र की तरह, यदि init प्रक्रिया मर जाती है, तो कंटेनर समाप्त हो जाता है)। इसके अलावा कंटेनर सिस्टम नॉब्स को कॉन्फ़िगर नहीं कर सकते हैं, और क्षमताओं पर अतिरिक्त प्रतिबंध हो सकते हैं।

निर्माण प्रक्रिया को द्विभाजित करना

छवि कैसे बनाई जाती है?

निर्भरता

NSprepare.sh स्क्रिप्ट निर्भरता को संभालती है, जिनमें से अधिकांश सामान्य क्ली टूल की पेशकश करने वाले पैकेज हैं जैसेcoreutils, util-linux, binutils , ब्लॉक उपकरणों के साथ काम करने के लिए उपयोगिताओं जैसेblkid, sfdisk, multipath-tools और फाइल सिस्टम के साथxfsprogs तथाe2fsprogs . NSsquashfs-tools पैकेज का उपयोग अंत में निर्मित रूट फाइल सिस्टम को संपीड़ित करने के लिए किया जाता है। एglib संगतता पैकेज भी डिफ़ॉल्ट रूप से स्थापित है क्योंकि अल्पाइन पर आधारित हैmusl, संगतता पैकेज के विरुद्ध निर्मित कुछ पुस्तकालय प्रदान करके काम करता है।

पेड़

VMs और कंटेनर दोनों के लिए फ़ाइल ट्री क्रमशः निर्मित होते हैंmake.sh तथाmake_ovz.sh . यह चरणों का एक सरलीकृत विवरण है

कंटेनरों के लिए, अनुक्रम समान है, लेकिन कॉन्फ़िगरेशन बदल जाता है, क्योंकि सिस्टम के साथ a . से बूट नहीं होता है बूटलोडर ओस्ट्री को पर्यावरण को सत्यापित करने में परेशानी होती है, हमें कुछ लागू करना होगा समाधान और कुछ उपकरणों को सेटअप करें जिन्हें आमतौर पर द्वारा नियंत्रित किया जाता है initramfs कदम। यह कैसे है ओवीजेड या एलएक्ससी टेम्प्लेट कॉन्फ़िगर किए गए हैं।

पैकेजिंग

एक बार हमारे पास हमारी ओस्ट्री प्रतिबद्ध फाइल ट्री हैbuild.sh याbuild-update.sh वितरित की जाने वाली कलाकृतियों के उत्पादन का ध्यान रखता है। लिपियों के बीच अंतर यह है कि अद्यतन संस्करण पिछले ओस्ट्री रिपॉजिटरी से शुरू होता है, और भी एक डेल्टा आर्टिफैक्ट उत्पन्न करता है जिसे एक रनिंग सिस्टम अपग्रेड करने के लिए अपने ओस्ट्री इंस्टेंस पर लागू कर सकता है। यह निर्माण चरणों का एक सरलीकृत विवरण है

विभाजन विन्यास को fdisk के साथ लागू किया जाता हैlayout.cfg फ़ाइल जो विभाजन आकार को परिभाषित करती है, हमारे पास रूटफ़्स के लिए एक विभाजन है (~430M ), बूट विभाजन (~40M ) और एक स्वैप विभाजन (~40M ) कंटेनरों के साथ पिछले बिल्ड को लूप डिवाइस पर माउंट करना छोड़ दें, और पुराने (निकाले गए) ओस्ट्री रिपॉजिटरी पर नए ओस्ट्री कमिट को खींचें।

अनुकूलन

मैं इस छवि में क्या बंडल कर रहा हूं (स्थापित पैकेज के अलावा)?

क्या हुआ करता था और अब नहीं है

इंस्टालेशन

छवि को स्थापित करने के लिए आप या तो इसे होस्टिंग प्रदाता पर अपलोड कर सकते हैं और वर्चुअल मशीनों के मामले में वीएनसी से इंस्टॉल कर सकते हैं, लेकिन मैं आमतौर पर मौजूदा इंस्टॉलेशन को हाईजैक कर लेता हूं, क्योंकि यह हमेशा संभव है, साथ ही जब तक मैंने संस्करण के खिलाफ सेटअप स्क्रिप्ट का परीक्षण किया है लिनक्स वितरण, आम तौर पर मैं डेबियन -8 या उबंटू -14 का उपयोग करता हूं, अन्य लोगों का परीक्षण नहीं किया है क्योंकि इन्हें मैंने हमेशा उपलब्ध होने के लिए पाया है। सेटअप चरण इस प्रकार हैं

निष्कर्ष

मैंने बनाया देवदार 5 years from time of writing and I am still using it, and I see no reasons to switch to anything else. Alpine as a linux distro is great, simple, and I have never experienced breakage. I can easily deploy on नैटेड सर्वर जो अति-निम्न संसाधनों की पेशकश करते हैं, वास्तव में मेरे पास बस के साथ चलने वाला एक बॉक्स है64M RAM का, और अभी भी मेरे पास आवश्यक सभी सुविधाएँ हैं।

[1]रूट फाइल सिस्टम

पोस्ट टैग: