مع تزايد انتقال المنظمات إلى السحابة لتطوير بنيتها التحتية، أصبح إدارة الموارد السحابية بفعالية وأتمتتها أمرًا بالغ الأهمية. ومن بين أقوى الأدوات في هذا المجال هي "تيرافورم" و"أنسبل". تعمل كلا الأداتين لأغراض فريدة، حيث تمكّن الأولى من بنية تحتية ككود (IaC) بينما تختص الثانية بإدارة التكوينات. وعند استخدامهما معًا، يمكن أن تعزز كفاءة وموثوقية إدارة بنية السحابة بشكل كبير.
سيتناول هذا المقال كيفية إدارة البنية التحتية السحابية بفعالية باستخدام "تيرافورم" و"أنسبل"، من خلال استكشاف ميزاتهما، وحالات الاستخدام، وكيفية دمجهما لتحقيق أفضل النتائج.
فهم تيرافورم
ما هو تيرافورم؟
تيرافورم هو أداة مفتوحة المصدر طوّرتها شركة هاشي كورب، تسمح لك بتحديد وتوفير بنيتك التحتية السحابية باستخدام لغة تكوين عالية المستوى تعرف باسم "لغة تكوين هاشي كورب" (HCL) أو JSON. مع تيرافورم، يمكنك إدارة البنية التحتية عبر مزودي سحابة مختلفين مثل AWS، Azure، Google Cloud Platform، وغيرها.
الميزات الرئيسية لتيرافورم
-
البنية التحتية ككود (IaC): يتيح لك تيرافورم إدارة البنية التحتية ككود، مما يعني أنه يمكنك التحكم في إصدارات تكوينات البنية التحتية كما تفعل مع كود التطبيقات. وهذا يؤدي إلى مزيد من التناسق وإمكانية تتبع التغييرات.
-
رسم بياني للموارد: يقوم تيرافورم ببناء رسم بياني للاعتماديات بين الموارد، مما يتيح له إنشاء أو تعديل الموارد بالترتيب الأكثر كفاءة.
-
خطة التنفيذ: يولد تيرافورم خطة تنفيذ تعرض ما هي الإجراءات التي ستتم قبل إجراء أي تغييرات. وهذا يسمح بفهم أفضل ومراجعة التغييرات.
-
أتمتة التغييرات: مع تيرافورم، يمكنك أتمتة تغييرات البنية التحتية، مما يقلل من فرص حدوث أخطاء بشرية.
-
دعم متعدد السحابة: يدعم تيرافورم عدة مزودي سحابة وخدمات، مما يجعله أداة متعددة الاستخدامات لاستراتيجيات السحابة الهجينة.
سير العمل الأساسي لتيرافورم
- كتابة: تحديد بنيتك التحتية باستخدام HCL في ملفات
.tf
. - التخطيط: تشغيل أمر
terraform plan
لعرض التغييرات التي ستتم. - التطبيق: تنفيذ أمر
terraform apply
لتنفيذ التغييرات. - التدمير: استخدام أمر
terraform destroy
لتدمير البنية التحتية عندما لا تكون هناك حاجة إليها.
فهم أنسبل
ما هو أنسبل؟
أنسبل هو أداة مفتوحة المصدر لأتمتة العمليات التي تسهل عملية تكوين وإدارة الأنظمة. يستخدم أنسبل تنسيق YAML بسيط وسهل القراءة من البشر لتعريف المهام الأتمتة. أنسبل لا يتطلب عميلًا (Agentless)، مما يعني أنه لا يحتاج إلى أي برنامج مثبت على الآلات المستهدفة، مما يجعله سهل الاستخدام عبر بيئات متعددة.
الميزات الرئيسية لأنسبل
-
إدارة التكوين: يتيح لك أنسبل تحديد الحالة المطلوبة للأنظمة وفرض تلك الحالة تلقائيًا.
-
أتمتة المهام: يمكنك أتمتة المهام الروتينية مثل تثبيت البرمجيات، تغييرات التكوين، والتحديثات.
-
الأوامر المؤقتة: يتيح أنسبل للمستخدمين تنفيذ أوامر على عدة أجهزة في وقت واحد دون الحاجة لإنشاء كتاب تشغيل دائم.
-
إدارة المخزون: يحتفظ أنسبل بمخزون من المضيفين لإدارتهم، مما يسهل تجميع واستهداف مجموعات محددة من الأجهزة.
-
القابلية للتوسيع: يمكن توسيع أنسبل من خلال مجموعة من الوحدات الإضافية.
سير العمل الأساسي لأنسبل
- المخزون: تحديد المضيفين الذين ترغب في إدارتهم في ملف المخزون.
- كتب التشغيل: كتابة ملفات YAML التي تحدد المهام التي تريد تنفيذها على المضيفين.
- التنفيذ: تنفيذ كتاب التشغيل باستخدام أمر
ansible-playbook
.
لماذا تستخدم تيرافورم وأنسبل معًا؟
بينما يتفوق تيرافورم في توفير البنية التحتية، يتألق أنسبل في تكوين وإدارة تلك البنية التحتية. من خلال دمج هذه الأدوات، يمكنك تحقيق سير عمل سلس:
- توفير البنية التحتية: استخدام تيرافورم لإنشاء وإدارة الموارد السحابية.
- تكوين الموارد: استخدام أنسبل لتكوين تلك الموارد، وتثبيت البرمجيات، وتطبيق التكوينات اللازمة.
- أتمتة العمليات: دمج الأداتين في خط أنابيب CI/CD لإدارة التوفير والتكوين بشكل آلي.
إعداد تيرافورم
المتطلبات المبدئية
- تثبيت تيرافورم: قم بتحميل وتثبيت تيرافورم من الموقع الرسمي رابط تحميل تيرافورم.
- حساب مزود السحابة: قم بإعداد حساب مع مزود السحابة الذي تختاره (مثل AWS، Azure، GCP).
- وصول API: توليد مفاتيح الوصول أو رموز المصادقة لمزود السحابة.
إنشاء أول تكوين لتيرافورم
- إنشاء دليل: أنشئ دليلًا جديدًا لمشروعك في تيرافورم.
- تهيئة تيرافورم: قم بتشغيل الأمر التالي لتهيئة مشروعك في تيرافورم.
- التخطيط والتطبيق: قم بتشغيل الأوامر التالية لرؤية خطة التنفيذ وإنشاء البنية التحتية.
- التحقق: سجل الدخول إلى وحدة تحكم AWS الخاصة بك لرؤية المثيل EC2 الذي تم إنشاؤه.
إعداد أنسبل
المتطلبات المبدئية
- تثبيت أنسبل: قم بتثبيت أنسبل على جهازك المحلي أو عقدة التحكم. يمكنك اتباع التعليمات في وثائق أنسبل الرسمية.
- الوصول عبر SSH: تأكد من أن لديك وصول SSH إلى المثيلات التي تم إنشاؤها بواسطة تيرافورم.
إنشاء أول كتاب تشغيل لأنسبل
- إنشاء دليل: أنشئ دليلًا جديدًا لمشروعك في أنسبل.
- إنشاء ملف المخزون: أنشئ ملفًا باسم
inventory.ini
لتعريف المضيفين. - إنشاء كتاب تشغيل: أنشئ ملفًا باسم
setup.yml
يحتوي على المحتوى التالي لتثبيت Nginx على مثيل EC2 الخاص بك. - تشغيل كتاب التشغيل: قم بتنفيذ كتاب التشغيل باستخدام الأمر التالي.
- التحقق: الوصول إلى عنوان IP العام للمثيل EC2 في متصفح ويب لرؤية صفحة الترحيب الخاصة بـ Nginx.
دمج تيرافورم وأنسبل
نظرة عامة على سير العمل
- توفير الموارد باستخدام تيرافورم: استخدم تيرافورم لتحديد وتوفير بنيتك التحتية السحابية.
- تصدير المخرجات: استخدم ميزة الإخراج في تيرافورم للحصول على معلومات حول الموارد التي أنشأتها (مثل عنوان IP العام لمثيل EC2).
- تمرير المخرجات إلى أنسبل: استخدم المخرجات المصدرة في أنسبل لاستهداف الموارد التي تم إنشاؤها حديثًا.
مثال: دمج تيرافورم وأنسبل
- تعديل تكوين تيرافورم: تحديث ملف
main.tf
لإضافة إخراج لعنوان IP العام لمثيل EC2. - تيرافورم: تطبيق التغييرات لإنشاء المثيل وعرض عنوان IP الخاص به.
- تحديث مخزون أنسبل: تعديل ملف
inventory.ini
لاستخدام الإخراج من تيرافورم. يمكنك فعل ذلك يدويًا أو باستخدام أمرterraform output
. - تشغيل كتاب تشغيل أنسبل: الآن، قم بتشغيل كتاب التشغيل في أنسبل كما فعلت سابقًا لتكوين المثيل الذي تم إنشاؤه.
أفضل الممارسات لاستخدام تيرافورم وأنسبل
- إدارة الإصدارات: احفظ تكوينات تيرافورم وأنسبل في نظام إدارة الإصدارات مثل Git. هذا يسهل التعاون وتتبع التغييرات.
- إدارة الحالة: استخدم تخزين الحالة عن بُعد لتيرافورم (مثل Terraform Cloud أو AWS S3) لإدارة ملفات الحالة بأمان وتمكين التعاون بين أعضاء الفريق.
- التصميم المعياري: قسم تكوينات تيرافورم إلى وحدات قابلة لإعادة الاستخدام لتعزيز مبدأ DRY (لا تكرر نفسك) وتحسين الصيانة.
- استخدام المتغيرات: استخدم المتغيرات في كل من تيرافورم وأنسبل لجعل التكوينات أكثر مرونة وقابلة لإعادة الاستخدام.
- الاختبار والتحقق: نفذ اختبارات لتكوينات تيرافورم باستخدام أدوات مثل
Terraform validate
. بالنسبة لأنسبل، يمكن استخدامmolecule
لاختبار الأدوار وكتب التشغيل. - التوثيق: وثق كود البنية التحتية وكتب التشغيل بشكل جيد. يساعد هذا أعضاء الفريق على فهم الغرض من التكوينات ووظائفها.
إدارة البنية التحتية السحابية بفعالية يتطلب دمج أدوات التوفير وإدارة التكوين. يمكن أن يسهل تيرافورم وأنسبل العملية، ويحسن الموثوقية، ويقلل من التدخل اليدوي. من خلال تطبيق أفضل الممارسات ودمج هذه الأدوات في سير العمل الخاص بك، يمكنك إنشاء استراتيجية قوية وقابلة للتطوير لإدارة البنية التحتية السحابية.