Изменение профилей агента ossec (wazuh) через солончак - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь изменить раздел <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 Ответ

0 голосов
/ 02 февраля 2019

Это можно сделать с помощью модуля 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>

...