Я использую следующее состояние, чтобы попытаться закомментировать две строки в файле:
/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