सवाल आप यह कैसे स्पष्ट करते हैं कि आप एक उत्पादन प्रणाली पर हैं?


हमारी कंपनी में से कुछ में उत्पादन सर्वर पर रूट पहुंच है। हम इसे बनाने के लिए एक अच्छा तरीका ढूंढ रहे हैं निहायत स्पष्ट करें जब हमने ssh'd किया है।

हमारे पास कुछ विचार हैं:

  • उज्ज्वल लाल संकेत
  • खोल खोलने से पहले एक पहेली का जवाब दें
  • खोल प्राप्त करने से पहले एक यादृच्छिक शब्द टाइप करें

उत्पादन प्रणालियों को अलग करने के लिए आप किस तकनीक का उपयोग करते हैं?


132
2017-10-19 18:21


मूल


लोगों को उत्पादन प्रणालियों के लिए ssh'ing से बचने के लिए सिखाने का कोई तरीका है? यदि आपके पास Puppet में सबकुछ चेक किया गया है, उदाहरण के लिए, आपको केवल समस्या निवारण के लिए उत्पादन सिस्टम में लॉग इन करना होगा। - Alex Holst
आप अपने उत्पादन प्रणालियों पर रूट एसएसएच पहुंच की अनुमति देते हैं ???? !!!!! - symcbean
@ सिमकबीन: यही नहीं है कि सियानाइड ने कहा। वह आपके उपयोगकर्ता खाते में एसएसएच के बाद इसका मतलब हो सकता था। - Zan Lynx
क्या यह प्रश्न समुदाय विकी के लिए उम्मीदवार बन रहा है? - MadHatter
आप इसे व्यापक रूप से स्पष्ट कर सकते हैं कि यह एसएसएच को अक्षम करके उत्पादन प्रणाली है। यह उससे कहीं अधिक स्पष्ट नहीं हो सकता है। - Franci Penov


जवाब:


लाल संकेत एक अच्छा विचार है, जिसका मैं भी उपयोग करता हूं।

एक और चाल है कि एक बड़ी ASCII- कला चेतावनी डालना है /etc/motd फ़ाइल।
जब आप लॉग इन करते हैं तो इस तरह कुछ आपको बधाई देता है आपका ध्यान रखना चाहिए:

 _______ _ _ _____ _____ _____ _____
| __ __ | | | | _ _ | / ____ | | _ _ | / ____ | / \
   | | | | __ | | | | | (___ | | | (___ / \
   | | | __ | | | \ ___ \ | | \ ___ \ / / \ \
   | | | | | | _ | | _ ____) | _ | | _ ____) | / ____ \
   | _ | | _ | | _ | _____ | _____ / | _____ | _____ / / _ / \ _ \


 _____ _____ ____ _____ _ _ _____ _______ _____ ____ _ _
| __ \ | __ \ / __ \ | __ \ | | | | / ____ | __ __ | _ _ / __ \ | \ | |
| | __) | | __) | | | | | | | | | | | | | | || | | | \ | |
| ___ / | _ / | | | | | | | | | | | | | | || | | | । `|
| | | | \ \ | | __ | | | __ | | | __ | | | ____ | | _ | || | __ | | | \ |
| _ | | _ | \ _ \\ ____ / | _____ / \ ____ / \ _____ | | _ | | _____ \ ____ / | _ | \ _ |


 __ __ _____ _ _ _____ _ _ ______
| \ / | / \ / ____ | | | | _ _ | \ | | ____ |
| \ / | / \ | | | | __ | | | | | \ | | | __
| | \ / | | / / \ \ | | | __ | | | | । `| __ |
| | | | / ____ \ | ____ | | | | _ | | _ | | \ | | ____
| _ | | _ / _ / \ _ \ _____ | _ | | _ | _____ | _ | \ _ | ______ |

आप इस तरह की चेतावनी उत्पन्न कर सकते हैं यह वेबसाइट या आप इसका उपयोग कर सकते हैं figlet  आदेश।

figlet

निकोलस स्मिथ की तरह टिप्पणियों में सुझाव दिया गया है, आप कुछ ड्रैगन या अन्य जानवरों के साथ चीजों को मसाला कर सकते हैं cowsay आदेश।

dragon cowsay

/ Etc / motd फ़ाइल का उपयोग करने के बजाय, आप भी कॉल कर सकते हैं cowsay या figlet में .profile फ़ाइल।


135
2017-10-19 18:36



ओह मुझे यह पसंद है! - Sionide21
यदि आपने कुछ कमांड में टाइप किया है तो आप अब और नहीं देख पाएंगे। - Nils
सच है, यही वह जगह है जहां लाल प्रॉम्प्ट काम में आता है। - Kenny Rasschaert
विंडोज सर्वर पर, मैं एक उज्ज्वल गुलाबी डेस्कटॉप रंग और चमकदार पीले शीर्षक सलाखों / रंग योजना का उपयोग करता हूं ताकि यह वास्तव में स्पष्ट रूप से स्पष्ट हो। यह एक रंगीन कमांड प्रॉम्प्ट का हमारा संस्करण है - Mark Henderson♦
मैं जोड़ना चाहता हूँ ASCII ड्रेगन मिश्रण में। - Nicholas Smith


काफी वही बात नहीं है, लेकिन यह वेबसाइट उत्पादन प्रणालियों में परिवर्तन करते समय अपने डेवलपर्स को गुलाबी सोम्ब्रेरो पहनने की सलाह दी जाती है। आप शायद उनके बीच sshing के लिए एक समान नियम हो सकता है।

developer wearing a pink sombrero


75
2017-10-20 04:58



Haha! +1 क्योंकि मैंने लॉल किया था। लेकिन गंभीरता से, लोग उन्हें पहनते समय अपने लापता चश्मे की तलाश कर सकते हैं, मुझे संदेह है कि एक टोपी "निरंतर अनुस्मारक" के रूप में कार्य करेगी। साथ ही, यह याद रखने में आपकी सहायता करने के लिए कुछ भी नहीं है कि कौन सी खिड़की है। - Felix Dombek
हाँ, आपको अपनी प्रक्रिया को बदलना होगा: 1) उत्पादन को संपादित करने की इच्छा घोषित करें। 2) sombrero बाहर निकलें और अन्य सभी खिड़कियों को बंद करो। 3) उत्पादन सामग्री करते हैं जबकि सभी लोग देख रहे हैं। 4) सत्र से लॉग आउट करें और sombrero को हटा दें। - Aric TenEyck
"2) सोमवार को बाहर निकालें और अन्य सभी खिड़कियों को बंद करें" यह वास्तव में मेरी कंपनी में काम नहीं करेगा, क्योंकि यह हमारे सभी एसओपी का चरण 2 है। चरण 1 निश्चित रूप से "रोशनी चालू करें" है, क्योंकि खिड़कियों के साथ, यह इस कार्यालय में बहुत अंधेरा हो सकता है। - Parthian Shot


मैंने जो सबसे बड़ा उपयोग किया है वह एक अलग नामकरण योजना है जहां प्रोड-सिस्टम का नाम परीक्षण / देव उदाहरणों से स्पष्ट रूप से अलग है। यह "उपयोगकर्ता नाम @ होस्टनाम:" शैली संकेत स्पष्ट रूप से अलग बनाता है। और स्पष्ट रूप से मेरा मतलब सिर्फ अलग-अलग शब्दों से अलग है, विभिन्न प्रारूप भी:

उदाहरण: पीआरडी-WEB001 बनाम DEVEL-BOB-WEB001

इसके लिए कई चीजें चल रही हैं:

  • अतिरिक्त अतिरंजित ब्लॉक इसे सेट-ऑफ-दो के बजाय सेट-ऑफ-तीन बनाता है।
  • सेट का पहला एक अलग लंबाई है।
  • नामों की कुल लंबाई काफी अलग है, जो कमांड लाइन को एक-दूसरे के साथ अलग-अलग और विंडो में अन्य पाठ को अलग करती है।

और सबसे अच्छा, ओओएस त्रुटियों से बचने के लिए इसे उत्पादन के लिए विशेष टर्मिनल-कॉन्फ़िगर की आवश्यकता नहीं है।

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


50
2017-10-19 18:33



यह बुनियादी प्रणालियों के लिए वास्तव में अच्छी तरह से काम करता है, लेकिन जैसे ही आप एक dev- * को prod- * devs moan और groan के रूप में बदलते हैं, उनके आधे लिंक काम करना बंद कर देते हैं (इससे कोई फर्क नहीं पड़ता कि आपने इसे कितनी बार किया है), और कभी-कभी प्रणाली स्वयं आधा काम करने के साथ ही सीमित होती है जब तक आप कॉन्फ़िगरेशन फ़ाइलों में पुराने नाम के सभी संदर्भों को ठीक नहीं करते। विशेष रूप से मालिकाना सॉफ्टवेयर स्थापित के साथ, और DNS उपनाम केवल इतना मदद करते हैं। इससे भी बदतर, विंडोज़ स्विच करते समय पूरी तरह से प्रॉम्प्ट को भूलना आसान है। - SilverbackNet
देवों को सेटिंग्स बनाने की आवश्यकता होती है जो देव / परीक्षण / स्टेजिंग / उत्पादन में काम करती हैं (यही वह है जो मैं करता हूं, लेकिन यह एक और कहानी है)। बैश के लिए एक 'लाल प्रॉम्प्ट' के लिए (ऐसा लगता है उससे कठिन), मेरा जवाब देखें serverfault.com/a/479718/79266 - RichVel


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

इसलिए मैं आपके संकेत के रूप में उपयोगकर्ता (विशेषाधिकार बनाम गैर-विशेषाधिकार प्राप्त) के समान व्यवहार के साथ, रंगीन संकेत (लाल पसंद स्पष्ट विकल्प) और मेजबाननाम के लिए सभी कैप्स रखने की अनुशंसा करता हूं। कुछ उदाहरण:

colored prompts example

आमतौर पर कुछ पसंद है

set prompt =  "%{\033[1;44m%}`whoami`@`hostname -s`#%{\033[0m%} "` 

अपने खोल स्टार्टअप फ़ाइल में। यह नीला रंग के लिए है। बदलो 44 साथ में 41 लाल लाल, और 42 हरे रंग के लिए अन्य रंग और जंगली पैटर्न भी उपलब्ध हैं


38
2017-10-19 21:26



बैश के लिए एक 'लाल प्रॉम्प्ट' के लिए (ऐसा लगता है उससे कठिन), मेरा जवाब देखें serverfault.com/a/479718/79266 - गिट शाखा भी दिखाता है, वर्तमान निर्देशिका को छोटा कर दिया जाता है, इत्यादि। - RichVel


ये मेरे सुझाव हैं:

1) सुनिश्चित करें कि उत्पादन वातावरण पर अधिकांश आदेश (आरएम, चाउन, chmod, /etc/init.d/*) सूडो पहुंच की आवश्यकता है

2) यह इंगित करने के लिए पीएस 1 / पीएस 2 का प्रयोग करें कि उपयोगकर्ता प्रोड सर्वर में है

bash-3.2$  export PS1="[\u@\h \W]\$ "

यह कमांड प्रॉम्प्ट के रूप में दिखाएगा

[sridhar@prodappserver901 conf]$

3) यदि पुट्टी / एसएसएच क्लाइंट का उपयोग करना है, तो आप उत्पादन सर्वर स्टैंड-आउट बनाने के लिए हमेशा अद्वितीय पृष्ठभूमि रंग / प्रोफ़ाइल सेट अप कर सकते हैं।


14
2017-10-19 18:50



# 1 एक दिलचस्प विचार है लेकिन अव्यवहारिक है क्योंकि डेमॉन उपयोगकर्ताओं के रूप में चल रही स्क्रिप्ट को आरएम, चमोद इत्यादि का उपयोग करने की आवश्यकता हो सकती है। - Zan Lynx


बस मान लें कि आपके दूसरे और तीसरे विचार शुरुआती कनेक्शन के दौरान मदद करते हैं लेकिन जब आपके पास एकाधिक टर्मिनल खुलते हैं और एक से दूसरे में जाते हैं तो कोई मूल्य नहीं होता है। sysadmin1138 का नामकरण का विचार अच्छा है जब इसे लागू किया जा सकता है लेकिन ऐसे कई मामले हैं जहां यह नहीं हो सकता है।

एकमात्र चीज़ जो मैंने वास्तव में सार्थक पाया है वह एक रंगीन संकेत है। मुझे डेम / परीक्षण के लिए हरा पसंद है, डीएमजेड में मशीनों के लिए उत्पादन और नीले रंग के लिए लाल। इस तरह, यहां तक ​​कि यदि मेरे पास एक ही नाम (विभिन्न नेटवर्कों में) के साथ दो मशीनें हैं, जैसे कि प्रतिस्थापन मशीन तैयार करते समय, मैं अभी भी आसानी से बता सकता हूं कि मैं किस पर हूं।


13
2017-10-19 21:16





लाल / विशेष कमांड प्रॉम्प्ट अच्छा है। टीएमओयूटी चर का उपयोग कर उन मशीनों पर एक और चीज एक त्वरित ऑटो-लॉगआउट हो सकती है। यदि आपने कई खिड़कियां खोली हैं तो उत्पादन वाले लोग तेजी से चले जाएंगे।

इससे एक अलग व्यवहार हो सकता है:

  1. विकसित करना
  2. परीक्षा
  3. अपने परिवर्तन एक स्टेजिंग सर्वर में करें
  4. केवल तभी उत्पादन के लिए त्वरित डैश करें और वहां तैनात करें (ठीक उसी तरह जैसे आपने इसे स्टेजिंग सर्वर पर किया था)

11
2017-10-19 19:06





एक सादे रूट खाते के साथ एक उत्पादन मशीन पर काम करना कभी भी एक अच्छा विचार नहीं है।

पूर्ण सुडो अनुमतियों के साथ एक खाता है। बचत सूडो सत्र की अनुमति नहीं है। सूडो सु निषेध इसके लिए अलग पासवर्ड का प्रयोग करें (आपके पास आपके देव मशीन के लिए नहीं है)। शायद आदेश को निष्पादित करने से पहले खोल की उत्पादन पहचान के बारे में सूचित करने के लिए सूडो को ट्विक करें (उपनाम के माध्यम से)।

यह आकस्मिक गलतियों को काफी कठिन बना देगा। और लाल संकेत कभी दर्द नहीं होता है।


8
2017-10-20 02:44



और "सुडो सु" द्वारा आपका मतलब "सुडो-आई" या कम से कम "सुडो सु -" पर है, है ना? - Sparr
वाह! यह स्पायर है! छोटी सी दुनिया :) - Sionide21
लोगों को रूट खोल रखने से रोकना असंभव है। (sudo bash)। आप किसी भी 'ब्लैकलिस्ट' सेटअप से रूट खोल प्राप्त कर सकते हैं। (यदि आपका सावधान रहना है, तो आप इसे श्वेतसूची सेटअप से रोक सकते हैं, लेकिन इसकी आमतौर पर गारंटी नहीं है।) - user606723
यह रूट खोल के लिए इच्छित पहुंच को रोकने के लिए नहीं माना जाता है - केवल कुछ आम तरीकों से लोगों को इतना उपयोग किया जाता है ताकि वे बिना किसी ध्यान के, अवचेतन रूप से ऐसा कर सकें। - Mihails Strasuns


मैं लाल त्वरित विचार के साथ गया, और इसे काम करने के लिए कोड खोजने के लिए काफी कठिन पाया .bashrc

तो यहां मेरा संस्करण है, इसमें शामिल होने के लिए तैयार है .bashrc - https://github.com/RichVel/nicer-bash-prompt। यह होस्टनाम द्वारा पूरी तरह से संचालित है, इसलिए जब तक आपके पास उत्पादन होस्टनाम के लिए एक उपयुक्त पैटर्न है (कहें xyprod01, xyprod02, आदि) यह अच्छी तरह से काम करेगा, और आप इसका उपयोग कर सकते हैं .bashrc सभी वातावरण में।

यह इस तरह दिख रहा है:

screenshot of red prompt

यह उत्पादन होस्ट पर लाल प्रॉम्प्ट सहित एक अच्छा बाश प्रॉम्प्ट बनाता है - आपको वर्तमान गिट शाखा भी दिखाता है, और $ 2WW में अंतिम 2 निर्देशिका भी दिखाता है। बैश में Ctrl / R (रिवर्स सर्चिंग) करते समय त्वरित प्रदर्शन को गड़बड़ करने से बचने में यह ख्याल रखता है।

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


8
2018-02-17 17:33



यह सबसे अच्छा है!! धन्यवाद!!! - Luciano


हालांकि मुझे नहीं पता कि आपका आईटी सेटअप कैसा है, एक समाधान जो प्रभावी हो सकता है, एक विशेष कमरा होना चाहिए जिसे आपको एसएसएच में रूट सर्वर के रूप में उत्पादन सर्वर में जाना होगा। यदि आपके पास डेटासेंटर है तो यह सर्वर का कमरा हो सकता है, लेकिन एक अलग भौतिक स्थान होने से 'सामान्य' काम नहीं किया जाता है, यह लगातार एक अनुस्मारक के रूप में कार्य करता है कि आप उत्पादन मशीनों तक पहुंच रहे हैं।


5
2017-10-20 03:19



हालांकि यह निश्चित रूप से प्रभावी होगा, ज्यादातर स्थितियों के लिए यह बेहद प्रतिकूल उत्पादक भी होगा। - John Gardeniers
मैं जॉन से सहमत हूं, लेकिन यह निश्चित रूप से कुछ सोचने के लिए है। - user606723
@ जॉन गॉर्डनियर: प्रतिकूल? आपका मतलब है कि यह उत्पादकता को नुकसान पहुंचाएगा? - LarsH
@ लार्सएच, आपके काम के विभिन्न हिस्सों को करने के लिए अनावश्यक रूप से विभिन्न कमरों में जाना पड़ता है, निश्चित रूप से उत्पादकता को नुकसान पहुंचाता है। आपका पूरा नेटवर्क एक ही स्थान से प्रबंधनीय होना चाहिए। - John Gardeniers
@ जॉन गॉर्डनियर: समझा। जब आपने शुरुआत में "प्रतिकूल" कहा था, मैंने सोचा था कि आपका मतलब है कि इसका प्रभाव उल्लिखित उद्देश्य से जुड़ा हुआ था, यानी निरंतर अनुस्मारक के रूप में कार्य करने के लिए कि आप उत्पादन मशीनों तक पहुंच रहे हैं। - LarsH