मुख्य सामग्री पर जाएँ
TURNKEYGNU / LINUX
ऐपदस्तावेज़Forumब्लॉगस्क्रीनशॉटGitHubTurnKey Hub
文हिंदी
EnglishDeutschEspañol日本語Portuguêsहिंदी中文
होम/Initihooks - सिस्टम प्रारंभिककरण, विन्यास और पूर्ववर्ती

दस्तावेज़

Initihooks - सिस्टम प्रारंभिककरण, विन्यास और पूर्ववर्ती

हम इस दस्तावेज को आज तक रखने का लक्ष्य रखते हैं, लेकिन हम इस दस्तावेज को आज तक रखते हैं। Inithooks प्रलेखन स्रोत (GitHub) पर हमेशा तारीख तक होना चाहिए।

परिचय

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

यह प्रारंभिक प्रक्रिया इंटरैक्टिव या गैर-इंटरएक्टिव हो सकती है, जो सबसे अच्छा काम करता है, जहां और सिस्टम कैसे तैनात किया जाता है।

इंटरैक्टिव सिस्टम प्रारंभिककरण

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

root password dialog

सभी सॉफ्टवेयर संभावित रूप से छोटी गाड़ी है लेकिन हम जानबूझकर फैंसी आई कैंडी पर सादगी का पक्ष लेने के जोखिम को कम कर सकते हैं।

कॉन्फ़िगरेशन संवाद दो स्थानों में से एक में चलाते हैं:

  1. पहले बूट पर बूट कंसोल निर्माण प्रकार (जैसे ISO) पर जहां वास्तविक या आभासी मशीन आमतौर पर एक इंटरैक्टिव सिस्टम कंसोल तक पहुंच प्रदान करती है।

  2. पहला प्रशासन लॉगिन निर्माण प्रकार पर चल रहा है सरस्वती आभासी मशीन (जैसे AWS, Proxmox और LXC) जो बूट समय पर सिस्टम के साथ बातचीत करने का विकल्प नहीं प्रदान करते हैं।

    बूट के बाद, एक आभासी बाड़ एक वेब पेज पर संभावित रूप से कमजोर सेवाओं तक पहुंचने का प्रयास करता है, यह बताता है कि पहली बार SSH को मशीन में कैसे शुरू किया जाए, यह पहली बार है। सिस्टम। प्रारंभिककरण के बाद आभासी बाड़ नीचे आती है और सभी सेवाओं को सामान्य रूप से एक्सेस किया जा सकता है।

गैर-इंटरएक्टिव सिस्टम प्रारंभिककरण

The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The The TurnKey Hub पूर्ववर्ती प्रणाली प्रारंभिककरण सेटिंग्स द्वारा मूल्यों के साथ तैनाती को सुव्यवस्थित करना उपयोगकर्ता हब के क्लाउड तैनाती वेब ऐप के माध्यम से एक उदाहरण लॉन्च करने से पहले प्रदान करता है।

इसका मतलब यह है कि जब सिस्टम पहली बार बूट करता है तो उसे टेक्स्ट संवाद के माध्यम से उपयोगकर्ता के साथ बातचीत करने की आवश्यकता नहीं होती है।

प्रीसीडिंग को अच्छी तरह से दस्तावेज किया गया है और अन्य होस्टिंग प्रदाताओं या निजी बादलों द्वारा समान रूप से तैनाती को सुव्यवस्थित करने के लिए इस्तेमाल किया जा सकता है।

हुड के तहत: वह सब कुछ जो आपको जानना चाहता था लेकिन पूछने से डर गया था

स्टॉप! पूर्ववर्ती परिचय ने बताया कि केवल कुछ ही मौतों को सिस्टम प्रारंभिककरण प्रक्रिया के बारे में जानने की आवश्यकता है।

बाकी प्रलेखन के लिए इरादा है:

  • सर्वर हैकर्स को यह जानने में दिलचस्पी है कि TurnKey हुड के नीचे काम करता है और अपने विन्यास हुक को विकसित करता है।

  • विशेषज्ञ उपयोगकर्ता जो यह समझना चाहते हैं कि सिस्टम प्रारंभिककरण कैसे गहराई में काम करता है।

  • होस्टिंग प्रदाता और निजी क्लाउड फुलस्टैक निंजा TurnKey और कस्टम कंट्रोल पैनल के बीच तंग एकीकरण को लागू करने में रुचि रखते हैं।

    यह एक आवश्यकता नहीं है, सिर्फ एक बोनस है। किसी विशेष एकीकरण के बिना, TurnKey छवियों को किसी अन्य Debian या Debian आधारित छवि की तरह तैनात किया जा सकता है, जो आपकी मौजूदा तैनाती स्क्रिप्ट का उपयोग करता है। यदि आप Debian या उबंटू को तैनात कर सकते हैं तो TurnKey को तैनात करने के लिए इसे त्रियल होना चाहिए।

Inithooks पैकेज डिजाइन लक्ष्य

inithooks पैकेज सिस्टम प्रारंभिककरण स्क्रिप्ट को निष्पादित करता है जो:

  • Regenerate गुप्त कुंजी (जैसे SSH, डिफ़ॉल्ट SSL प्रमाणपत्र): यह सिर्फ एक अच्छा विचार नहीं है, यह मध्यम हमलों में आदमी से बचने के लिए आवश्यक है।
  • पासवर्ड सेट करें (उदाहरण के लिए, रूट, डेटाबेस, आवेदन): जोखिम से बचने के लिए आवश्यक हार्डवायर्ड डिफ़ॉल्ट पासवर्ड
  • बुनियादी अनुप्रयोग सेटिंग्स को कॉन्फ़िगर करें (जैसे, डोमेन, व्यवस्थापक ईमेल): विशेष रूप से उपयोगी जब आवेदन को कॉन्फ़िगर करने के लिए एक विन्यास फ़ाइल के प्रारूप को हंट करने की आवश्यकता होगी।

इसके अलावा, Inithooks एक पूर्ववर्ती तंत्र प्रदान करता है जिसे विभिन्न वर्चुअलाइजेशन समाधान और क्लाउड द्वारा प्रदान किए गए कस्टम कंट्रोल पैनल के साथ TurnKey को एकीकृत करना आसान बनाता है। होस्टिंग प्रदाता।

यह कैसे काम करता है

Inithooks स्वयं जितना संभव हो उतना सामान्य और नंगे हड्डियों के रूप में है, जो खुद ऐप-विशिष्ट "हुक" स्क्रिप्ट तक कार्यक्षमता के थोक को छोड़ देता है,

ये स्क्रिप्ट /usr/lib/inithooks के तहत दो उप-निर्देशों में स्थित हैं - everyboot.d और firstboot.d।

वे अल्फ़ान्यूमेरिक आदेश में निष्पादित कर रहे हैं। इसका मतलब है कि 1-फोओ नामक एक स्क्रिप्ट को 2-बार से पहले निष्पादित किया जाएगा, जिसे स्वयं 3-फोबबार से पहले निष्पादित किया जाएगा। यही कारण है कि इन निर्देशिकाओं में स्क्रिप्ट शुरू में अजीब संख्या है।

inithooks शीर्ष स्तर की इनिट स्क्रिप्ट को सिस्टम प्रारंभिककरण में शुरू किया जाता है, जो रनवेल 2-15 पर होता है। यह सिस्टम की कॉन्फ़िगरेशन को शुरू होने से पहले सक्षम बनाता है। यह विचार किया जाना चाहिए जब हुक स्क्रिप्ट विकसित किया गया हो।

firstboot.d स्क्रिप्ट

पहले में स्क्रिप्ट.d उप-निर्देशिका निम्नलिखित स्थितियों के तहत निष्पादित की जाती है:

  1. यदि उपयोगकर्ता रूट शेल से "turnkey-init" को निष्पादित करता है। इस आदेश का उपयोग सर्वर को आवश्यकतानुसार दोबारा कॉन्फ़िगर करने के लिए पहलीबूट.d inithooks को फिर से चलाने के लिए किया जा सकता है। कुछ स्क्रिप्ट जैसे कि गुप्त कुंजी को पुनर्जीवित करने वाले लोग छोड़ दिए गए हैं। विवरण के लिए /usr/sbin/turnkey-init में BLACKLIST चर देखें।

  2. जब उपयोगकर्ता पहली बार एक हेडलेस सिस्टम में रूट के रूप में लॉग इन करता है। यह चलाने के लिए "turnkey-init" को ट्रिगर करता है ताकि उपयोगकर्ता इंटरैक्टिव रूप से सर्वर प्रारंभिककरण को पूरा कर सके।

  3. जब पहली बार TurnKey सर्वर बूट्स के लिए

    inithooks जाँच करता है कि क्या यह /etc/default/inithooks. में RUN_FIRSTBOOT ध्वज के मूल्य की जांच करके पहला बूट है या नहीं यदि मान झूठ है तो यह स्क्रिप्ट चलाता है और ध्वज को सच करने के लिए टॉगल करता है।

    पहलाबूट स्क्रिप्ट दो विधियों में से एक में चल सकता है, इंटरेक्टिव या गैर-इंटरएक्टिव, निर्माण के प्रकार के आधार पर।

    गैर-हेडलेस बिल्ड्स पर इंटरएक्टिव मोड - लाइव सीडी ISOइन छवि प्रकारों के साथ बूट के दौरान आभासी कंसोल तक इंटरैक्टिव पहुंच की उम्मीद है तो कुछ inithooks प्रारंभिककरण स्क्रिप्ट उपयोगकर्ता के साथ पाठ के माध्यम से बातचीत करेंगे। पहली बार सिस्टम बूट्स संवाद (जैसे पासवर्ड, एप्लिकेशन सेटिंग आदि के लिए पूछते हैं)। ये वही स्क्रिप्ट हैं जो निष्पादित हो जाती हैं यदि आप "turnkey-init" चलाते हैं।

    हेडलेस बिल्ड्स पर गैर-इंटरएक्टिव मोड - AWS, Proxmox और LXC: इन छवि प्रकारों के साथ बूट के दौरान आभासी सांत्वना तक इंटरैक्टिव पहुंच नहीं मानी जा सकती है। पहले बूट को गैर-इंटरएक्टिव तरीके से चलाने में सक्षम होना चाहिए, अन्यथा हम बूट को फांसी का जोखिम उठाते हैं जबकि यह उपयोगकर्ता के संपर्क के लिए इंतजार करता है जो कभी नहीं होता है।

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

    पहले के गैर-इंटरएक्टिव चल रहा है से आउटपुट स्क्रिप्ट /var/log/inithooks.log. में लॉग इन किया गया है

    पहली बार जब तक उपयोगकर्ता लॉग इन को रूट के रूप में लॉग इन करता है तब तक इंटरएक्टिव सर्वर कॉन्फ़िगरेशन में देरी होती है। यह /usr/lib/inithooks/firstboot.d/29preseed हुक की मदद से पूरा हो गया है, जो केवल हेडलेस बिल्ड्स पर मौजूद है:

    #!/bin/bash -e
    # generic preseeding of inithooks.conf if it doesn't exist
    
    [ -e $INITHOOKS_CONF ] && exit 0
    
    MASTERPASS=$(mcookie | cut --bytes 1-8)
    
    cat>$INITHOOKS_CONF<<EOF
    export ROOT_PASS=$MASTERPASS
    export DB_PASS=$MASTERPASS
    export APP_PASS=$MASTERPASS
    export APP_EMAIL=admin@example.com
    export APP_DOMAIN=DEFAULT
    export HUB_APIKEY=SKIP
    export SEC_ALERTS=SKIP
    export SEC_UPDATES=FORCE
    EOF
    
    chmod +x /usr/lib/inithooks/firstboot.d/30turnkey-init-fence
    

    प्रारंभिक बाड़उपरोक्त हेडलेस प्रीसीडिंग हुक "इन्टीलाइजेशन बाड़" तंत्र को भी सक्रिय करता है जो स्थानीय वेब सर्वर को स्थिर वेब पर पहुंचने के प्रयासों को पुनर्निर्देशित करने के लिए आईपीटेबल का उपयोग करता है। inithooks/bin/simplehttpd.py द्वारा सेवा पृष्ठ।

    यह पृष्ठ बताता है कि आपको सिस्टम को शुरू करने के लिए पहले रूट के रूप में लॉग इन करना होगा। बाड़ का उद्देश्य उपयोगकर्ताओं को अनइंटिलिटाइज्ड वेब एप्लिकेशन तक पहुंचने से रोकने के लिए किया जाता है, जो कुछ मामलों में सुरक्षा जोखिम का अनुमान लगा सकता है।

    उपयोगकर्ता को जड़ के रूप में लॉग इन करने के बाद और प्रारंभिक प्रक्रिया को पूरा करने के बाद "इन्टीलाइजेशन बाड़" बंद हो गया है। उपयोगकर्ता स्थानीय वेब सर्वर पर चल रहे एप्लिकेशन तक पहुंच सकते हैं।

    What is firstboot.d/30turnkey-init-fence is:

    1. turnkey-init-band को एक सेवा के रूप में सक्षम बनाता है और इसे शुरू करता है

      अद्यतन आर सी डी के माध्यम से सेवा सक्षम / अक्षम है

    2. सक्रिय ~$USERNAME/.profile.d/turnkey-init-band

      .profile.d स्क्रिप्ट ने एक dtach सत्र को सॉकेट से बाध्य किया

      यदि कोई सत्र पहले से ही सॉकेट से जुड़ा हुआ है तो इससे जुड़ना

      हम किस कमांड को डीटैक सत्र में चला रहे हैं?

      turnkey-init -> निष्क्रियता (सेवा और प्रोफाइल.d)

हरबूट.d स्क्रिप्ट

स्क्रिप्ट जो हरबूट में हैं। हम उन लिपियों की संख्या को कम करने की कोशिश करते हैं जो यहां रहते हैं क्योंकि वे मूल रूप से एक गरीब आदमी की इनिट स्क्रिप्ट और वास्तविक इनिट स्क्रिप्ट अक्सर बेहतर विचार कर रहे हैं।

एक हेडलेस तैनाती में रूट पासवर्ड की स्थापना

हेडलेस तैनाती पर उपयोगकर्ता को सर्वर प्रारंभिककरण प्रक्रिया को पूरा करने के लिए रूट के रूप में लॉगिन करने की आवश्यकता होती है, लेकिन आप रूट के रूप में कैसे लॉग इन करते हैं?

यदि आप Proxmox का उपयोग कर रहे हैं तो कोई समस्या नहीं - यह आपको TurnKey छवि को तैनात करने से पहले रूट पासवर्ड चुनने का संकेत देता है।

AWS पर आप सर्वर लॉन्च करते समय चयनित SSH कुंजी जोड़ी के साथ लॉग इन कर सकते हैं।

अन्य वर्चुअलाइजेशन / निजी क्लाउड समाधान रूट पासवर्ड सेट करने के लिए अपनी मौजूदा तैनाती स्क्रिप्ट का उपयोग करने में सक्षम होना चाहिए, जैसे कि वे पहले से ही Debian और उबंटू के साथ करते हैं।

एक और उन्नत विकल्प पहली बार इसे बूट करने से पहले एप्लींस की फ़ाइल सिस्टम में /etc/inithooks.conf फ़ाइल को "preseed" करना है। यह आपको inithooks को प्री-कॉन्फ़िगर करने देता है न केवल रूट पासवर्ड बल्कि डेटाबेस और एप्लिकेशन पासवर्ड, व्यवस्थापक ईमेल, डोमेन नाम आदि।

हालांकि ध्यान दें कि पूर्ववर्ती का उपयोग "निषेध बाड़" को निष्क्रिय करता है। यदि आप TurnKey को पूर्ववर्ती बनाने का उपयोग कर रहे हैं तो मान लें कि आपने पहले से ही पूर्ववर्ती कॉन्फ़िगरेशन मान प्राप्त करने के लिए उपयोगकर्ता के साथ कुछ अन्य तरीके से बातचीत की है (जैसे, वेब कंट्रोल पैनल)।

Preseeding

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

सर्वर फ़ाइलसिस्टम में /etc/inithooks.conf बनाने और inithooks कॉन्फ़िगरेशन चर लिखने के द्वारा इस इंटरैक्टिव कॉन्फ़िगरेशन प्रक्रिया को बायपास करना संभव है। पहले सिस्टम बूट से पहले। उदाहरण के लिए:

cat>/etc/inithooks.conf<<EOF
export ROOT_PASS=supersecretrootpass
export DB_PASS=supersecretmysqlpass
export APP_EMAIL=admin@example.com
export APP_PASS=webappadminpassword
export SEC_ALERTS=admin@example.com
export SEC_UPDATES=FORCE
export HUB_APIKEY=SKIP
EOF

वहाँ संवेदनशील पासवर्ड छोड़ने के बारे में चिंता मत करो: पहले बूट के बाद, inithooks ने /etc/inithooks.conf को खाली कर दिया ताकि महत्वपूर्ण पासवर्ड गलती से स्पष्ट रूप से छोड़ न जाएं।

यह पूर्ववर्ती तंत्र कस्टम नियंत्रण पैनल, वर्चुअलाइजेशन समाधान आदि के साथ TurnKey को एकीकृत करना अपेक्षाकृत आसान बनाता है।

वास्तव में आप /etc/inithooks.conf कैसे बनाते हैं, आप किस तरह से उपयोग कर रहे आभासीकरण प्लेटफॉर्म की क्षमताओं और क्षमताओं को बना सकते हैं। उदाहरण के लिए, कई वर्चुअलाइजेशन प्लेटफॉर्म एक सुविधा प्रदान करते हैं जिसके माध्यम से आप पहले बूट से पहले स्क्रिप्ट चला सकते हैं या फाइल सिस्टम में फ़ाइलों को जोड़ सकते हैं।

प्रारंभिकीकरण हुक और पूर्ववर्ती विन्यास मापदंडों की सूची

नीचे इंटरैक्टिव फर्स्टबूट हुक की एक सूची है। सभी इंटरैक्टिव हुक में क्लाउड तैनाती, होस्टिंग और ISV एकीकरण का समर्थन करने के लिए पूर्ववर्ती विकल्प हैं।

ध्यान दें कि लगभग सभी सर्वरों के पास अपने विशिष्ट गुप्त-पुनर्धारण हुक हैं।

सभी सर्वरों के लिए आम:

30rootpass              ROOT_PASS
50auto-apt-archive      AUTO_APT_ARCHIVE        [ SKIP ]
80tklbam                HUB_APIKEY              [ SKIP ]
85secalerts             SEC_ALERTS              [ SKIP ]
92etckeeper             ETCKEEPER_COMMIT        [ SKIP ]
95secupdates            SEC_UPDATES             [ SKIP | FORCE ]

हेडलेस बिल्ड्स के लिए विशिष्ट:

29preseed INITFENCE [ SKIP ]

अनुप्रयोग विशिष्ट:

35mysqlpass                    DB_PASS
35pgsqlpass                    DB_PASS

40ansible                      APP_PASS
40couchdb                      APP_PASS
40espocrm                      APP_PASS
40etherpad                     APP_PASS
40githttp                      APP_PASS
40icesecretset                 APP_PASS
40jenkins                      APP_PASS
40mediawiki                    APP_PASS
40mibew                        APP_PASS
40mongodb                      APP_PASS
40moodle                       APP_PASS
40mumblesupw                   APP_PASS
40observium                    APP_PASS
40odoo                         APP_PASS
40openvas                      APP_PASS
40orangehrm                    APP_PASS
40otrs                         APP_PASS
40phpmumbleadmin               APP_PASS
40plone                        APP_PASS
40sugarcrm                     APP_PASS
40suitecrm                     APP_PASS
40torrentserver                APP_PASS
40trac                         APP_PASS
40typo3                        APP_PASS
40zoneminder                   APP_PASS
40nextcloud                    APP_PASS, APP_DOMAIN
40openldap                     APP_PASS, APP_DOMAIN
40owncloud                     APP_PASS, APP_DOMAIN
40zurmo                        APP_PASS, APP_DOMAIN
40domain-controller            APP_PASS, APP_DOMAIN [, APP_REALM]
40b2evolution                  APP_PASS, APP_EMAIL
40collabtive                   APP_PASS, APP_EMAIL
40concrete5                    APP_PASS, APP_EMAIL
40django                       APP_PASS, APP_EMAIL
40dokuwiki                     APP_PASS, APP_EMAIL
40drupal7                      APP_PASS, APP_EMAIL
40e107                         APP_PASS, APP_EMAIL
40ezplatform                   APP_PASS, APP_EMAIL
40gallery                      APP_PASS, APP_EMAIL
40joomla                       APP_PASS, APP_EMAIL
40kliqqi                       APP_PASS, APP_EMAIL
40limesurvey                   APP_PASS, APP_EMAIL
40mahara                       APP_PASS, APP_EMAIL
40mambo                        APP_PASS, APP_EMAIL
40mantis                       APP_PASS, APP_EMAIL
40mattermost                   APP_PASS, APP_EMAIL
40mayan                        APP_PASS, APP_EMAIL
40moinmoin                     APP_PASS, APP_EMAIL
40omeka                        APP_PASS, APP_EMAIL
40oscommerce                   APP_PASS, APP_EMAIL
40phpbb                        APP_PASS, APP_EMAIL
40processmaker                 APP_PASS, APP_EMAIL
40redmine                      APP_PASS, APP_EMAIL
40roundup                      APP_PASS, APP_EMAIL
40silverstripe                 APP_PASS, APP_EMAIL
40simpleinvoices               APP_PASS, APP_EMAIL
40sitracker                    APP_PASS, APP_EMAIL
40twiki                        APP_PASS, APP_EMAIL
40ushahidi                     APP_PASS, APP_EMAIL
40vanilla                      APP_PASS, APP_EMAIL
40vtiger                       APP_PASS, APP_EMAIL
40wordpress                    APP_PASS, APP_EMAIL
40xoops                        APP_PASS, APP_EMAIL
40canvas                       APP_PASS, APP_EMAIL, APP_DOMAIN
40drupal8                      APP_PASS, APP_EMAIL, APP_DOMAIN
40elgg                         APP_PASS, APP_EMAIL, APP_DOMAIN
40gitlab                       APP_PASS, APP_EMAIL, APP_DOMAIN
40gnusocial                    APP_PASS, APP_EMAIL, APP_DOMAIN
40icescrum                     APP_PASS, APP_EMAIL, APP_DOMAIN
40phplist                      APP_PASS, APP_EMAIL, APP_DOMAIN
40piwik                        APP_PASS, APP_EMAIL, APP_DOMAIN
40prestashop                   APP_PASS, APP_EMAIL, APP_DOMAIN
40punbb                        APP_PASS, APP_EMAIL, APP_DOMAIN
40simplemachines               APP_PASS, APP_EMAIL, APP_DOMAIN
40zencart                      APP_PASS, APP_EMAIL, APP_DOMAIN
40magento                      APP_PASS, APP_EMAIL, APP_DOMAIN [, APP_PRIVKEY, APP_PUBKEY]
40bugzilla                     APP_PASS, APP_EMAIL [, APP_OUTMAIL]
40foodsoft                     APP_PASS, APP_EMAIL [, APP_VARIANT]
40ghost                        APP_PASS, APP_EMAIL, APP_DOMAIN [, APP_UNAME]

यदि पूर्ववर्ती नहीं है, तो उपयोगकर्ता को इंटरैक्टिव रूप से पूछा जाएगा। SKIP और FORCE विकल्प स्वयं व्याख्यात्मक होना चाहिए। ध्यान दें कि जब लाइव डेमो मोड में सेकंडडेट स्वचालित रूप से छोड़ दिया जाता है।

विकास नोट्स

तो आप एक नया सर्वर बना रहे हैं और प्रारंभिकीकरण हुक जोड़ना चाहते हैं। बहुत बढ़िया! यहाँ कुछ उदाहरण हैं जो आपको जाने के लिए हैं।

गैर-इंटरएक्टिव इनिटहुक

निम्नलिखित उदाहरण का उपयोग जूमला15 सर्वर में किया जाता है। यह फिर से उत्पन्न होता है। गुप्त, और जूमला उपयोगकर्ता के लिए एक यादृच्छिक mysql पासवर्ड सेट।

/usr/lib/inithooks/firstboot.d/20regen-joomla-secrets

#!/bin/bash -e
# regenerate joomla secret key and mysql password

. /etc/default/inithooks

updateconf() {
    CONF=/var/www/joomla/configuration.php
    sed -i "s/var $1 = \(.*\)/var $1 = '$2';/" $CONF
}

updateconf '\$secret' $(mcookie)$(mcookie)

PASSWORD=$(mcookie)
updateconf '\$password' $PASSWORD

$INITHOOKS_PATH/bin/mysqlconf.py --user=joomla --pass="$PASSWORD"

इंटरैक्टिव inithook

निम्नलिखित उदाहरण का उपयोग सभी सर्वरों में रूट पासवर्ड सेट करने के लिए किया जाता है। यदि ROOTPASS सेट नहीं है, तो उपयोगकर्ता को इंटरैक्टिव रूप से पासवर्ड दर्ज करने के लिए कहा जाएगा।

/usr/lib/inithooks/firstboot.d/30rootpass

#!/bin/bash -e
# set root password

. /etc/default/inithooks

[ -e $INITHOOKS_CONF ] && . $INITHOOKS_CONF
$INITHOOKS_PATH/bin/setpasspass.py root --pass="$ROOTPASS"
/usr/lib/inithooks/bin/setpass.py

#!/usr/bin/python
# Copyright (c) 2010 Alon Swartz <alon@turnkeylinux.org>
"""Set account password

Arguments:
    username      username of account to set password for

Options:
    -p --pass=    if not provided, will ask interactively
"""

import sys
import getopt
import subprocess
from subprocess import PIPE

from dialog_wrapper import Dialog

def fatal(s):
    print >> sys.stderr, "Error:", s
    sys.exit(1)

def usage(e=None):
    if e:
        print >> sys.stderr, "Error:", e
    print >> sys.stderr, "Syntax: %s <username> [options]" % sys.argv[0]
    print >> sys.stderr, __doc__
    sys.exit(1)

def main():
    try:
        opts, args = getopt.gnu_getopt(sys.argv[1:], "hp:", ['help', 'pass='])
    except getopt.GetoptError, e:
        usage(e)

    if len(args) != 1:
        usage()

    username = args[0]
    password = ""
    for opt, val in opts:
        if opt in ('-h', '--help'):
            usage()
        elif opt in ('-p', '--pass'):
            password = val

    if not password:
        d = Dialog('TurnKey GNU/Linux - First boot configuration')
        password = d.get_password(
            "%s Password" % username.capitalize(),
            "Please enter new password for the %s account." % username)

    command = ["chpasswd"]
    input = ":".join([username, password])

    p = subprocess.Popen(command, stdin=PIPE, shell=False)
    p.stdin.write(input)
    p.stdin.close()
    err = p.wait()
    if err:
        fatal(err)

if __name__ == "__main__":
    main()
TURNKEYGNU / LINUX

शुरू से सब कुछ बनाए बिना अपना इन्फ़्रास्ट्रक्चर खुद सँभालें।

TurnKey के बारे में जानें
परिचयदस्तावेज़Forumआम सवालब्लॉगGitHub
मुफ़्त और ओपन सोर्ससुरक्षा पहले से शामिलचलाने के लिए तैयार