بناء البنية التحتية كرمز مع GitLab و Ansible


كل قوة GitLab CI في إظهار قواعد اللعب Ansible مع البنية التحتية كنهج رمز.


GitLab CI هي أداة فعالة لمجموعة واسعة من السيناريوهات ، بما في ذلك البنية التحتية كرمز. يمكن استخدام GitLab مع أدوات مختلفة ، ولكن في هذا العرض التوضيحي ، سوف نأخذ Ansible ، لأن المطورين هم الذين يستخدمونها في أغلب الأحيان مع إطار العمل كنهج للبنية التحتية. إليك عرض توضيحي يحتوي على جهازي توجيه من الدورة التدريبية على شبكات Ansible .


جمال GitLab CI هو أنه يمكن تغيير التعليمات البرمجية من قواعد اللعبة Ansible وتسليمها دون تثبيت أي تبعيات محليًا. يمكن إكمال مشروع تجريبي يؤدي إلى تحديث سلاسل SNMP على جميع الأجهزة كل شهر وفقًا لسياسة الأمان الخاصة بنا على GitLab.com ، خدمة استضافة التعليمات البرمجية الخاصة بنا.


للبدء ، افتح Ansible playbook ، حيث توجد 4 مهام:


  • جمع حقائق جهاز التوجيه - جمع الحقائق حول أجهزة التوجيه.
  • نسخة العرض - نسخة العرض
  • عرض الرقم التسلسلي
  • تكوين SNMP - تكوين SNMP.

في هذا العرض التوضيحي ، سوف نركز على تكوين سلاسل SNMP ، والتي تحتاج إلى اتباع بعض الخطوات البسيطة.


بدءا من لوحة المهام


أي خطة على GitLab تبدأ بنفس الطريقة: مع مهمة . لذلك ، فإن الخطوة الأولى لسير عمل GitLab هي التحقق من لوحة المهام في مشروع العرض التوضيحي . على لوحة المهام ansible-demo ، نرى المهمة بالفعل: تغيير خطوط SNMP على جميع أجهزة التوجيه . تحتوي المهمة على رابط إلى صفحة الويكي الخاصة بسياسة أمان GitLab ، حيث تنص على ضرورة تحديث خطوط SNMP كل شهر ، وبالنسبة لعمليات القراءة فقط والقراءة والكتابة ، يجب أن يكون هناك أسطر مختلفة.



تنص سياسة أمان GitLab على تحديث سلاسل SNMP كل شهر.


ثم تحتاج إلى التحقق من أن الأوامر الخاصة بتكوين سلاسل SNMP في العرض التوضيحي مع جهازي توجيه لا تنتهك سياسة أمان GitLab الموضحة في المهمة.



تتوفر أوامر لتكوين سلاسل SNMP على Ansible playbook.


ثم عد إلى المهمة ، وقم بتعيينها لنفسك وقم بتغيير الاختصار من to-do إلى أخرى على اللوحة اليمنى أو ببساطة اسحب المهمة على اللوحة من عمود إلى آخر.


إنشاء طلب دمج


تحتاج الآن إلى إنشاء طلب دمج من المهمة. تأكد من أن طلب الدمج يحتوي على علامة "العمل قيد التقدم" (WIP) بحيث لا يدخل المعالج قبل الأوان. بدلاً من الاتصال محليًا ، نستخدم GitLab Web IDE لأن التغييرات على خطوط SNMP بسيطة.


  • افتح قسم العرض التوضيحي CI / CD.
  • اذهب إلى كتاب Ansible.
  • قم بتغيير قسم SNMP كما يلي:
  • يرجى ملاحظة أنه تم تكوين خطوط مختلفة من أجل RO و RW وفقًا لسياسة أمان GitLab الموضحة في المهمة .

ارتكاب ارتكاب


لقد قمت بتحديث خط SNMP وفقًا للتعليمات ، والآن تحتاج إلى تنفيذ التغييرات. افتح مقارنة تغيير موازية للتأكد من أن طلب الدمج يحتوي على الالتزام الأخير.



تُظهر أداة المقارنة المتوازية التغييرات بصريًا.


النتائج


سيؤدي الالتزام بالتغييرات تلقائيًا إلى تشغيل خط أنابيب GitLab CI. سوف يقوم بالمهام التالية:


  • تحقق بناء الجملة
  • يعمل الاختبار.
  • اختبار التغييرات في المختبر / بيئة اصطناعية.

نرى التقدم والإخراج لكل وظيفة في خط أنابيب GitLab CI الذي يقوم بتحديث SNMP.



يوضح الإخراج من مهمتك أن تحديثات SNMP في البيئة الاصطناعية كانت ناجحة.


سيتم إطلاق كل هذه المهام وتوثيقها في طلب الدمج.



تشير العلامات المرجعية إلى أن المهمة في خط أنابيب GitLab CI قد اكتملت.


ثم قم بتسجيل الدخول إلى أجهزة التوجيه للحصول على عرض توضيحي وشاهد التغييرات.



تنعكس التغييرات في سلاسل SNMP RO و RW في أجهزة التوجيه.


دمج مراجعة الطلب


يمكنك تنفيذ خطوة إضافية - الموافقة على طلب الدمج . إذا قمت بإعداد الموافقة ، فسيكون بإمكان العديد من المستخدمين التحقق من التغييرات قبل بدء الإنتاج.



يمكن تكوين طلب دمج بحيث يقوم مستخدم آخر بفحص أعمالك قبل ظهورها في المعالج.


نقل إلى السيد


يمكن إرسال التغييرات إلى المعالج مباشرة بعد الاختبار. المعالج هو الفرع الرئيسي الذي يحتوي على رمز مساحة العمل.


عندما تكون جاهزًا ، انقر فوق الزر " Resolve Work In Progress . ثم انقر فوق Merge .


عند تمكين حالة WIP ، يمكن إرسال طلب الدمج إلى المعالج ، ويمكن إغلاق المهمة.


سيقوم خط الأنابيب الجديد بإجراء جميع الاختبارات التي أجريتها في الخطوة الإضافية المتمثلة في إطلاق playbook في الإنتاج.


تتبع التقدم المحرز وسجلات على شاشة خط أنابيب. عند اكتمال العملية ، قم بتسجيل الدخول إلى أجهزة التوجيه العاملة وتحقق من تغيير خطوط SNMP.


Magic GitLab CI


كل هذا ممكن بفضل سحر GitLab CI. خطوط أنابيب GitLab CI هي سلسلة من المهام المتتابعة التي تؤدي كل ما هو ضروري لاختبار وتطبيق Ansible code.


يتلاءم التكوين الكامل لـ GitLab CI في ملف YAML بسيط ، والذي يتم تخزينه في .gitlab-ci.yml .


في هذا العرض التوضيحي ، يحتوي .gitlab-ci.yml على 3 خطوات.


  1. النشر (النشر): لإنشاء شبكة مقلدة مع جهازي توجيه في AWS باستخدام Ansible.
  2. العرض التوضيحي: يؤدي كتاب اللعب الذي سيغير خطوط SNMP.
  3. تدمير: يدمر شبكة مقلدة مع جهازي توجيه.

يبدأ GitLab CI مع صورة أساسية. في هذه الحالة ، نستخدم صورة Docker ، التي تحتوي على جميع التعليمات البرمجية الضرورية وتبعيات Ansible. أشر إلى الأوامر التي سيتم تنفيذها في كل مرحلة ، والتبعيات.



يحتوي ملف YAML البسيط على ثلاث مراحل من GitLab CI.



مرحلة العرض التوضيحي لـ GitLab CI ، التي تدير كتاب Ansible.


نظرنا داخل خط الأنابيب ورأينا كيف يمكنك استخدام GitLab CI لإنشاء بنية تحتية كرمز دون حتى تثبيت تبعيات Ansible على جهاز الكمبيوتر الخاص بك. هذا مجرد مثال واحد على كيفية استخدام GitLab CI لتنفيذ البنية التحتية كرمز. شاهد الفيديو للحصول على دليل كامل:


Source: https://habr.com/ru/post/ar459984/


All Articles