التشغيل التلقائي الفعّال للغاية مع Ansible AWX

Sure, here is the translated text in Arabic:


هل أنت متعب من تشغيل سكربتات Ansible وأوامر Ansible يدويًا في كل مرة على تحكم مضيف Ansible الخاص بك؟ لماذا لا تستخدم واجهة الويب وتسهل حياتك باستخدام هذا Ansible AWX؟

AWX هو تطبيق ويب مفتوح المصدر يرعاه Red Hat والذي يوفر واجهة مستخدم وواجهة برمجة تطبيقات لأداء جميع المهام باستخدام Ansible. وفي هذا البرنامج التعليمي ، ستتعلم كيفية تثبيت Ansible AWX على جهاز Ubuntu وإدارة المخزون باستخدام Ansible AWX.

ارفع مستوى لعبتك مع الأتمتة الفعالة باستخدام Ansible AWX اليوم!

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

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

  • جهاز تحكم Ansible – يستخدم هذا البرنامج التعليمي Ansible v2.11.7 على جهاز Ubuntu 20.04.4 LTS.
  • Docker – يستخدم هذا البرنامج التعليمي Docker v19.03.11 على جهاز Ubuntu 20.04.4 LTS.
  • تثبيت Python v3.6 أو أحدث على جهاز تحكم Ansible الخاص بك – يستخدم هذا البرنامج التعليمي Python v3.8.10.
  • A GitHub account with one private and one public repository created in GitHub that you will use to store Ansible Playbook.

تثبيت التبعيات وتكوين Ansible AWX

كان Ansible AWS هو الأساس لإنشاء Ansible Tower . يجعل Ansible AWX استخدام Ansible أكثر راحة لفرق تقنية المعلومات للاختبار ؛ في مختبر أو تطوير أو غير ذلك بيئة POC .

نظرًا لأن Ansible AWS لا يأتي مثبتًا على نظام Linux الخاص بك افتراضيًا ، ستحتاج أولاً إلى تثبيت Ansible AWS حتى تتمكن من تشغيله كمتعدد الحاويات باستخدام Ansible Playbook.

1. قم بتشغيل كل أمر أدناه لتحديث حزم النظام الخاصة بك وتثبيت مكون docker-compose-plugin.

 # تحديث الحزم 
sudo apt-get update
 # تثبيت Docker Compose 
sudo apt-get install docker-compose-plugin
Updating System Packages and Installing docker-compose

2. بعد ذلك ، قم بتشغيل الأمر التالي للتحقق من إصدار تكوين دوكر المثبت على جهازك.

docker compose version

يوضح الإخراج أدناه أن إصدار Docker Compose الأحدث v2.5.0 مثبت ، مما يؤكد أن Docker Compose مثبت بشكل صحيح.

Verifying Docker Compose Version

3. قم بتشغيل كل أمر أدناه لتثبيت الحزم كمتطلبات أساسية للعمل مع Ansible AWX.

# يثبت NodeJS لأن AWS لديه اعتماد على NodeJS.
sudo apt install nodejs npm
# يثبت Python3، الذي يشغل سيناريو التشغيل التلقائي لـ Ansible لاحقًا.
sudo apt install python3-pip git pwgen unzip
# يثبت requests للسماح لك بإرسال طلبات HTTP/1.1 بسهولة.
sudo pip3 install requests==2.22.0 docker-compose==1.29.2
Installing npm Software
Installing Python
Installing Requests

4. الآن، قم بتشغيل الأوامر التالية لتنزيل (wget) حزمة AWX من مستودع Git العام، ثم فك الضغط عن الحزمة.

# تنزيل حزمة AWX
wget https://github.com/ansible/awx/archive/17.1.0.zip
# فك ضغط حزمة AWX
unzip 17.1.0.zip
Downloading the AWS Package from the Git Repository

5. قم بتشغيل الأوامر التالية لتغيير (cd) إلى دليل تثبيت AWX (awx-17.1.0/installer/)، وتوليد كلمة مرور عشوائية (pwgen).

يمكن أن يختلف دليل تثبيت AWX (awx-17.1.0/installer/) الخاص بك اعتمادًا على إصدار Ansible AWX المثبت على جهازك.

cd awx-17.1.0/installer/
pwgen -N 1 -s 30

ادرس كلمة المرور التي تم إنشاؤها حيث ستحتاجها كمفتاح سري في واجهة المستخدم لـ AWX.

Generating a Random Password

6. أخيرًا، في محرر النصوص الخاص بك، افتح ملف inventory داخل دليل المثبت لـ AWX (awx-17.1.0/installer/). ملف inventory يحتوي على تكوينات AWX، التي سيتم استخدامها أثناء تسجيل الدخول إلى واجهة المستخدم لـ AWX.

في ملف المخزون، قم بتغيير قيمة admin_password إلى كلمة المرور و secret_key بكلمة المرور العشوائية التي قمت بتوليدها في الخطوة الخامسة.

Updating Credentials of Ansible AWX in the Inventory File

تثبيت وبدء تشغيل Ansible AWX باستخدام Ansible Playbook

لقد قمت بتكوين Ansible AWX بشكل صحيح، والآن حان الوقت لتثبيته باستخدام Ansible playbook (install.yml). يأتي Ansible playbook install.yml مع حزمة Ansible AWX التي قمت بفك ضغطها. يحتوي هذا ال playbook على مهام لتنفيذ أوامر لبناء صورة Docker وتشغيل عدة حاويات.

1. استدعِ الأمر ansible-playbook أدناه لتشغيل Ansible Playbook install.yml.

ansible-playbook -i inventory install.yml 

أدناه، يمكنك رؤية أن بعض المهام قد تغيرت إلى حالة أخرى، مشيرة إلى أن مضيف AWX لم يكن في الحالة الصحيحة وتم تعديله لتشغيل الأمر.

على العكس من ذلك، تظهر المهام الأخرى بحالة ok، مما يشير إلى أنها لا تتطلب أي تغييرات.

Executing the Ansible Playbook (install.yml)

2. فيما بعد، قم بتشغيل أمر Docker أدناه لعرض جميع حاويات Docker المتاحة.

docker ps

يظهر الإخراج أدناه الحاويات الجارية (awx_tasks، awx_redis، awx_web، و awx_postgres)، مؤكدًا أن AWX قد تم تثبيته بشكل صحيح.

Verifying all Docker Containers

3. أخيرًا، افتح متصفحك المفضل وانتقل إلى Ansible AWX (https://AWX-HOST-IP:80). تأكد من استبدال AWX-HOST-IP بعنوان IP الخاص بمضيف Ansible الخاص بك. ستظهر صفحة تسجيل الدخول إلى Ansible AWX على متصفحك إذا كان كل شيء على ما يرام، كما هو موضح أدناه.

قدم اسم المستخدم الخاص بك (admin) وكلمة المرور (password)، وانقر على تسجيل الدخول للوصول إلى لوحة تحكم Ansible AWX. هذه هي بيانات الاعتماد التي قمت بتكوينها في الخطوة الأخيرة من قسم “تثبيت التبعيات وتكوين Ansible AWX”.

AWX يقوم بتثبيت شهادة ذاتية للتوقيع للاتصال عبر HTTPS تتطلب قبولها في المتصفح الخاص بك.

Accessing the Ansible AWX Dashboard UI

بعد تسجيل الدخول ، يقوم المتصفح الخاص بك بإعادة توجيهك إلى لوحة تحكم AWX ، كما هو موضح أدناه.

Viewing the AWX Dashboard

إنشاء وإدارة المخزونات

الآن بمجرد الوصول إلى لوحة تحكم Ansible AWX ، لا تتردد في العمل على تأمين المهام. في هذا البرنامج التعليمي ، ستدير عدة مكونات Ansible في لوحة تحكم Ansible AWX. ولكن أولاً ، سيتعين عليك إنشاء وإدارة المخزونات.

1. في لوحة التحكم AWX ، انقر فوق المخزونات لفتح قائمة المخزونات المخزنة في Ansible AWX. بشكل افتراضي ، يوجد مخزون تجريبي ، كما هو موضح أدناه.

تجاهل المخزون التجريبي وانقر فوق زر الإضافة لإنشاء مخزون جديد.

Creating a New Inventory

2. بعد ذلك ، حدد المعلمات التالية على صفحة إنشاء المخزون الجديد لتكوين المخزون الأول في لوحة تحكم Ansible AWX:

  • الاسمATA التعلم (يمكنك تقديم الاسم كما تريد).
  • الوصف – وصف المخزون ، وهو اختياري ولكنه يساعد في تحديد المخزونات بين العديد من المخزونات الأخرى.
  • المؤسسة – اختر الخيار الافتراضي. ينشئ AWX مؤسسة افتراضية ، ولكن يمكنك أيضًا إنشاء مؤسستك الخاصة.

بمجرد تحديد جميع التفاصيل أعلاه ، انقر فوق زر الحفظ كما هو موضح أدناه.

Creating an Inventory in the Ansible AWX Dashboard

3. وأخيرًا ، انقر على علامة التبويب “المخزونات” (لوحة اليسار) للتحقق مما إذا كان المخزون الذي تم إنشاؤه حديثًا (ATA Learning) موجودًا ، كما هو موضح أدناه.

Verifying the Inventory in the Ansible AWX Dashboard

إنشاء وتشغيل مهام Ansible

لقد قمت بتكوين المخزون بنجاح ، ولكنه غير مفيد الآن مالم تقم باستدعائه باستخدام مهمة. المهمة هي نسخة من AWX تطلق ملف Ansible playbook ضد مخزون الخوادم. وبالطبع ، قبل أن تستدعي مهمة ، يجب أن تقوم أولاً بإنشاء واحدة:

لإنشاء مهمة Ansible وتشغيلها:

1. أنشئ ملف YML داخل مستودع GitHub وقم بنسخ/لصق النص البرمجي أدناه. يمكنك تسمية ملف YML كما تشاء ، ولكن هذا البرنامج التعليمي يستخدم ملف النص البرمجي المسمى ata.yml.

---
  - name: "Playing with Ansible."
# سيعمل ملف السيناريو Ansible على Localhost حيث يتم تثبيت AWX
    hosts: localhost
    connection: local
    tasks:
# ستقوم المهمة أدناه بتنفيذ قائمة الدلائل والملفات الموجودة
    - name: "just execute a ls -lrt command"
      shell: "ls -lrt"
      register: "output"
# سيتم عرض نتيجة المهمة أعلاه على الشاشة
    - debug: var=output.stdout_lines
Creating a YML File in the Git Repository

2. انتقل إلى لوحة تحكم Ansible AWX الخاصة بك ، وانقر على “المشاريع” في اللوحة اليسار للوصول إلى قوائم المشاريع المتاحة. ستحتاج إلى مشروع قبل أن تتمكن من إنشاء مهمة.

تجاهل مشروع الديمو ، وانقر على زر “إضافة” لإنشاء مشروع جديد.

Initializing Adding a New Project

3. قدم تفاصيل المشروع الجديد باستخدام البيانات التالية ، وانقر فوق “حفظ” لحفظ المشروع الجديد:

  • الاسم – يمكن أن يكون اسم المشروع أي شيء ترغب فيه، ولكن يقوم هذا البرنامج التعليمي بتعيين اسم المشروع إلى myproject.
  • الوصف – كما هو الحال مع جردك، إضافة وصف اختياري ولكن يساعد في تحديد المشاريع من بعضها البعض.
  • التنظيم – مشابه لجردك، فقط اختر الافتراضي للتنظيم.
  • نوع اعتماد التحكم في المصدر – اختر Git كنظام التحكم في الإصدارات الخاص بك.
  • عنوان تحكم المصدر – حدد عنوان GitHub URL لشفرتك المصدرية.
Creating a New Project

4. بعد إنشاء مشروع، انقر فوق القوالب في الشريط الجانبي الأيسر للوصول إلى جميع القوالب المتاحة، كما هو موضح أدناه.

في صفحة القوالب، انقر فوق زر القائمة المنسدلة “إضافة”، واختر خيار إضافة قالب وظيفة لإنشاء قالب.

Creating a New Job Template

5. الآن، حدد التفاصيل أدناه على النحو التالي، وانقر على الحفظ في الأسفل لحفظ قالب الوظيفة الجديد:

  • الاسم – قم بتعيين اسم قالب الوظيفة كما تريد، ولكن يقوم هذا البرنامج التعليمي بتعيين اسم قالب الوظيفة إلى myjob.
  • نوع الوظيفة – قم بتعيين الإجراء الذي ستقوم به الوظيفة (تشغيل).
  • المشروع – اختر المشروع الذي أنشأته في الخطوة الثالثة (myproject).
  • الجرد – اختر الجرد الذي أنشأته في الخطوة الثانية من قسم “إنشاء وإدارة الجرد” (ATA Learning).
  • كتيب العمل – اختر الكتيب الذي قمت بإنشائه في الخطوة الأولى من قسم “إنشاء وتشغيل مهام Ansible” (ata.yml).
Specifying Job Template Details

6. أخيرًا، في صفحة القوالب، قم بتشغيل المهمة التي تم إنشاؤها حديثًا باستخدام ما يلي:

  • انقر على المهمة (myjob) للوصول إلى صفحة معلومات المهمة.
  • انتقل إلى علامة التفاصيل Details، حيث سترى تفاصيل المهمة.
  • انقر فوق إطلاق في أسفل الصفحة لبدء تشغيل المهمة.
Launching the Newly-created Job

كما يمكنك رؤية أدناه، تم تشغيل المهمة بنجاح على مضيف المحلي وتم سرد جميع الملفات داخل الدليل المحدد في الكتيب (ata.yml).

Executing the Job Template

الاستنتاج

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

الآن بما أن لديك معرفة جيدة ببرنامج Ansible AWX، هل ترغب في تشغيل جميع كتب الأنسبل الخاصة بك في المستقبل باستخدام Ansible AWX؟ ربما ترغب في تلقين المهام بواسطة إضافة مهام cron؟

Source:
https://adamtheautomator.com/ansible-awx/