Назад | Перейти на главную страницу

Комментируете несколько строк в SaltStack?

Я использую следующее состояние, чтобы попытаться закомментировать две строки в файле:

/etc/cloud/cloud.cfg:
  file.comment:
    - regex: ^ - set_hostname
    - regex: ^ - update_hostname

К сожалению, как и ожидалось, он использует только последнюю строку регулярного выражения и игнорирует первую.

Как я могу закомментировать более одной строки в файле с помощью file.comment?

После работы над этим всю ночь я нашел решение, которое работает.

Вот решения, которые НЕ РАБОТАЕТ:

/etc/cloud/cloud.cfg:
  file.comment:
    - regex: ^ - set_hostname

/etc/cloud/cloud.cfg:
  file.comment:
    - regex: ^ - update_hostname

Причина, по которой это не работает, заключается в том, что /etc/cloud/cloud.cfg бит используется в качестве идентификатора состояния, и никакие два идентификатора не могут быть одинаковыми в файле SLS, поскольку идентификаторы являются глобальными. Однако есть альтернативный способ записи состояний:

comment_set_hostname:
  file.comment:
    - name: /etc/cloud/cloud.cfg
    - regex: ^ - set_hostname

comment_update_hostname:
  file.comment:
    - name: /etc/cloud/cloud.cfg
    - regex: ^ - update_hostname

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

Вид хакерского, но вы можете связать регулярное выражение с помощью или:

/etc/cloud/cloud.cfg:
  file.comment:
    - regex: ^ - set_hostname|^ - update_hostname