التحديث الجديد في Ansible 2.1 قد أدى إلى تغيير في سلوكية جمع المعلومات للتشغيلات الفرعية في حالات مثل التي توضحها. في السابق، كان بإمكان المطورين تخطي جمع المعلومات عند تشغيلهم التشغيلية الفرعية التي تحتوي على الوسم “app”، ولكن الآن هذا السلوك تغير. لحل هذه المشكلة وتجنب فشل تشغيل التشغيليات الفرعية التي لا يملك المطورون صلاحيات الجذر، يمكنك استخدام خاصية gather_facts: false
في التشغيليات الفرعية التي لا تحتوي على الوسم “app”.
في المثال الذي ذكرته، يمكنك تعديل التشغيليات الفرعية بالشكل التالي:
yaml- hosts: sites
user: root
tags:
- configuration
tasks:
(...)
gather_facts: false
- hosts: sites
user: root
tags:
- db
tasks:
(...)
gather_facts: false
- hosts: sites
user: "{{ site_vars.user }}"
tags:
- app
tasks:
(...)
بهذا التعديل، ستتمكن من تجنب جمع المعلومات في التشغيليات الفرعية التي لا تحتوي على الوسم “app”، مما يساعد في تجنب فشل التشغيل للمطورين الذين ليس لديهم صلاحيات الجذر.
المزيد من المعلومات
لتفادي جمع المعلومات في التشغيليات الفرعية التي لا تحتوي على الوسم “app”، يمكنك أيضًا استخدام متغير gather_facts
بشكل مستقل داخل كل تشغيلية فرعية بدلاً من تضمينه في الخاصية tags
. على سبيل المثال:
yaml- hosts: sites
user: root
tags:
- configuration
tasks:
(...)
gather_facts: false
- hosts: sites
user: root
tags:
- db
tasks:
(...)
gather_facts: false
- hosts: sites
user: "{{ site_vars.user }}"
tags:
- app
tasks:
(...)
هذا التعديل يجعل التحكم في جمع المعلومات أكثر دقة وسهولة، حيث يمكنك تعيين قيمة gather_facts: false
للتشغيليات الفرعية التي لا تحتوي على الوسم “app” فقط، وترك البقية تعمل بشكل طبيعي مع جمع المعلومات.