Wazuh-ansible: تحتاج إلى طريقة أسهل لتجاوز تحديد أجزاء من إعدادات التكوين

تم إنشاؤها على ١٢ ديسمبر ٢٠١٨  ·  5تعليقات  ·  مصدر: wazuh/wazuh-ansible

سيكون مثاليًا إذا تمت إعادة هيكلة تجزئة _wazuh_manager_config_ أو تم تعديل الكود للسماح بتجاوز أجزاء أصغر من الإعدادات بسهولة:

wazuh_manager_config:
  active_responses:
    - command: host-deny
      level: 6
      location: local
      timeout: 600
    - command: restart-ossec
      location: local
      rules_id: '100002'
    - command: win_restart-ossec
      location: local
      rules_id: '100003'
  alerts_log: 'yes'
  api:
    basic_auth: 'yes'
    behind_proxy_server: 'no'
    bind_addr: 0.0.0.0
    ciphers: ''
    drop_privileges: 'true'
    experimental_features: 'false'
    honor_cipher_order: 'true'
    https: 'no'
    https_ca: ''
    https_cert: /var/ossec/etc/sslmanager.cert
    https_key: /var/ossec/etc/sslmanager.key
    https_use_ca: 'no'
    port: 55000
    secure_protocol: TLSv1_2_method
    use_only_authd: 'false'
  authd:
    enable: true
    force_insert: 'yes'
    force_time: 0
    port: 1515
    purge: 'no'
    ssl_agent_ca: null
    ssl_auto_negotiate: 'no'
    ssl_manager_cert: /var/ossec/etc/sslmanager.cert
    ssl_manager_key: /var/ossec/etc/sslmanager.key
    ssl_verify_host: 'no'
    use_password: 'no'
    use_source_ip: 'yes'

...etc. etc. etc.

والسبب هو أنه ليس من السهل تجاوز الأجزاء الفردية من هذا التكوين (مثل إعدادات المجموعة). كل شيء أو لا شيء.
بعبارة أخرى ، إذا كنت أرغب في الحصول على _ most_ من هذه المتغيرات المحددة في _group_vars / wazuh_managers.yml_ وتجاوز بعض الإعدادات باستخدام شيء مثل _host_vars / manager01.yml_ فليس من الممكن بسهولة بدون تعديل المهام.

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

ربما توجد طريقة للاستفادة من عامل التصفية combine للسماح بتجاوزات أسهل لأجزاء التكوين الأكبر:

على سبيل المثال
{{ {'a':{'foo':1, 'bar':2}, 'b':2} | combine({'a':{'bar':3, 'baz':4}}, recursive=True) }}

انتاج:
{'a':{'foo':1, 'bar':3, 'baz':4}, 'b':2}

(المصدر: https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#combining-hashes-dictionaries)

statuavailable typenhancement

التعليق الأكثر فائدة

سنتى:

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

كنت أتساءل عما إذا كان تسوية ملف التكوين يمكن أن يكون حلاً محتملاً - حل قصير المدى على الأقل؟ على سبيل المثال ، لماذا يكون repo أقل wazuh_agent_config ؟ لماذا لا يمكن أن يكون repo في المستوى الأعلى؟ ألن تبسط مثل هذه المقاربة الأمور؟

IMO ، بشكل عام ، التراجع عن التداخل العميق ، وتقسيم ملف التكوين إلى أقسام (ليس بالضرورة إنشاء ملفات متعددة ، حيث يمكن أن يؤدي ذلك إلى زيادة النفقات المعرفية في تذكر ما يتم تحديده لكل ملف) ، وإضافة التعليقات لكل قسم و / أو خيار تكوين محدد اجعل ملف التكوين أكثر سهولة بشكل عام.

أي أفكار بخصوص الخطوات التالية؟

شكرا.

ال 5 كومينتر

مرحبا paulcalabro ،

انها حقا فكرة جيدة.

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

سيتم بدء اختبارات هذا التغيير في أقرب وقت ممكن.

شكرًا جزيلاً لك على تعاونك ، ونقدر كثيرًا مساهمات مثل مساهمتك.

مع أطيب التحيات،

ألفونسو رويز برافو

SitoRBJ شكرًا على التعليقات وأنا أتفق تمامًا ، هناك حاجة إلى الاختبار. بالحديث عن ذلك ، هل تستخدمون Test Kitchen أو أي شيء مشابه للاختبار؟ هل ستكونون مهتمين إذا كانت بعض المساهمات الاختبارية؟

على سبيل المثال بعض الاختبارات الأساسية باستخدام InSpec
https://www.dropbox.com/s/5zx9fb5ezc1wgj9/Screenshot٪202018-12-12٪2003.32.44.png؟dl=0

معلومات بخصوص مطبخ الاختبار:
https://kitchen.ci

مرحبا paulcalabro ،

نحن لا نستخدم Test Kitchen for Ansible حتى الآن. من فضلك ، أي مساهمة هي موضع تقدير. إذا كنت ترغب في الاختبار ، فهي موضع ترحيب كبير.

شكرًا جزيلاً لك على اهتمامك وعلى مساعدتك ، فهي مفيدة جدًا لنا.

أطيب التحيات،

ألفونسو رويز برافو

سنتى:

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

كنت أتساءل عما إذا كان تسوية ملف التكوين يمكن أن يكون حلاً محتملاً - حل قصير المدى على الأقل؟ على سبيل المثال ، لماذا يكون repo أقل wazuh_agent_config ؟ لماذا لا يمكن أن يكون repo في المستوى الأعلى؟ ألن تبسط مثل هذه المقاربة الأمور؟

IMO ، بشكل عام ، التراجع عن التداخل العميق ، وتقسيم ملف التكوين إلى أقسام (ليس بالضرورة إنشاء ملفات متعددة ، حيث يمكن أن يؤدي ذلك إلى زيادة النفقات المعرفية في تذكر ما يتم تحديده لكل ملف) ، وإضافة التعليقات لكل قسم و / أو خيار تكوين محدد اجعل ملف التكوين أكثر سهولة بشكل عام.

أي أفكار بخصوص الخطوات التالية؟

شكرا.

مرحبا بالجميع. لقد قدمت طلب سحب للمراجعة مع اقتراح يقدم شيئًا مشابهًا لما اقترحه OP ، مع الحفاظ على التوافق مع طرق العمل المحددة بالفعل للدور.

نرحب بأي ملاحظات ، شكرا!

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات