العودة إلى المدونة

تثبيت وتكوين Ansible على Ubuntu 20.04

تثبيت وتكوين Ansible على Ubuntu 20.04

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

على Linux، هناك العديد من أنظمة إدارة التكوين المتاحة. على سبيل المثال، Puppet, Chef, Ansible, Bcfg2, Juju, CFEngine، إلخ. في حين أن أدوات مثل Puppet و Chef تميل إلى أن تكون أكثر تعقيداً وتقدماً، فإن Ansible يوفر البساطة وسهولة الاستخدام. لا يتعين عليك تثبيت أي برنامج عميل إضافي على العقد لكي يعمل Ansible. بدلاً من ذلك، يستخدم Ansible SSH لإدارة الأنظمة وأتمتتها. Ansible هو برنامج مفتوح المصدر. كما أنه يتميز بقابلية التوسع العالية والاتساق والموثوقية.

هذا الدليل يوضح كيفية تثبيت وتكوين Ansible على Ubuntu 20.04.

Ansible على Ubuntu

يمكن لـ Ansible إنجاز ثلاثة أنواع من الأتمتة:

  • التجهيز (Provisioning): يمكنه إنشاء خوادم مختلفة وفقاً لاحتياجات البنية التحتية.

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

  • نشر التطبيقات: فهو يسهل عمليات DevOps من خلال النشر التلقائي للتطبيقات المطورة داخلياً في نظام الإنتاج.

يمكن لـ Ansible العمل بشكل مثالي في أي بيئة تقنية معلومات تقريباً – سواء كانت خوادم مستضافة أو تقليدية، أو منصات افتراضية، أو في السحابة. كما أنه يدعم إدارة أنظمة مختلفة مثل قواعد البيانات، والشبكات، وجدران الحماية، وأجهزة التخزين، وغيرها الكثير. تدعم CloudSigma أيضاً Ansible لبنيتنا التحتية السحابية.

المتطلبات الأساسية

لهذا الدليل، نحتاج إلى جهازين:

  • عقدة التحكم (Control node): عقدة التحكم هي العقدة المركزية التي تتصل بجميع العقد المضيفة وتصدر المهام وتدير جوانب مختلفة من النظام. يمكن أن تكون عقدة التحكم أي شيء – جهازاً محلياً، أو خادماً بعيداً.

  • العقدة المضيفة (Host node): مضيفو Ansible هم الأجهزة التي يمكن لعقدة تحكم Ansible أتمتتها.

كما يوحي عنوان الدليل، من المتوقع أن يتم تكوين جميع هذه الأجهزة بنظام Ubuntu 20.04 مع أحدث الحزم. إليك دليل سريع حول إعداد خادم Ubuntu. نظراً لأن Ansible يستخدم SSH للاتصال بالأجهزة، يجب إعداد جميع العقد المضيفة بشكل صحيح باستخدام مفاتيح SSH مع عقدة التحكم. تأكد من إضافة مفتاح SSH العام لعقدة التحكم في جميع العقد المضيفة إلى ملف authentication_keys . اتبع برنامجنا التعليمي لمعرفة كيفية إنشاء وإضافة مفاتيح SSH إلى خوادم Linux.

الخطوة 1: تثبيت Ansible

في حالة Ubuntu، ليست هناك حاجة لأي حزمة إضافية أو تكوين مستودع. يتوفر Ansible مباشرة من خوادم حزم Ubuntu الرسمية. يتطلب إجراء أي تغييرات على مستوى النظام وصولاً إدارياً – مستخدم root أو مستخدم غير root يتمتع بامتيازات sudo. ملف sudoers يدير أذونات sudo للمستخدمين والمجموعات.

أولاً، سنقوم بتثبيت Ansible على الكمبيوتر الذي سيعمل كعقدة تحكم. لتثبيت Ansible على عقدة التحكم، قم بتشغيل الأوامر التالية:

Control apt update

Install ansible

إذا كنت ستستخدم كلمة مرور كآلية مصادقة SSH، فأنت بحاجة إلى تثبيت الحزمة sshpass مثبتة:

Install sshpass

الخطوة 2: تكوين ملف المخزون

في Ansible، يحتوي ملف المخزون على معلومات حول جميع الـ hosts التي سيقوم ansible بإدارتها. يمكن أن تكون عشرات أو مئات الخوادم المسجلة في inventory file. يمكن أيضاً تقسيم الخوادم إلى مجموعات ومجموعات فرعية. بشكل عام، يتم استخدام ملف inventory file لتحديد المتغيرات التي ستكون صالحة فقط لـ hosts أو المجموعات المحددة. إنها تقنية مفيدة في كتابة سيناريوهات التشغيل (playbooks) والقوالب. يمكن لبعض المتغيرات أيضاً التأثير على كيفية تشغيل سيناريو التشغيل.

يأتي Ansible مع ملف مخزون افتراضي. أولاً، افتح الملف في محرر نصوص:

Ansible hosts file

بشكل افتراضي، يحتوي ملف المخزون على أمثلة متنوعة للرجوع إليها. إليك مثالاً لمجموعة تسمى servers تحتوي على ثلاثة خوادم مختلفة. المتغير ansible_python_interpreter يحدد مفسر Python لجميع hosts المضمنة في المخزون. باستخدام التوجيه ansible_user، يمكننا الإعلان عن حساب المستخدم الذي سيتصل به Ansible:

Ansible hosts file updated

بعد ذلك، احفظ الملف وأغلق المحرر. للتحقق من المخزون، قم بتشغيل الأمر التالي:

يجب أن تبدو المخرجات شيئاً كهذا:

Ansible inventory list

الخطوة 3: اختبار الاتصال

بعد تكوين ملف المخزون، نحتاج إلى اختبار ما إذا كان بإمكان Ansible الاتصال بتلك الخوادم عبر SSH. يمكننا القيام بذلك ببساطة عن طريق إرسال أمر ping إلى جميع عقد المضيف. من عقدة التحكم، قم بإرسال ping إلى جميع عقد  المضيف:

تقوم وحدة ping بالتحقق من الأمور التالية:

  • إمكانية الوصول إلى المضيف

  • صلاحية بيانات اعتماد SSH

  • يمكن للمضيفين تشغيل وحدات Ansible باستخدام Python

يجب أن تبدو المخرجات شيئاً كهذا:

Ansible ping all

إذا كان الرد من عقدة معينة هو pong، فهذا يعني أن العقدة جاهزة لتشغيل أوامر وكتيبات تشغيل (playbooks) Ansible على الخادم.

الخطوة 4: تشغيل الأوامر المخصصة (Ad-Hoc)

هذه خطوة اختيارية. ومع ذلك، يمكن أن تكون مفيدة في التحقق من الوظائف الكاملة لـ Ansible على الخوادم البعيدة. يمكن أن يعمل هذا القسم أيضاً كمقدمة أساسية لاستخدام وتكوين Ansible الإضافي. بمجرد تأكيد الاتصال بالعقد، يمكننا البدء في تشغيل الأوامر المخصصة (ad-hoc) وكتيبات التشغيل (playbooks). أي أمر تقوم بتشغيله عادةً على الخوادم البعيدة يمكن تشغيله باستخدام Ansible على جميع الخوادم.

هنا، قم بتشغيل الأمر التالي. سيتحقق من استخدام القرص على جميع العقد في نفس الوقت:

Ansible all df cmd

يمكننا أيضاً تنفيذ وحدات Ansible المختلفة باستخدام ميزة الأوامر المخصصة (ad-hoc)، تماماً مثل كيفية تنفيذنا لوحدة ping لاختبارها. على سبيل المثال، تعمل وحدة apt مع مدير حزم APT على Ubuntu. يمكنها إدارة الحزم على عقدة Ubuntu بعيدة. لاحظ أنها تتطلب إذن root لإجراء تغييرات على مستوى النظام. يجب أن تسمح العقدة البعيدة بتسجيل الدخول كـ root أو يجب أن يمتلك المستخدم إذنًا لتنفيذ المهام الإدارية.

في المثال التالي، يقوم Ansible بتثبيت Nginx على جميع عقد المضيف:

ماذا عن تشغيل الأوامر على خادم واحد فقط؟ سنستخدم الاسم المستعار للخادم (المعين داخل ملف المخزون) لتحديد الخادم:

Adhoc cmd df selected host

يمكننا أيضاً تحديد خوادم متعددة. قم بالإعلان عن الاسم المستعار لكل خادم مستهدف باستخدام نقطتين كفاصل:

Adhoc cmd df multiple hosts

أفكار نهائية

في هذا الدليل، أوضحنا لك طريقة خطوة بخطوة لتثبيت Ansible وتكوين ملف مخزون لتشغيل الأوامر المخصصة (ad-hoc) من عقدة التحكم في Ansible. بمجرد التكوين، يمكن لعقدة التحكم تنفيذ أي أمر أو كتيب تشغيل (playbook) ترغب في تشغيله على المضيفين.

حوسبة سعيدة!

author

Pranay Kapgate

المؤلف · CloudSigma

Preslav Dobrev هو مصمم إبداعي في CloudSigma، يركز على هوية أعمال متسقة باستخدام قنوات التسويق التقليدية والمبتكرة. هو بارع في دمج الرؤية الفنية مع التسويق الاستراتيجي لخلق سرد قصصي مؤثر للعلامة التجارية.

التعليقات

لا توجد تعليقات بعد. كن أول من يعلق.