تكامل الأقمار الصناعية والبرج غير المرئي

استخدام القمر الصناعي ريد هات ومنصة أتمتة ريد هات Ansible؟ بدءًا من القمر الصناعي 6.3 ، يمكن دمجها مع بعضها البعض بحيث يسحب المخزون الديناميكي في Ansible Tower قوائم المضيف من القمر الصناعي. بالإضافة إلى ذلك ، إذا تمت تهيئة مضيفات RHEL باستخدام القمر الصناعي (بمعنى التزويد) ، فيمكن عندئذٍ دمج Ansible Tower في هذه العملية بحيث يقوم تلقائيًا بتشغيل البرامج النصية للتكوين على المضيفين الجدد.



في هذا المنشور ، سنلقي نظرة على كيفية تكوين المخزون الديناميكي في Ansible Tower بحيث يسحب المضيفين من القمر الصناعي ، وسنوضح كيفية استخدامه مع الأمثلة. بالإضافة إلى ذلك ، سنوضح لك كيفية تنظيم مكالمة تلقائية إلى Ansible Tower بعد تهيئة مضيف جديد من القمر الصناعي.

1. Inventory. Satellite, Dynamic Inventory Ansible Tower


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

القمر الصناعي 6.6 والإصدارات الأحدث لديها بالفعل دور Ansible Tower Inventory Reader جاهزًا لذلك ، حتى تتمكن من تخطي الخطوات أدناه لإنشاء دور.

في القمر الصناعي 6.3-6.5 ، يجب إنشاء الدور يدويًا. للقيام بذلك ، انتقل إلى واجهة الويب الخاصة بالقمر الصناعي ، وانتقل إلى شاشة الإدارة ، وحدد الأدوار وانقر فوق إنشاء دور.

نحن نسمي هذا الدور ansible_tower_كامل_ role ونحدد المواقع والمنظمات له :



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

نوع المورد: مضيف ، إذن: view_hosts
نوع المورد: مجموعة مضيف ، إذن: view_hostgroups
نوع المورد: قيمة حقيقة ، إذن: view_facts

نتيجة لذلك ، يجب أن يكون للمرشحات التالية دور:



لذا ، لقد أنشأنا دورًا. سنبدأ الآن مستخدمًا جديدًا في القمر الصناعي ، حيث ننتقل إلى قائمة المسؤول ، ثم حدد المستخدمون وانقر فوق إنشاء مستخدم . نقوم بتسمية هذا المستخدم ansible_ Integration ، وتغيير المعلمة المعتمدة بواسطة المعلمة إلى INTERNAL وتعيين كلمة المرور. ثم ، في علامتي التبويب المواقع والمؤسسات ، حدد المواقع / المنظمات المناسبة. أخيرًا ، انتقل إلى علامة التبويب " الأدوار" وعيّن لهذا المستخدم دور ansible_tower_ Integr_role الذي تم إنشاؤه حديثًا (إذا كان لديك القمر الصناعي 6.3 - 6.5) أو دور Ansible Tower Inventory Reader المدمج(الأقمار الصناعية 6.6 وأعلى). أخيرًا ، انقر فوق إرسال لإنشاء حساب لهذا المستخدم.

تخصيص برج Ansible


انتقل الآن إلى واجهة الويب Ansible Tower وانتقل إلى شاشة بيانات الاعتماد . انقر فوق الزر الأخضر (إضافة) لإنشاء إدخال بيانات اعتماد جديد. نسميها دمج_القمر الصناعي ، وفي نوع الاعتماد حددنا القمر الصناعي ريد هات 6 . ثم نقوم بإدخال عنوان URL (في حالتنا القمر الصناعي 6) ، بالإضافة إلى اسم المستخدم (في حالتنا ansible_كامل ) ، وكلمة المرور هي التي حددناها في القمر الصناعي أعلاه:



ثم انقر حفظ .

انتقل الآن إلى شاشة الجرد ، وانقر فوق الزر الأخضر (إضافة) وحدد الجرد . حدد satellite_inventory كاسم وانقر فوق Save لإنشاء جرد. بعد ذلك ، انتقل إلى علامة التبويب مصادر في المخزون الذي تم إنشاؤه حديثًا وانقر على الزر الأخضر (إضافة) . نستخدم القمر الصناعي كاسم المصدر ونحدد نوع المصدر باسم Red Hat Satellite 6 . في مجال الاعتماد ، حدد دمج القمر الصناعي ، الذي تم إنشاؤه في الخطوة السابقة. قم بتشغيل مربع الكتابة فوق ،المتغيرات الكتابة فوق و تحديث على الإطلاق في السيطرة على المجموعة خيارات تحديث (يمكنك معرفة المزيد حول هذه الخيارات باستخدام علامات استفهام على اليمين). بالإضافة إلى ذلك ، في حقل مهلة ذاكرة التخزين المؤقت (الثواني) ، أدخل 90 وانقر فوق حفظ .



الآن ، دون مغادرة علامة التبويب مصادر ، انقر على أيقونة بدء عملية المزامنة :



ننتظر حتى يتحول الرمز إلى اللون الأخضر - وهذا يشير إلى اكتمال المزامنة بنجاح.

يمكنك الآن الانتقال إلى علامة التبويب Hosts والاطلاع على البيانات التي تم سحبها من القمر الصناعي:



يمكنك أيضًا إلقاء نظرة على علامة التبويب المجموعات:



كما ترى ، فإن المزامنة لا تسحب قوائم المضيف من القمر الصناعي فحسب ، بل تقسمها أيضًا إلى مجموعات وفقًا لعروض المحتوى المقابلة في القمر الصناعي والمجموعات المضيفة وبيئات دورة الحياة والمواقع والمؤسسات. يمكن استخدام هذه المجموعة لاستهداف نصوص Ansible على المضيفين المستهدفين ، وهذا أمر قوي جدًا.

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



استخدام المخزون الديناميكي المرتبط بالقمر الصناعي


لذا ، قمنا بمزامنة القمر الصناعي وبرج Ansible. سننظر الآن في كيفية استخدامه عمليًا.

أسهل طريقة هي استخدام satellite_inventory كمصدر الجرد في برج قالب Ansible. إذا تم تحديد الخيار hosts: all في البرنامج النصي ، فسيتم تشغيل البرنامج النصي على جميع مضيفي القمر الصناعي.

خيار أكثر تقدمًا هو استخدام مجموعات المخزون التي تم إنشاؤها تلقائيًا في البرامج النصية (كيف يتم إنشاؤها - انظر أعلاه) ، بمعنى آخر ، حدد مجموعة المضيف المطلوبة في سطر المضيفين . على سبيل المثال ، كما هو الحال في هذا السيناريو حيث تم تثبيت حزمة الشاشة:

---
- name: Install screen package
  hosts: "foreman_hostgroup_rhel6"
  tasks:
  - yum:
      name: screen
      state: installed

قمنا بتسجيل مضيفين: foreman_hostgroup_rhel6 ، مما يشير إلى قائمة المضيفين الذين يشكلون مجموعة المضيف rhel6 في القمر الصناعي. وبناءً على ذلك ، سيتم تنفيذ البرنامج النصي على هؤلاء المضيفين فقط.

بالإضافة إلى ذلك ، في البرنامج النصي ، يمكنك تحديد المتغيرات التي يتلقاها Ansible Tower أثناء التزامن مع القمر الصناعي في سطر المضيفين. على سبيل المثال ، يمكنك القيام بذلك:

---
- name: Install screen package
  hosts: "{{ hosts_var }}"
  tasks:
  - yum:
      name: screen
      state: installed

ونتيجة لذلك ، سنتمكن من تغيير نموذج العمل في Ansible Tower على الفور ، مع الإشارة إلى إحدى مجموعات المخزون من خلال متغير خارجي.



في هذا المثال ، سيتم تشغيل القالب فقط على المضيفين الذين هم أعضاء في مجموعة rhel7 في القمر الصناعي.

علاوة على ذلك ، يمكن تكوين قالب الوظيفة بحيث أنه عند بدء التشغيل سيطلب من المستخدم قيمة متغير hosts_var (وفي نفس الوقت عرض مجموعات المخزون المتاحة في شكل تعليقات):



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

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

---
- name: Show Satellite variables
  hosts: all
  tasks:
  - name: Show subscription_status
    debug:
      msg: >
        Subscription Status: {{ foreman.subscription_status_label }}
  - name: Show Errata Counts
    debug:
      msg: >
        Bug fixes: {{ foreman.content_facet_attributes.errata_counts.bugfix }},
        Security: {{ foreman.content_facet_attributes.errata_counts.security }},
        Enhancement: {{ foreman.content_facet_attributes.errata_counts.enhancement }},
        Total: {{ foreman.content_facet_attributes.errata_counts.total }}

إذا قمت بتشغيل هذا النص البرمجي في Ansible Tower ، فسوف يعرض قيم المتغيرات:



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

كي تختصر


Red Hat Satellite و Red Hat Ansible أنفسهم أدوات قوية جدًا ، ويوفر تكاملهم تآزرًا ملموسًا. أعلاه ، أظهرنا كيفية جعل الأقمار الصناعية مصدر بيانات للمخزون الديناميكي في Ansible واستخدامها في الممارسة.

الجزء 2. التكوين التلقائي للمضيفين الجدد من خلال توفير رد الاتصال


بالإضافة إلى العديد من الميزات الأخرى ، فإن القمر الصناعي قادر أيضًا على تهيئة المضيفين ، وبعبارة أخرى ، إجراء التوفير. برج Ansible ، بدوره ، تم تصميمه لتكوين المضيفين. يتيح لك الدمج التأكد من أنه بعد تهيئة مضيف RHEL الجديد عن طريق القمر الصناعي ، سيتصل Ansible Tower تلقائيًا بهذا المضيف ويقوم بتشغيل البرنامج النصي للتكوين المقابل عليه. من الواضح أن مثل هذا المخطط يوفر الكثير من الوقت لمسؤولي النظام ، مما يساعدهم على الاستجابة بشكل أسرع لاحتياجات المنظمة.

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

نعرض أدناه كيفية تكوين القمر الصناعي وبرج Ansible بحيث يقوم برنامج تهيئة Ansible تلقائيًا بعد تهيئة المضيف.

نظرة عامة


تقع أدوات أتمتة تكنولوجيا المعلومات ، مثل Ansible Tower ، عادةً في إحدى فئتين: بعضها يعمل بطريقة الدفع ، والبعض الآخر بطريقة السحب. في أنظمة الدفع التي ينتمي إليها Ansible Tower ، يبدأ خادم الأتمتة الاتصال بالمضيف. في أنظمة السحب ، يكون البادئ هو المضيف ، الذي يتواصل بنفسه مع خادم الأتمتة.

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

لتوضيح سبب الحاجة إلى إعادة توفير الاتصال على الإطلاق ، ضع في اعتبارك الموقف التالي: لدينا برنامج نصي معين لتهيئة المضيف يعمل يوميًا في منتصف الليل. لنفترض في الساعة الثامنة صباحًا أننا نقوم بتهيئة عدة خوادم جديدة في وقت واحد من خلال القمر الصناعي. في الوقت نفسه ، يتم استخدام القمر الصناعي كمصدر بيانات للمخزون الديناميكي في برج Ansible Tower ، لذلك تقع المضيفات التي تم إنشاؤها تلقائيًا في Ansible. ومع ذلك ، سيتم إطلاق البرنامج النصي للأتمتة في منتصف الليل فقط ، أي بعد 16 ساعة. من الواضح أن هذا أبعد ما يكون عن المثالية ، وأود أن يتم تشغيل البرنامج النصي مباشرة بعد تهيئة المضيف الجديد. لهذا الغرض ، يُعتقد أيضًا أن إعادة توفير الاتصال.

بشكل عام ، يتم تكوين إدارة رد الاتصال ويعمل على النحو التالي:

  1. Ansible Tower credential root, Satellite . Tower , .
  2. Job Template Ansible Tower provisioning callback. URL Host Config Key, Ansible.
  3. Satellite , provisioning callback Ansible Tower, : URL- Ansible Tower, Host Config Key Ansible.
  4. Satellite /etc/systemd/system/ansible-callback.service ( RHEL 7 8; RHEL 6 ). provisioning callback Ansible Tower, , (URL-, Host Config Key ).
  5. Ansible Tower Host Config Key. , Tower , root, Job Template. , .

Ansible Tower Provisioning Callback


دعنا نبدأ بإنشاء نص تكوين على خادم Ansible Tower الذي يغير محتويات / etc / motd ، وينشئ نوعًا من المستخدمين ، ويثبت حزمة معينة. ثم سنستخدم هذا النص البرمجي لتهيئة المضيفين الجدد فورًا بعد تهيئتهم.

في الواقع ، يتم تخزين البرامج النصية للأتمتة على الأرجح في بعض أنظمة التحكم في الإصدارات ، ولكن من أجل البساطة ، نفترض أنها تقع مباشرة على خادم Ansible Tower. لذلك ، ندخل خادم Ansible Tower عبر SSH وننشئ الدليل / var / lib / awx / projects / Provision لهم عن طريق تشغيل الأمر التالي:

# mkdir /var/lib/awx/projects/provision

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

---

- name: Provision new host

  hosts: all

  tasks:

  - name: Set content in /etc/motd 

    copy:

      content: Authorized use only!

      dest: /etc/motd

      mode: 644

      owner: root

      group: root


  - name: Create brian user account

    user:

      name: brian

      uid: 10000

      state: present


  - name: Install tmux package

    yum:

      name: tmux

      state: present


انتقل الآن إلى واجهة الويب البرجية وانتقل إلى شاشة بيانات الاعتماد. نضغط على الزر بعلامة الجمع الخضراء لإنشاء سجل بيانات اعتماد جديد ، ونعطيه اسم Proving_root ، ونعين أيضًا نوع بيانات الاعتماد كآلة. في حقل اسم المستخدم ، اكتب الجذر ، وفي حقل كلمة المرور ، حدد كلمة المرور المحددة في القمر الصناعي للاستخدام على المضيفين الجدد لمجموعة المضيف المقابلة في القمر الصناعي (يمكن العثور على اسمها في واجهة الويب الخاصة بالقمر الصناعي في علامة التبويب نظام التشغيل). باستخدام هذا الإدخال ، سيتمكن Ansible Tower من تسجيل الدخول إلى مضيفين جدد تم إنشاؤهم أثناء التهيئة عبر القمر الصناعي.



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



بعد ذلك ، في واجهة Ansible Tower ، انتقل إلى شاشة القوالب ، وانقر فوق علامة الجمع الخضراء لإنشاء قالب مهمة جديد. سنطلق عليه اسم الحكم ، في حقل الجرد سنكتب القمر الصناعي ، في حقل المشروع - الحكم ، في حقل Playbook - Prov.yaml ، وفي حقل الاعتماد - Proving_root. بالإضافة إلى ذلك ، تحتاج إلى تمكين مربع الاختيار السماح بعمليات رد الاتصال ، وانقر فوق رمز العصا السحرية على يمين حقل مفتاح تكوين المضيف لإنشاء مفتاح سري. هذا المفتاح مطلوب من أجل طلب إعادة استدعاء إدارة الحسابات لا يمكن أن يكون أي شخص ، ولكن فقط شخص يعرف مفتاح تكوين المضيف. بدون المفتاح الصحيح ، لن يستجيب خادم Ansible Tower ببساطة للطلب.



نحتاج الآن أن نتذكر للمستقبل قيمة مفتاح تكوين المضيف ، بالإضافة إلى معرف النموذج ، والذي يمكن العثور عليه من عنوان URL لنموذج الوظيفة هذا:

https://tower.example.com/#/templates/job_template/11

في هذا المثال ، المعرف هو 11.

تكوين الأقمار الصناعية لتوفير رد الاتصال


انتقل الآن إلى واجهة الويب عبر القمر الصناعي ، وانتقل إلى شاشة "التكوين" وانقر فوق "مجموعات المضيف". نختار مجموعة المضيف الموجودة ، والتي يتم استخدامها عند تهيئة المضيفين الجدد ، في مثالنا ، هذا هو RHEL 8.

في شاشة تحرير المجموعة المضيفة ، انتقل إلى علامة التبويب المعلمات وقم بإنشاء 4 معلمات جديدة:

ansible_host_config_key - هنا ندخل مفتاح تكوين المضيف من قالب البرج Ansible الخاص بنا.
ansible_job_template_id - هنا نكتب معرف النموذج ، والذي اكتشفناه سابقًا من عنوان URL الخاص بالقالب.
ansible_tower_fqdn هو اسم المجال المؤهل بالكامل لخادم Ansible Tower.
تعيين ansible_tower_provisioning - تعيين صحيح.



تحقق من كيفية عمل كل شيء


قم الآن بتهيئة المضيف الجديد من القمر الصناعي وتحقق من أن إعادة استدعاء الاستدعاء تعمل وتقوم تلقائيًا بتشغيل البرنامج النصي الخاص بنا على ذلك المضيف.

في واجهة الويب الخاصة بالقمر الصناعي ، انتقل إلى شاشة Hosts ، وانقر فوق Create Host وتحقق من استخدام المجموعة التي أنشأنا لتوها 4 معلمات جديدة ، أي مجموعة RHEL 8.



بعد اكتمال تهيئة المضيف ، نحتاج إلى التأكد من تشغيل القالب الموجود عليه بنجاح. للقيام بذلك ، انتقل إلى شاشة القوالب في واجهة الويب Ansible Tower ، وابحث عن القالب الخاص بنا في القائمة ومعرفة ما إذا كان المربع الموجود في أقصى اليسار من مؤشره يتحول إلى اللون الأخضر:



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



الآن دعنا نذهب إلى المضيف الذي تم إنشاؤه حديثًا وتحقق مما إذا كان يتطابق مع ما هو مكتوب في البرنامج النصي:

[root@provision-test-rhel8 ~]# rpm -qa | grep tmux
tmux-2.7-1.el8.x86_64

[root@provision-test-rhel8 ~]# id brian
uid=10000(brian) gid=10000(brian) groups=10000(brian)

[root@provision-test-rhel8 ~]# cat /etc/motd
Authorized use only!

استكشاف الأخطاء وإصلاحها


إذا لم يبدأ قالب Ansible Tower تلقائيًا على مضيف جديد تمت تهيئته عبر القمر الصناعي ، فهناك بعض الأشياء التي يجب التحقق منها.

تتمثل الخطوة الأولى في معرفة ما إذا كان برج Ansible قد تلقى طلبًا لإعادة الاتصال ، وكيف سار البرنامج النصي وما إذا كان قد بدأ على الإطلاق. للقيام بذلك ، في واجهة البرج ، انتقل إلى شاشة القوالب وانظر إلى لون المؤشر بجوار اسم القالب: أخضر - كان الإطلاق ناجحًا ، أحمر - فشل الإطلاق.



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

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

إذا لم يكن مربع المؤشر أخضر ولا أحمر ، فأنت بحاجة إلى البدء بالتحقق من معلمات المجموعة المضيفة في القمر الصناعي. تأكد من تحديد عنوان URL لخادم Ansible Tower ومفتاح تكوين المضيف ومعرف القالب بشكل صحيح هناك.

بعد ذلك ، انتقل إلى المضيف الذي تمت تهيئته حديثًا وتحقق من وجود ملف /etc/systemd/system/ansible-callback.service (على أنظمة RHEL 7 أو 8) أو ملف /root/ansible_provisioning_call.sh (RHEL 6).

إذا لم يكن الملف موجودًا ، فتحقق من تعيين المعلمة ansible_tower_provisioning على "true" لمجموعة المضيف هذه ، وأن أنماط التهيئة على خادم القمر الصناعي لم تتغير.
إذا كان الملف /etc/systemd/system/ansible-callback.service موجودًا على المضيف ، فافتحه وابحث عن عنوان URL حيث يتم إرسال طلب رد الاتصال:

[root@provision-test-rhel8 ~]# cat /etc/systemd/system/ansible-callback.service
[Unit]
Description=Provisioning callback to Ansible Tower
Wants=network-online.target
After=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/bin/curl -k -s --data "host_config_key=aa5ebe82-491c-4fbb-bd36-a6657549451e" https://tower.example.com/api/v2/job_templates/11/callback/
ExecStartPost=/usr/bin/systemctl disable ansible-callback

[Install]
WantedBy=multi-user.target

يمكنك تشغيل curl وتكرار الأوامر المحددة في هذا الملف يدويًا لبدء رد اتصال احتياطي يدويًا:

[root@provision-test-rhel8 ~]# /usr/bin/curl -k -s --data "host_config_key=aa5ebe82-491c-4fbb-bd36-a6657549451e" https://tower.example.com/api/v2/job_templates/11/callback/

إذا تم تحديد مفتاح تهيئة مضيف غير صالح ، فسوف نتلقى رسالة الخطأ التالية:

[root@provision-test-rhel8 ~]# /usr/bin/curl -k -s --data "host_config_key=wrong-key-here" https://tower.example.com/api/v2/job_templates/11/callback/

{"detail":"You do not have permission to perform this action."}

إذا تم تحديد معرف القالب بشكل غير صحيح (هنا - 43 بدلاً من 11) ، فسيكون الجواب على النحو التالي:

[root@provision-test-rhel8 ~]# /usr/bin/curl -k -s --data "host_config_key=wrong-key-here" https://tower.example.com/api/v2/job_templates/43/callback/

{"detail":"Not found."}

يمكنك أيضًا تعطيل الوضع الصامت (-s) في أمر curl بحيث يعرض الأخطاء المتعلقة بحل اسم المضيف ، كما في المثال أدناه ، حيث استبدلنا الاسم الصحيح ansible.example.com بالاسم ansible-tower.example.com غير الصحيح :

[root@provision-test-rhel8 ~]# /usr/bin/curl -k  --data "host_config_key=wrong-key-here" https://ansible-tower.example.com/api/v2/job_templates/11/callback/

curl: (6) Could not resolve host: ansible-tower.example.com

بالإضافة إلى ذلك ، عند اكتشاف سبب الخطأ ، قد يكون الملف /var/log/tower/tower.log على خادم Ansible Tower مفيدًا.
على سبيل المثال ، يسجل هذا الملف استخدام مفتاح تكوين مضيف غير صالح:

2019-11-19 23:19:17,371 WARNING  awx.api.generics status 403 received by user AnonymousUser attempting to access /api/v2/job_templates/11/callback/ from 192.168.0.138

يؤدي هذا أيضًا إلى إصلاح استخدام معرف قالب غير صالح:

2019-11-19 23:19:49,093 WARNING  awx.api.generics status 404 received by user AnonymousUser attempting to access /api/v2/job_templates/43/callback/ from 192.168.0.138

2019-11-19 23:19:49,095 WARNING  django.request Not Found: /api/v2/job_templates/43/callback/

كي تختصر


يمكن أن يؤدي دمج القمر الصناعي وبرج Ansible إلى تحسين التهيئة وتكوين المضيفين الجدد بشكل كبير ، مما يوفر الكثير من الوقت لمسؤولي النظام ، مما يساعدهم على الاستجابة بشكل أسرع لاحتياجات المؤسسة.

في 24 مارس ، من الساعة 11:00 إلى الساعة 12:30 ، ستعقد Red Hat ندوة عبر الإنترنت "ما تحتاج إلى معرفته عن الأتمتة: المهارات الأساسية غير الملموسة"

الأتمتة هو موضوع يقترب من الشعبية وعدد طلبات التحول الرقمي. سنخبرك عن وجهة نظرنا حول الأتمتة - جنبًا إلى جنب مع Ansible و Ansible Tower - وستكون هذه هي المعلومات الأساسية التي ستفتح لك الباب إلى عالم جديد شجاع من أدوات الأتمتة التصريحية.
بعد هذا البرنامج التعليمي على الويب ، ستفهم الكيانات الأساسية Ansible ، مثل playbook والمخزون والوحدة النمطية. معًا ، سوف نتقن بناء الجملة الأساسي لـ YAML حتى تتمكن من كتابة النصوص الخاصة بك. وستنظر أيضًا في إطلاق نصوص برمجية وتصعيد امتيازات.

ونتيجة لذلك ، ستحصل على مجموعة أساسية من المهارات التي ستسمح لك بدراسة التوثيق والأدب بنجاح دون الشعور المستمر بأنك تفتقد شيئًا ما. سجل وتعال!

All Articles