Ansible – أتمتة DevOps

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

أتمتة البنية التحتية باستخدام Ansible

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

Ansible هي أداة مفتوحة المصدر لأتمتة مهام إدارة الأنظمة. وهي مكتوبة بلغة Python ولا تتطلب تثبيت وكلاء على الأجهزة المُدارة. لوصف التكوينات، يُستخدم تنسيق YAML وبروتوكول SSH للاتصال بالخوادم. بفضل تركيبها النحوي البسيط والقابل للقراءة، انتشرت Ansible على نطاق واسع بين الشركات الكبرى، بما في ذلك NASA وTwitter وRed Hat.

أساسيات العمل مع Ansible

التعريف ومبادئ العمل

تعمل Ansible كأداة لأتمتة التكوينات، وإدارة الخوادم، وتنسيق العمليات، ونشر التطبيقات. أساس البنية هو لغة Python، ولوصف المهام يُستخدم YAML كلغة خاصة بالمجال (DSL).

المزايا الرئيسية

تضمن بنية Ansible الخالية من الوكلاء سهولة النشر وتقليل التكاليف الإضافية للصيانة. استخدام بروتوكول SSH للاتصال بالأجهزة البعيدة يضمن أمان نقل البيانات. بناء جملة YAML يجعل ملفات التكوين قابلة للقراءة البشرية وسهلة الصيانة.

قابلية التوسع من خلال وحدات Python تسمح بإنشاء حلول مخصصة لمهام محددة. دعم أنظمة التشغيل Windows وLinux يضمن التنوع في الاستخدام في البيئات غير المتجانسة.

عملية التثبيت

يتم تثبيت Ansible عبر مدير الحزم pip:

pip install ansible

طريقة بديلة للتثبيت عبر مدير الحزم النظامي:

sudo apt install ansible

بنية النظام ومكوناته

المكونات الأساسية لـ Ansible

المكون الوظيفة الوصف
Inventory قائمة الأجهزة المُدارة يحتوي على معلومات عن الخوادم وتجميعها
Playbook مجموعة مهام في ملف YAML يصف تسلسل العمليات المطلوب تنفيذها
Module عملية منفردة ينفذ إجراءات محددة: نسخ، تثبيت حزم
Role هيكل منطقي قابل لإعادة الاستخدام يجمع المهام ذات الصلة في كتل منطقية
Variable متغيرات وقوالب يوفر تخصيص التكوينات عبر المعاملات
Plugin توسيع السلوك يضيف وظائف عبر إضافات callback وconnection

هيكل Inventory

Inventory هو ملف يصف الأجهزة المُدارة وتجميعها:

[web]
web1 ansible_host=192.168.1.10
web2 ansible_host=192.168.1.11

[database]
db1 ansible_host=192.168.1.20
db2 ansible_host=192.168.1.21

يمكن أن يحتوي Inventory على متغيرات للمجموعات والأجهزة الفردية. هذا يسمح بتخصيص سلوك Ansible للخوادم المختلفة دون تغيير ملفات playbook الرئيسية.

إنشاء وهيكل Playbook

أساسيات العمل مع Playbook

Playbook هو سيناريو بتنسيق YAML يصف المهام وترتيب تنفيذها. يتكون كل playbook من play واحد أو أكثر، والتي تحدد الإجراءات لمجموعات محددة من الأجهزة.

الهيكل الأساسي لـ playbook يشمل العناصر التالية:

- name: تثبيت                

المدونات

توصيات الكتب