Изменение профилей агента ossec(wazuh) через солончак

Я пытаюсь изменить <config-profile> раздел ossc.conf файл, включая содержание зерна.

что-то вроде:

ossec-profiles:
  - profile1
  - profile2

и я хочу изменить раздел <config-profile> от

<config-profile>centos, centos7</config-profile>

в

<config-profile>centos, centos7, profile1, profile2</config-profile>

в ossec.conf файл

Любая идея?

1 ответ

Решение

Это можно сделать с помощью модуля file.replace, который позволяет изменять текст в файле на основе шаблона. Так что в вашем случае вы можете сделать следующее:

Вам нужно выбрать шаблон в качестве группы регулярных выражений, чтобы вы могли использовать его позже, как показано ниже

configure_ossec:
  file.replace:
    - name: /path/to/ossec.conf
    - pattern: '((<config-profile>.*?)[^<]*)'
    - repl: {{ '\\1, ' +  pillar['ossec-profiles'] | join(', ') }}

Или вы можете использовать этот шаблон, чтобы соответствовать только то, что внутри config-profile теги, то вы сможете снова вызвать его в repl параметр:

(?<=<config-profile>)(.*)(?=<\/config-profile>)

Примечание: как pillar['ossec-profiles'] должен вернуть список профилей, тогда вы должны использовать фильтр объединения, чтобы разделить значения запятой в качестве разделителя

И, наконец, ожидаемый результат будет примерно таким:

     Changes:   
              ----------
              diff:
                  --- 
                  +++ 
                  @@ -1 +1 @@
                  -<config-profile>centos, centos7</config-profile>
                  +<config-profile>centos, centos7, profile1, profile2</config-profile>

Другие вопросы по тегам