محتويات الدورة

Ansible / المتقدم: التنسيق والمنصات والاختبارات والتشخيص / الدرس 14

تتبع التفويض وملكية سياق المضيف

افصل مضيف play ووجهة التنفيذ وسياق القيم وملكية الحقائق وتزامن المورد المشترك ونطاق run_once.

وقت القراءة التقريبي: 3 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • شرح قابلية التفويض ومصادر القيم.
  • تمييز التنفيذ المفوض من ملكية الحقائق.
  • تخطيط المفرد والمشترك ضمن الدفعات والاستراتيجيات.

قد يختلف مضيف play من التنفيذ

يغير delegate_to موقع القابل ويبقى الأصل بهوية التقرير. يتبع الاتصال والمفسر والامتياز والتقييم السياق الموثق فلا تعمم المراجع. استخدم hostvars الصريحة مع التوفر. لا تستخدم أفعال متحكم كـ debug اتصالاً فلا تفوضها ميكانيكياً؛ افحص قابلية الفعل. فهوية المضيف في التقرير لا تكفي لمعرفة أين استخدمت الصلاحيات فعلياً، ويجب توثيق هذا الفرق قبل تحليل نتيجة أو فتح وصول إضافي.

لا يقرر موضع التنفيذ ملكية الحقائق تلقائياً

يرتبط موضع جمع الحقيقة بمستلمها ولا يتطابقان؛ تضبط delegate_facts الإسناد المناسب. قد تظهر بيانات الآخر بالأول فتخطئ القوالب. لا تجعلها ناقلاً خفياً؛ عرف الملكية والحداثة والمستهلك خاصة بين plays، وعالج المخبأ والفشل والتجاوز. لا نجمع حقائق هنا. وعند استهلاك hostvars في play لاحقة، ينبغي معرفة المضيف الذي تنسب إليه الملاحظة ووقت جمعها، لا الاكتفاء بوجود مفتاح يحمل الاسم المتوقع.

لا يسلسل تفويض عدة مضيفين العمل تلقائياً

قد يفوض عدة مضيفين للمساعد نفسه بالتوازي فيتسابق الملف أو API أو الإعداد. يغير التفويض الموضع لا السياسة العامة. صمم تجميعاً أو مزامنة كـ play مستقل أو throttle مبرر واحفظ قصد كل مضيف. لا تجعل تكرارية الوحدة أمان كتابة متزامنة؛ عرف مالك المورد والترتيب. وقد تكون كل عملية منفردة صحيحة ومتكررة بأمان ثم تفشل المجموعة بسبب ترتيب الكتابات، لذلك يجب اختبار السيناريو المتزامن لا استدعاء واحد فقط.

يتبع run_once سياق التنفيذ بما فيه الدفعات

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

yaml توضيح دفعة مفوضة غير قابل للتشغيل
- name: Illustrate explicit helper execution
  hosts: lab_nodes
  gather_facts: false
  serial: 2
  tasks:
    - name: Describe one batch through a fictional helper
      ansible.builtin.command:
        argv:
          - /usr/bin/printf
          - '%s\n'
          - Synthetic helper message
      delegate_to: lab_helper
      run_once: true
      changed_when: false

لا يتصل بالمساعد أو ينفذ الأمر؛ يوضح تفسير الدفعة ولا يثبت التحليل عدد التنفيذ.

تجميع قصد المضيف دون تعديل المشترك

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

python بناء إجمالي مصطنع ثابت غير متصل
hosts = {'lab_b': {'port': 8202}, 'lab_a': {'port': 8201}}
aggregate = [f"{name}:{hosts[name]['port']}" for name in sorted(hosts)]
print(','.join(aggregate))
print('shared_write=not-performed')
الناتج المتوقع
lab_a:8201,lab_b:8202
shared_write=not-performed

ينسق القواميس فقط دون إعداد أو hostvars فعلي أو ضمان استبعاد متبادل.

الأخطاء الشائعة وإصلاحها

افتراض تسلسل المستدعين بـ delegate_to

لماذا يحدث؟
اختلط الموضع بالمزامنة.
كيف تصلحه؟
عرف الملكية والتزامن.
كيف تتجنب تكراره؟
اختبر عدة أصول لمفوض واحد.

اعتبار run_once مرة لكل النشر

لماذا يحدث؟
أُهمل السياق.
كيف تصلحه؟
حدد واختبر نطاق المرة.
كيف تتجنب تكراره؟
أدرج serial والاستراتيجية.

نسبة حقائق مفوضة للمضيف الخطأ

لماذا يحدث؟
اختلط التنفيذ والإسناد.
كيف تصلحه؟
راجع delegate_facts والمستهلك.
كيف تتجنب تكراره؟
احفظ أصل الحقيقة والهوية.

اختبر فهمك

1. لماذا تتسابق المفوضة مع اختلاف الأصول؟

اعرض الحل المشروح

قد تفعل كلها بالمورد نفسه بالتوازي؛ لا تنشئ الأسماء ملفات أو كائنات منفصلة. استخدم ملكية وتنسيقاً مختبراً.

2. ماذا تعني مرة قبل اختيار run_once؟

اعرض الحل المشروح

حدد الدفعة أو السكان أو الفعل الدائم وافحص الاستراتيجية وserial؛ استخدم حداً آخر عند غياب الضمان.

أهم ما تعلمته

  • تتبع الهوية والموضع والبيانات منفصلة.
  • عامل المشترك والمفرد بروتوكولات صريحة.

المراجع الرسمية