تقليم الخيوط: الهجرة من Puppet Enterprise إلى برج Ansible. الجزء الأول

خفضت خدمة معلومات الأقمار الصناعية البيئية الوطنية (NESDIS) تكاليف إدارة تكوين Red Hat Enterprise Linux (RHEL) بنسبة 35٪ من خلال الانتقال من Puppet Enterprise إلى Ansible Tower. في هذا الفيديو الخاص بفئة "كيف فعلنا ذلك" ، يثبت مهندس النظام مايكل راو تنفيذ هذا الترحيل ، ويشارك النصائح المفيدة والخبرة المكتسبة نتيجة للانتقال من SCM إلى آخر.

ستتعلم من هذا الفيديو:

  • كيفية تبرير إدارة جدوى الانتقال من Puppet Enterprise إلى Ansible Tower ؛
  • ما الاستراتيجيات التي ستستخدم للانتقال الأكثر سلاسة ؛
  • نصائح لتحويل ترميزات PE في Ansible Playbook ؛
  • أفضل الممارسات لتثبيت برج Ansible.



تحياتي للجميع ، اسمي مايكل راو ، وأنا مهندس نظم أول في ActioNet ، التي تعمل في إدارة NESDIS الوطنية لإدارة المحيطات والغلاف الجوي (NOAA). سنتحدث اليوم عن تقليم الخطوط - تجربتي الخاصة في الترحيل من Puppet Enterprise إلى Ansible Tower. موضوع هذا العرض التقديمي هو "إلقاء نظرة على ندوبي" المتبقية بعد أن أجريت هذا الانتقال في بداية العام. أريد أن أقول ما تعلمته خلال هذه العملية. لذلك عندما تفعل ذلك ، باستخدام تجربتي ، يمكنك إجراء الانتقال دون صعوبة كبيرة.

ترى شرائح مماثلة لهذه في بداية كل عرض في Ansible Fest. تعرض هذه الشريحة سجل أتمتة شركتي. لست جديدًا في هذا النشاط التجاري لأنني أستخدم Puppet / Puppet Enterprise منذ عام 2007. لقد بدأت العمل مع Ansible في عام 2016 ، وقد جذبني ، مثل العديد من المستخدمين الآخرين لهذا المنتج ، إمكانية "الحيل" باستخدام سطر الأوامر والنصوص البسيطة (كتب اللعب). في نهاية عام 2017 ، لجأت إلى قيادتي حول الأسباب الجيدة للانتقال إلى برج Ansible. بعد دقيقة سأتحدث عن الأسباب التي دفعتني لاتخاذ هذه الخطوة. بعد الحصول على موافقة الإدارة ، استغرق الأمر عدة أشهر لتحقيق الخطة ، وقمت بالانتقال في يناير-فبراير من هذا العام. لذا ، تخلينا تمامًا عن العرائس لصالح Ansible ، وهذا شيء رائع.



أكثر ما يجذبني إلى Ansible هو القدرة على الكتابة واستخدام الأدوار والنصوص (كتب اللعب). تعتبر الأدوار رائعة لإنشاء مهام (مهام) مختلفة ولكنها مترابطة ووضع جميع البيانات المتعلقة بهذه المهام في مكان واحد. Playbook هو بناء جملة YAML ، وهو ملف نصي يصف إجراءات لمضيف واحد أو أكثر. أتحدث عن هذه الميزات للمستخدمين ، في المقام الأول مطوري البرامج. يجعل Ansible Tower من الممكن القول: "لا ، لا يمكنك الوصول إلى shell ، لكني أعطيك الفرصة لبدء جميع عمليات البرج وإعادة تشغيل الخدمة عندما تحتاج إليها." سأخبرك عن بيئة العمل والمعدات التي نستخدمها.



هذه شبكة محلية اتحادية و 7 مواقع فعلية متصلة عبر MPLS المستندة إلى السحابة و 140 خادم RHEL ، 99٪ منها افتراضية (vSphere) وأجهزة SuperMicro و NexentaStore NAS ومجموعة من مفاتيح Cisco و Arista و Cumulus وأدوات Fortinet UTM الموحدة لإدارة التهديدات على كل موقع .

تعني الشبكة الفيدرالية أنه يجب علي استخدام جميع وسائل حماية المعلومات المنصوص عليها في القوانين التشريعية. يجب أن تضع في اعتبارك أن Puppet Enterprise لا تدعم معظم المعدات التي نستخدمها. نحن مضطرون لاستخدام أجهزة الميزانية لأن الوكالات الحكومية تواجه مشاكل في تمويل هذا البند من الإنفاق. لذلك ، نشتري أجهزة من فئة SuperMicro ونجمع معداتنا من قطع فردية ، والتي يتم ضمان صيانتها بموجب عقود حكومية. نحن نستخدم Linux ، وهذا أحد الأسباب المهمة للتبديل إلى Ansible.

هذا هو تاريخنا مع الدمى.



في عام 2007 ، كان لدينا شبكة صغيرة من 20-25 عقدة ، قمنا بنشر الدمى فيها. في الأساس ، كانت هذه العقد مجرد "مربعات" من RedHat. في عام 2010 ، بدأنا في استخدام واجهة ويب Puppet Dashboard لـ 45 عقدًا. مع استمرار التوسع في الشبكة ، تحولنا في 2014 إلى PE 3.3 ، مما أدى إلى انتقال كامل مع إعادة كتابة البيان لـ 75 عقدة. كان يجب القيام بذلك لأن Puppet يحب تغيير قواعد اللعبة ، وفي هذه الحالة قاموا بتغيير اللغة تمامًا. بعد مرور عام ، عندما توقف دعم الإصدار 3 من Puppet Enterprise ، اضطررنا إلى الهجرة إلى PE 2015.2. اضطررت مرة أخرى إلى إعادة كتابة البيان للخوادم الجديدة وشراء ترخيص باحتياطي من 100 عقدة ، على الرغم من أنه في ذلك الوقت كان لدينا 85 عقدة فقط.

مرت سنتان فقط ، ومرة ​​أخرى كان علينا القيام بالكثير من العمل للتبديل إلى الإصدار الجديد من PE 2016.4. اشترينا ترخيصًا لـ 300 عقدة ، بإجمالي 130 عقدًا. كان علينا مرة أخرى إجراء تغييرات كبيرة على البيان ، لأن الإصدار الجديد من اللغة يحتوي على بنية مختلفة عن لغة إصدار 2015. نتيجة لذلك ، تحول SCM الخاص بنا من نظام التحكم في إصدار SVN إلى Bitbucket (Git). تلك كانت "علاقتنا" مع العرائس.

لذلك ، كان علي أن أشرح للإدارة لماذا نحتاج إلى التبديل إلى SCM آخر باستخدام الحجج التالية. الأول هو السعر المرتفع للخدمة. تحدثت مع رجال RedHat وقالوا إن تكلفة الحفاظ على شبكة من 300 عقدة باستخدام برج Ansible هو نصف تكلفة Puppet Enterprise. إذا قمت بشراء محرك Ansible آخر ، فستكون التكلفة تقريبًا ، ولكنك ستحصل على ميزات أكثر بكثير من PE. نظرًا لأننا شركة حكومية ممولة من الميزانية الفيدرالية ، فهذه حجة كبيرة.



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

يعمل نظام Ansible Tower بشكل مختلف لأنه لا يحتوي على أي وكلاء ، ولكن هناك وحدات تدعم محولات Cisco وجميع المحولات الأخرى. يدعم SCM هذا نظام التشغيل Qubes و Linux و 4.NET UTM. يدعم Ansible Tower أيضًا NASentaStore NASs استنادًا إلى Illumos kernel ، وهو نظام تشغيل مفتوح المصدر يستند إلى Unix. هذا القليل من الدعم ، لكن برج Ansible يفعل ذلك على أي حال.

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

بصراحة ، يعقد Puppet عملك كمطور ، لأنه يعتمد على استخدام Puppet Master. هذه هي الآلة الوحيدة المصرح لها بالتواصل مع وكلاء الدمى. إذا أجريت أي تغييرات على البيان وأردت اختبار الرمز الخاص بك ، فيجب إعادة كتابة التعليمات البرمجية لـ Puppet Master ، أي تكوين ملف Puppet الرئيسي / etc / hosts لتوصيل جميع العملاء وبدء خدمة Puppet Server. عندها فقط يمكنك اختبار تشغيل معدات الشبكة على مضيف واحد. هذا إجراء مؤلم إلى حد ما.
في Ansible ، كل شيء أبسط بكثير. كل ما يجب القيام به هو تطوير كود لجهاز يمكنه الاتصال عبر SSH مع المضيف قيد الاختبار. هذا أسهل بكثير للعمل معه.

الميزة الإضافية الكبيرة التالية من Ansible Tower هي القدرة على الاستفادة من نظام الدعم الحالي الخاص بك وحفظ تكوين الأجهزة الموجودة لديك. يستخدم SCM هذا دون أي إجراءات إضافية جميع المعلومات المتاحة حول البنية التحتية والمعدات والأجهزة الظاهرية والخوادم وما إلى ذلك. يمكنه التواصل مع خوادم RH Satellite ، إن وجدت ، ويوفر لك التكامل الذي لن تحصل عليه أبدًا عند العمل مع Puppet.

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

يحميك البرج من هذا. يمكنك تنفيذ عمليات مختلفة على مجموعة متنوعة من المعدات دون قيود ، يمكنك القيام بالعمل الرئيسي ، وبدء عمليات مهمة أخرى ، وتكوين نظام الأمان ، والعمل مع قواعد البيانات. يمكنك القيام بكل ما يأتي بصعوبات معينة في Puppet Enterprise. لذا ، إذا قمت بتكوين على مضيف واحد ، فسوف يستغرق الأمر بعض الوقت حتى تصبح التغييرات نافذة المفعول على المضيفين الآخرين. في Ansible ، تسري جميع التغييرات في وقت واحد.

أخيرًا ، ضع في اعتبارك وحدة الأمان. في برج Ansible ، يتم تنفيذه ببساطة مذهلة ، بدقة كبيرة وشمولية. يمكنك تزويد المستخدمين بإمكانية الوصول إلى خدمات معينة أو إلى مضيفين محددين. أفعل ذلك مع الموظفين الذين اعتادوا على العمل على Windows ، مما أدى إلى تقييد وصولهم إلى Linux shell. أقدم لهم الوصول إلى البرج حتى يتمكنوا من القيام بالعمل فقط وتشغيل تلك الخدمات التي تقع ضمن اختصاصهم فقط.



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

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

بعد ذلك ، تحتاج إلى تحديد ما تتوقعه من Ansible Tower ، ما الذي يجب أن يفعله هذا النظام بالضبط لك.



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

ثم ابدأ كتابة التعليمات البرمجية للنصوص والأدوار التي ستساعدك على إكمال المهام المخططة. ادمجها في المشاريع ، وهي مجموعة منطقية من نصوص كتب التشغيل ذات الصلة. سيرتبط كل مشروع بمستودع Git منفصل أو مستودع آخر بناءً على مدير الشفرة الذي تستخدمه. يمكنك إدارة نصوص playbook النصية وأدلة playbook عن طريق وضعها يدويًا في Project Base Path على خادم Tower ، أو عن طريق وضع دليل التشغيل في أي نظام لإدارة كود مصدر البرج (SCM) ، بما في ذلك Git و Subversion و Mercurial و Red Hat Insights. في مشروع واحد ، يمكنك وضع العديد من البرامج النصية كما تريد. على سبيل المثال ، أنشأت مشروعًا أساسيًا واحدًا ، وضعت فيه نصًا للعناصر الرئيسية لـ RedHat ، وهو نص أساسي لأساسيات Linux ،سيناريوهات خطوط الأساس المتبقية. وهكذا ، في مشروع واحد كان هناك مجموعة متنوعة من الأدوار والنصوص التي تمت إدارتها من مستودع Git واحد.

قم بتشغيل كل هذه الأشياء من خلال سطر الأوامر ، فهذه طريقة جيدة لاختبار أدائها. بهذه الطريقة تستعد لتثبيت البرج.

لنتحدث قليلاً عن تحويل شفرة الدمى ، لأنني أمضيت الكثير من الوقت عليها حتى اكتشفت ما الذي يجب فعله حقًا.



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

18:00

تقليم الخيوط: الانتقال من Puppet Enterprise إلى برج Ansible. الجزء 2

القليل من الدعاية :)


أشكركم على البقاء معنا. هل تحب مقالاتنا؟ هل تريد رؤية مواد أكثر إثارة للاهتمام؟ ادعمنا عن طريق تقديم طلب أو التوصية لأصدقائك VPS القائم على السحابة للمطورين من $ 4.99 ، وهو نظير فريد من نوعه لخوادم مستوى الدخول التي اخترعناها لك: الحقيقة الكاملة عن VPS (KVM) E5-2697 v3 (6 نوى) 10GB DDR4 480GB SSD 1Gbps من $ 19 أو كيفية تقسيم الخادم؟ (تتوفر الخيارات مع RAID1 و RAID10 ، حتى 24 مركزًا و 40 جيجابايت DDR4).

Dell R730xd أرخص مرتين في مركز بيانات Equinix Tier IV في أمستردام؟ فقط لدينا 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV من 199 دولارًا في هولندا!Dell R420 - 2x E5-2430 2.2 جيجا هرتز 6C 128 جيجا بايت DDR3 2x960GB SSD 1Gbps 100TB - من 99 دولار! اقرأ عن كيفية بناء مبنى البنية التحتية الفئة c باستخدام خوادم Dell R730xd E5-2650 v4 بتكلفة 9000 يورو مقابل سنت واحد؟

All Articles