سؤال كيف تجعل من الواضح أنك في نظام الإنتاج؟


بعض منا في شركتي لديهم وصول الجذر على خوادم الإنتاج. نحن نبحث عن وسيلة جيدة لجعلها جدا واضح عندما يكون لدينا ssh'd في.

بعض الأفكار التي حصلنا عليها هي:

  • أحمر عاجل موجه
  • الإجابة على اللغز قبل الحصول على قذيفة
  • اكتب كلمة عشوائية قبل الحصول على شل

ما هي بعض التقنيات التي تستخدمها يا رفاق للتمييز بين أنظمة الإنتاج؟


132
2017-10-19 18:21


الأصل


هل هناك طريقة لتعليم الناس تجنب استخدام أنظمة الإنتاج؟ إذا كان لديك كل شيء في إيداع Puppet ، على سبيل المثال ، تحتاج فقط إلى تسجيل الدخول إلى أنظمة الإنتاج لاستكشاف الأخطاء وإصلاحها. - Alex Holst
أنت تسمح لجذر ssh الوصول إلى أنظمة الإنتاج الخاصة بك ؟؟؟ !!!!! - symcbean
symcbean: هذا ليس ما قاله Sionide. كان يمكن أن يعني بعد لك SSH في حساب المستخدم الخاص بك. - Zan Lynx
هل أصبح هذا السؤال مرشحًا لمنتدى ويكي؟ - MadHatter
يمكنك جعله واضحًا جدًا أنه نظام إنتاج عن طريق تعطيل SSH إليه. لا يمكن أن يكون أكثر وضوحا من ذلك. - 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
على خوادم Windows ، أستخدم لون سطح مكتب ورديًا مشرقًا وأشرطة بلون أصفر مشرق / مخطط ألوان بحيث يكون واضحًا حقًا. هذه هي نسختنا من موجه الأوامر الملونة - Mark Henderson♦
أود أن أضيف التنين ASCII في المزيج. - Nicholas Smith


ليس تماما نفس الشيء ، ولكن هذا الموقع توصي بإلزام مطوريك بارتداء سمبريرو وردي عند إجراء تغييرات على أنظمة الإنتاج. ربما يمكن أن يكون لديك قاعدة مماثلة ل sshing في نفوسهم.

developer wearing a pink sombrero


75
2017-10-20 04:58



هاها! +1 لأنني LOL'd. ولكن على محمل الجد ، يمكن للناس أن يبحثوا عن نظارتهم المفقودة أثناء ارتدائها ، وأشك في أن القبعة ستكون بمثابة "تذكير دائم". أيضا ، فإنه لا شيء يساعدك على تذكر أي نافذة هو الذي. - Felix Dombek
نعم ، يجب عليك تغيير العملية لتكون: 1) تعلن عن رغبتك في تحرير الإنتاج. 2) الخروج من سمبريرو وإغلاق جميع النوافذ الأخرى. 3) هل الاشياء الإنتاج في حين أن الجميع يراقب. 4) تسجيل الخروج من الجلسة وإزالة sombrero. - Aric TenEyck
"2) اخرج من السومبريرو وأغلق جميع النوافذ الأخرى" لن ينجح ذلك في شركتي ، حيث أن هذه الخطوة 2 من جميع إجراءات التشغيل القياسية الخاصة بنا. الخطوة 1 هي بالطبع "تشغيل الأضواء" ، لأنه ، مع النوافذ مغلقة ، يمكن أن تصبح مظلمة جداً في هذا المكتب. - Parthian Shot


أكبر ما استعملته هو نظام تسمية منفصل حيث يتم تسمية أنظمة prod بشكل مختلف عن حالات الاختبار / التطوير. هذا يجعل موجه نمط "اسم المستخدم @ اسم المضيف:" نمط مختلف بشكل واضح. وبوضوح أعني أكثر من كلمات مختلفة ، تنسيقات مختلفة أيضًا:

مثال: PRD-WEB001 مقابل DEVEL-BOB-WEB001

هذا له العديد من الأشياء تسير عليه:

  • يجعل كتلة hypenated إضافية مجموعة من ثلاثة بدلاً من مجموعة من اثنين.
  • الأول من المجموعة هو طول مختلف.
  • يختلف إجمالي طول الأسماء بشكل ملحوظ ، مما يجعل تباعد أسطر الأوامر مختلفًا بالنسبة لبعضها البعض والنص الآخر في النافذة.

والأفضل من كل ذلك ، أنه لا يتطلب تهيئة خاصة للطرف من أجل الإنتاج فقط لتجنب أخطاء Oops.

في تجربتي ، فأنت تريد شيئًا يذكّر دائمًا بمكانك. طرق تسجيل الدخول مثل الألغاز جيدة لمدة 10 ثوانٍ تقريبًا ، حتى تنسى أي النافذة هي. كل ما يتطلبه الأمر هو القيام به ls في الدليل الخطأ للتمرير بانر تسجيل الدخول المشؤوم خارج العرض ، دفن نافذة المحطة الطرفية تحت نافذة المتصفح أثناء googling شيء ، alt-tab مرة أخرى إلى نافذة خاطئة والفوضى يترتب. من الأفضل أن يكون لديك بعض الإشارات البصرية الثابتة مثل موجه الأوامر المختلفة اختلافًا كبيرًا.


50
2017-10-19 18:33



يعمل ذلك جيدًا مع الأنظمة الأساسية ، ولكن بمجرد أن تغيّر dev-* لتحث على devs وتذمر لأن نصف روابطهم تتوقف عن العمل (بغض النظر عن عدد المرات التي قمت فيها بذلك من قبل) ، وأحيانًا النظام نفسه يعرج على طول نصف العمل حتى تقوم بإصلاح جميع المراجع العديدة إلى الاسم القديم في ملفات التكوين. خاصة مع البرامج الاحتكارية المثبتة ، والأسماء المستعارة DNS فقط تساعد كثيرا. والأسوأ من ذلك أنه من السهل نسيان المطالبة تمامًا أثناء تبديل النوافذ. - SilverbackNet
تحتاج أجهزة Devs إلى إنشاء إعدادات تعمل عبر dev / test / staging / production (وهذا ما أفعله ، ولكنها قصة أخرى). للحصول على "مطالبة حمراء" فعالة لـ bash (أصعب مما يبدو) ، انظر إجابتي على serverfault.com/a/479718/79266 - RichVel


هناك شيء واحد يجب أن تضعه في اعتبارك هو أن هذا يجب أن يكون تذكيرًا دائمًا ، وليس مجرد مؤشر عند وقت تسجيل الدخول. في كثير من الأحيان ، سيكون لدى شخص ما عدة قذائف تعمل في نفس الوقت في علامات تبويب مختلفة وتتحرك فيما بينها. سوف يكون بعض التطوير ، وبعض الإنتاج. لذلك عندما تقوم بتشغيل أمر ، يجب أن يكون لديك مؤشر عند هذه النقطة. لذا فإن وجود موجه خاص هو أفضل طريقة ، في تجربتي ، مع شريط عنوان / علامة تم تعديله ليكون تكملة لطيفة لهذا لإيجاد النافذة / علامة التبويب المناسبة بسهولة.

لذا أوصيك بإحضار موجه ملون (الأحمر هو الخيار الواضح) وكامل الأحرف الاستهلالية لاسم المضيف ، مع سلوك مماثل للمستخدم (المميز مقابل مقابل غير مميز) كالمطالبة. بعض الأمثلة:

colored prompts example

عادة ما شيء من هذا القبيل

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

في ملف بدء التشغيل shell الخاص بك. هذا واحد للأزرق. استبدال 44 مع 41 التنوب الأحمر ، و 42 للاخضر. ألوان أخرى وأنماط البرية المتاحة أيضا.


38
2017-10-19 21:26



للحصول على "مطالبة حمراء" فعالة لـ bash (أصعب مما يبدو) ، انظر إجابتي على serverfault.com/a/479718/79266 - يعرض أيضًا فرع git ، والدليل الحالي المقتطع ، إلخ. - RichVel


هذه هي اقتراحاتي:

1) تأكد من أن معظم الأوامر (rm، chown، chmod، /etc/init.d/*) في بيئة الإنتاج تتطلب الوصول إلى sudo

2) استخدم PS1 / PS2 للإشارة إلى أن المستخدم في خادم Prod

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

هذا سوف تظهر موجه الأوامر

[sridhar@prodappserver901 conf]$

3) في حالة استخدام عملاء Putty / SSH ، يمكنك دائمًا إعداد لون / ملف تعريف خلفية فريد لجعل خوادم الإنتاج مميزة.


14
2017-10-19 18:50



# 1 هي فكرة مثيرة للاهتمام ولكنها غير عملية لأن البرامج النصية التي تعمل كمستخدمين daemon قد تحتاج إلى استخدام rm ، chmod ، إلخ. - Zan Lynx


ما عليك سوى التفكير في أن أفكارك الثانية والثالثة تساعدك أثناء الاتصال الأولي ، ولكنها ليست ذات قيمة عند فتح عدة أجهزة طرفية والانتقال من واحد إلى آخر. فكرة sysadmin1138 لاستخدام التسمية جيدة عندما يمكن تطبيقها ولكن هناك الكثير من الحالات التي لا يمكن أن يكون فيها.

الشيء الوحيد الذي وجدته يستحق العناء هو موجه ملون. أنا أحب اللون الأخضر لـ dev / testing ، أحمر للإنتاج والأزرق للآلات في المنطقة المجردة من السلاح. وبهذه الطريقة ، حتى لو كان لديّ جهازين بنفس الاسم (في شبكات مختلفة) ، مثل عند إعداد جهاز بديل ، لا يزال بإمكاني معرفة أي جهاز أستخدمه بسهولة.


13
2017-10-19 21:16





موجه الأوامر أحمر / خاص جيد. قد يكون هناك شيء آخر هو تسجيل خروج آلي أسرع على تلك الأجهزة باستخدام المتغير TMOUT. إذا قمت بفتح العديد من النوافذ ، فستزول الإنتاج بشكل أسرع.

يجب أن يؤدي هذا إلى سلوك مختلف:

  1. طور
  2. اختبار
  3. قم بإجراء تغييراتك على خادم التدريج
  4. عندها فقط قم بعمل شرطة سريعة للإنتاج ونشرها (تمامًا كما فعلت على الخادم المرحلي)

11
2017-10-19 19:06





العمل على آلة الإنتاج مع حساب الجذر عادي هو أبدا فكرة جيدة.

لديك حساب مع أذونات sudo الكامل. لا يسمح بحفظ جلسة sudo. حظر sudo سو. استخدام كلمة مرور منفصلة لذلك (وليس واحد لديك لجهاز ديف الخاص بك). ربما قرص sudo للإبلاغ عن هوية الإنتاج من قذيفة قبل تنفيذ الأمر (عبر الاسم المستعار).

سوف يجعل أخطاء عرضية جدا صعبة. والموجه الأحمر لا يضر.


8
2017-10-20 02:44



و "sudo su" تعني "sudo -i" أو على الأقل "sudo su -" ، أليس كذلك؟ - Sparr
قف! انها Sparr! العالم الصغير :) - Sionide21
من المستحيل منع الناس من الحصول على قشرة الجذر. (sudo bash). يمكنك الحصول على shell root من أي إعداد "القائمة السوداء". (إذا كنت حريصًا ، يمكنك إيقافه باستخدام إعداد القائمة البيضاء ، ولكنه غير مضمون في المعتاد). - user606723
ليس من المفترض أن يمنع الوصول المقصود إلى قشرة الجذر - فقط بعض الطرق الشائعة التي اعتاد الناس على استخدامها حتى يتمكنوا من القيام بها دون وعي ، دون إيلاء أي اهتمام. - Mihails Strasuns


ذهبت مع فكرة الموجه الحمراء ، وجدت أنها مملة إلى حد ما للعثور على رمز العمل .bashrc.

إذن هذه هي نسختي ، جاهزة للإدراج فيها .bashrc - https://github.com/RichVel/nicer-bash-prompt. انها مدفوعة بالكامل من قبل اسم المضيف ، وطالما كان لديك نمط مناسب لأسماء المضيفين الإنتاج (أقول xyprod01، xyprod02، الخ) ستعمل بشكل جيد ، ويمكنك استخدام نفس .bashrc في جميع البيئات.

تبدو هكذا:

screenshot of red prompt

يؤدي هذا إلى إنشاء مطالبة شجاعة أفضل ، بما في ذلك المطالبة باللون الأحمر على مضيفي الإنتاج - كما يعرض لك أيضًا فرع git الحالي ، وآخر دليلين في $ PWD. ويحرص على تجنب العبث في العرض الفوري عند إجراء Ctrl / R (البحث العكسي) في bash.

يتضمن أيضًا ميزة اختيارية لمزامنة سجل bash الخاص بك عبر جميع نوافذ المطاريف ، على طول خطوط هذا الجواب. هذا جيد ولكن لا يريده الجميع ، لذلك يتم تعطيله افتراضيًا.


8
2018-02-17 17:33



هذا الأفضل!! شكر!!! - Luciano