مرحبًا بك في اليوم الثلاثين من سلسلة "50 أداة DevOps في 50 يومًا"! اليوم، سنستكشف Ansible، إحدى أهم الأدوات في مجموعة أدوات DevOps. ستعرّفك هذه المدونة على أساسيات Ansible، وستفصل مكوناتها الرئيسية وتوضح لك كيفية البدء بأمثلة بسيطة. سنبقي الأمور واضحة، مما يجعل هذه نقطة انطلاق مثالية للمبتدئين.
Ansible هي أداة أتمتة مفتوحة المصدر تعمل على تبسيط المهام مثل إدارة التكوين ونشر التطبيقات والتنسيق. لقد تم تصميمه ليكون بسيطًا ولكنه قوي، مما يسمح لك بأتمتة المهام المتكررة وإدارة البنية التحتية الخاصة بك بشكل أكثر كفاءة.
Agentless: لا يتطلب Ansible تثبيت أي وكيل على الأنظمة البعيدة، مما يقلل من الحمل.
كتب اللعب YAML القابلة للقراءة بواسطة الإنسان: يستخدم Ansible YAML (لغة ترميزية أخرى) لكتابة كتب اللعب، التي يسهل قراءتها وكتابتها.
القوة: يمكنك تشغيل نفس قواعد اللعبة عدة مرات دون القلق بشأن التغييرات غير المقصودة.
البنية بدون وكيل: نظرًا لأن Ansible بدون وكيل، ليست هناك حاجة لتثبيت أي برامج إضافية على أنظمة العميل، مما يقلل من النفقات العامة والمخاطر الأمنية المحتملة.
بناء الجملة البسيط: تستخدم Ansible YAML لقواعد اللعبة الخاصة بها، والتي يسهل قراءتها وكتابتها، مما يجعلها في متناول الأشخاص الجدد في مجال الأتمتة.
العجز: يضمن Ansible تحقيق الحالة المطلوبة بغض النظر عن الحالة الحالية. وهذا يعني أن تشغيل قواعد اللعبة عدة مرات لن يسبب مشكلات أو إجراءات مكررة.
دعم مجتمعي واسع النطاق: مع مجتمع كبير ونشط، تتمتع Ansible بثروة من الأدوار والوحدات وكتيبات اللعب التي يمكن إعادة استخدامها وتخصيصها لتناسب احتياجاتك.
قابلية التوسع: سواء كنت تدير بضعة خوادم أو آلاف الخوادم، فإن Ansible تتوسع بشكل جيد، مما يجعلها مناسبة للمؤسسات من جميع الأحجام.
المخزون: هذه قائمة بالمضيفين (الخوادم) التي يديرها Ansible. يمكن أن تكون المخزونات ثابتة (محددة في ملف) أو ديناميكية (يتم إنشاؤها بواسطة برنامج نصي).
الوحدات: الوحدات هي العمود الفقري لـ Ansible. يتم تنفيذها على مضيفين بعيدين لأداء مهام مثل تثبيت الحزم أو نسخ الملفات أو إدارة الخدمات.
كتب اللعب: كتب اللعب هي لغة التكوين والنشر والتنسيق الخاصة بـ Ansible. وهي مكتوبة بلغة YAML وتصف سلسلة من المهام التي سيتم تنفيذها على المضيفين.
الأدوار: تسمح لك الأدوار بتقسيم أدلة التشغيل إلى مكونات قابلة لإعادة الاستخدام، مما يسهل إدارة وتنظيم المشاريع الكبيرة.
المتغيرات: يتم استخدام المتغيرات لتخزين القيم التي يمكن إعادة استخدامها في قواعد اللعبة. إنها توفر المرونة وتسمح لك بتخصيص قواعد اللعبة بدون قيم الترميز الثابت.
المعالجات: المعالجات هي مهام خاصة يتم تشغيلها فقط عند تشغيلها بواسطة مهام أخرى. يتم استخدامها غالبًا لأشياء مثل إعادة تشغيل الخدمات.
لنبدأ بتثبيت Ansible على عقدة التحكم الخاصة بك. عملية التثبيت واضحة ومباشرة وتختلف قليلاً حسب نظام التشغيل الخاص بك.
تثبيت Ansible على Ubuntu/Debian
sudo apt update sudo apt install ansible -y
تثبيت Ansible على CentOS/RHEL
sudo yum install epel-release -y sudo yum install ansible -y
التحقق من التثبيت
بعد التثبيت، يمكنك التحقق من تثبيت Ansible بشكل صحيح عن طريق تشغيل:
ansible --version
فلنقم بإنشاء دليل بسيط لتثبيت Nginx على خادم بعيد. سنبدأ بتحديد مخزوننا.
الخطوة 1: إنشاء ملف الجرد
قم بإنشاء ملف باسم hosts:
[webservers] 34.42.111.35 34.42.111.66
يحدد ملف المخزون هذا مجموعة تسمى خوادم الويب التي تحتوي على خادمين.
الخطوة 2: كتابة قواعد اللعبة
بعد ذلك، سنكتب دليلًا لتثبيت Nginx وتشغيله على هذه الخوادم.
قم بإنشاء ملف باسم nginx_setup.yml:
--- - name: Install Nginx on web servers hosts: webservers become: yes tasks: - name: Install Nginx apt: name: nginx state: present - name: Start Nginx service service: name: nginx state: started enabled: true
الاسم: وصف يمكن قراءته بواسطة الإنسان لما يفعله كتاب قواعد اللعبة أو المهمة.
المضيفون: يحدد مجموعة المضيفين (من المخزون) حيث يجب تشغيل قواعد اللعبة.
become: يشير إلى أنه يجب على Ansible استخدام امتيازات مرتفعة (مثل sudo).
المهام: يسرد الخطوات التي سينفذها Ansible. نقوم هنا بتثبيت Nginx والتأكد من بدء الخدمة وتمكينها عند الإقلاع.
الخطوة 3: تشغيل دليل التشغيل
لتنفيذ قواعد اللعبة، قم بتشغيل الأمر التالي:
ansible-playbook -i hosts nginx_setup.yml
يخبر هذا الأمر Ansible بتشغيل المهام في nginx_setup.yml على المضيفين المحددين في ملف مخزون المضيفين.
فكر في السيناريو الذي تحتاج فيه إلى تثبيت مجموعة من الحزم على خوادم متعددة. قد يستغرق القيام بذلك يدويًا وقتًا طويلاً ويكون عرضة للأخطاء. باستخدام Ansible، يمكنك أتمتة هذه المهمة بسهولة.
إليك دليل بسيط لتثبيت حزم متعددة:
--- - name: Install essential packages hosts: all become: yes tasks: - name: Install packages apt: name: - git - curl - htop state: present
في دليل التشغيل هذا، يقوم Ansible بتثبيت git وcurl وhtop على جميع الخوادم المدرجة في المخزون. تضمن الوحدة apt تثبيت كل حزمة.
تخيل أنك بحاجة إلى إنشاء مستخدم جديد على خوادم متعددة وتعيينه لمجموعات محددة. سيكون تنفيذ هذه المهمة يدويًا على كل خادم أمرًا شاقًا. مع Ansible، الأمر سهل للغاية.
إليك كيفية القيام بذلك:
--- - name: Create a new user hosts: all become: yes tasks: - name: Create user "devuser" user: name: devuser state: present groups: sudo
يقوم دليل التشغيل هذا بإنشاء مستخدم جديد على جميع الخوادم المُدارة وإضافته إلى مجموعة sudo.
الاتساق: يضمن Ansible تكوين أنظمتك بشكل متسق، مما يقلل من خطر انحراف التكوين.
الكفاءة: تؤدي أتمتة المهام المتكررة إلى توفير الوقت للقيام بأعمال أكثر أهمية.
قابلية التوسع: سواء كنت تدير مجموعة من الخوادم أو الآلاف، فإن Ansible تتوسع بسهولة.
المرونة: يتيح لك النهج المعياري لـ Ansible تخصيص وتوسيع وظائفه حسب الحاجة.
Ansible هي أداة قوية وسهلة الاستخدام يمكنها تبسيط إدارة البنية التحتية لديك بشكل كبير. باستخدام بضعة أسطر فقط من التعليمات البرمجية، يمكنك أتمتة المهام المعقدة، مما يضمن الاتساق والموثوقية عبر بيئتك. سواء كنت تقوم بإعداد الخوادم، أو نشر التطبيقات، أو إدارة التكوينات، يمكن أن يساعدك Ansible في القيام بذلك بشكل أكثر كفاءة.
غدًا، سنتعمق في موضوعات Ansible الأكثر تقدمًا، ونستكشف الميزات التي يمكن أن تنقل عملية التشغيل الآلي لديك إلى المستوى التالي. ابقوا متابعين!
؟ تأكد من متابعتي على LinkedIn للحصول على آخر التحديثات: Shiivam Agnihotri
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3