Wazuh-ansible: Perlu Cara Lebih Mudah untuk Mengganti Bagian Pilihan dari Pengaturan Konfigurasi

Dibuat pada 12 Des 2018  ·  5Komentar  ·  Sumber: wazuh/wazuh-ansible

Akan ideal jika hash _wazuh_manager_config_ direstrukturisasi atau kode dimodifikasi untuk memungkinkan penggantian yang lebih mudah dari potongan pengaturan yang lebih kecil:

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.

Alasannya adalah karena tidak mudah untuk mengganti bagian individual dari konfigurasi ini (mis. pengaturan cluster). Ini semua atau tidak sama sekali.
Dengan kata lain, jika saya ingin _sebagian besar_ variabel ini didefinisikan dalam _group_vars/wazuh_managers.yml_ dan menimpa beberapa pengaturan menggunakan sesuatu seperti _host_vars/manager01.yml_ itu tidak mudah mungkin tanpa memodifikasi tugas.

Saat ini, masing-masing variabel Host saya, memiliki salinan lengkap hash ini di file variabel Host mereka dengan satu atau dua pengaturan diubah. Sepertinya tidak KERING. Akan lebih baik jika sebagian besar pengaturan umum berada dalam file variabel grup dan satu atau dua pengaturan khusus untuk host berada dalam file variabel host.

Mungkin ada cara untuk memanfaatkan filter combine untuk memungkinkan penggantian bagian dari konfigurasi yang lebih besar dengan lebih mudah:

misalnya
{{ {'a':{'foo':1, 'bar':2}, 'b':2} | combine({'a':{'bar':3, 'baz':4}}, recursive=True) }}

Keluaran:
{'a':{'foo':1, 'bar':3, 'baz':4}, 'b':2}

(Sumber: https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#combining-hashes-dictionaries)

statuavailable typenhancement

Komentar yang paling membantu

Dua sen saya:

Awalnya, konfigurasi, seperti yang ada saat ini, terlihat agak mengintimidasi TBH, mengharuskan pengguna untuk membaca sejumlah baris dan mungkin juga harus melalui templat konfigurasi agen, untuk memahami apa yang sebenarnya terjadi.

Saya bertanya-tanya apakah meratakan file konfigurasi bisa menjadi solusi yang memungkinkan - setidaknya solusi jangka pendek? Misalnya, mengapa repo di bawah wazuh_agent_config ? Mengapa repo tidak bisa berada di level teratas? Bukankah pendekatan seperti itu akan menyederhanakan banyak hal?

IMO, secara umum, membatalkan deep nesting, membagi file konfigurasi menjadi beberapa bagian (tidak harus membuat banyak file, karena itu dapat menimbulkan overhead kognitif ekstra dalam mengingat apa yang didefinisikan per file), dan menambahkan komentar per bagian dan/atau opsi konfigurasi tertentu dapat membuat file konfigurasi lebih intuitif secara keseluruhan.

Ada ide tentang langkah selanjutnya?

Terima kasih.

Semua 5 komentar

Halo @paulcalabro ,

Ini adalah ide yang benar-benar baik.

Perubahan ini rumit dan memerlukan pendekatan sebelumnya untuk dapat memisahkan konfigurasi dalam konfigurasi utama dengan entri umum dan kemudian dalam satu atau beberapa dengan entri yang lebih dapat disesuaikan.

Pengujian untuk perubahan ini akan dimulai sesegera mungkin.

Terima kasih banyak atas kerja sama Anda, kontribusi seperti Anda sangat dihargai.

Salam Hormat,

Alfonso Ruiz-Bravo

@SitoRBJ Terima kasih atas umpan baliknya dan saya sangat setuju, pengujian diperlukan. Omong-omong, apakah kalian menggunakan Test Kitchen atau yang serupa untuk pengujian? Apakah kalian tertarik jika beberapa kontribusi tes?

misalnya beberapa tes dasar menggunakan InSpec
https://www.dropbox.com/s/5zx9fb5ezc1wgj9/Screenshot%202018-12-12%2003.32.44.png?dl=0

Informasi mengenai Dapur Uji:
https://dapur.ci

Halo @paulcalabro ,

Kami belum menggunakan Test Kitchen untuk Ansible. Tolong, kontribusi apa pun dihargai. Jika Anda ingin menguji, mereka dipersilakan.

Terima kasih banyak atas minat Anda dan atas bantuan Anda, ini sangat berguna bagi kami.

Salam Hormat,

Alfonso Ruiz-Bravo

Dua sen saya:

Awalnya, konfigurasi, seperti yang ada saat ini, terlihat agak mengintimidasi TBH, mengharuskan pengguna untuk membaca sejumlah baris dan mungkin juga harus melalui templat konfigurasi agen, untuk memahami apa yang sebenarnya terjadi.

Saya bertanya-tanya apakah meratakan file konfigurasi bisa menjadi solusi yang memungkinkan - setidaknya solusi jangka pendek? Misalnya, mengapa repo di bawah wazuh_agent_config ? Mengapa repo tidak bisa berada di level teratas? Bukankah pendekatan seperti itu akan menyederhanakan banyak hal?

IMO, secara umum, membatalkan deep nesting, membagi file konfigurasi menjadi beberapa bagian (tidak harus membuat banyak file, karena itu dapat menimbulkan overhead kognitif ekstra dalam mengingat apa yang didefinisikan per file), dan menambahkan komentar per bagian dan/atau opsi konfigurasi tertentu dapat membuat file konfigurasi lebih intuitif secara keseluruhan.

Ada ide tentang langkah selanjutnya?

Terima kasih.

Halo semuanya. Saya mengajukan untuk ditinjau permintaan tarik dengan proposal yang memberikan sesuatu yang mirip dengan apa yang disarankan OP, sambil menjaga kompatibilitas dengan cara kerja peran yang sudah ditetapkan.

Umpan balik diterima, terima kasih!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat