1

Мои коллеги поддерживают файл конфигурации, который SaltStack развертывает в производственных / тестовых / промежуточных средах. Я поддерживаю этот файл, используя diff, чтобы увидеть, что изменилось, и код соответствующего фрагмента jinja.

Имя файла - program.conf а версия SaltStack - program.conf.jinja .

program.conf есть строки вида:

variable = "value"

program.conf.jinja это:

variable = "{{ value }}"

С точки зрения различий, они разные. Но с моей точки зрения они одинаковы. Я ищу прагма-подобную функцию, где я могу сказать пометить файл jinja следующим образом, чтобы я не получил это в выводе diff:

variable = "{{ value }}" # pragma-same: variable = "value"

Я также буду использовать эту утилиту для генерации предупреждений, чтобы заставить людей обновить файл jinja для любой отсутствующей переменной.

variable = "value" иногда разрешается в более сложных строфах, таких как:

{% if pillar.get(...) %}
variable = {{ value }}
{% else %}
variable = {{ value + 2 }}
{% endif %}

1 ответ1

1

Хотели бы вы создать нормализованный временный файл и сравнить с этим?

sed 's/{{ \(.*\) }}/\1/' program.conf.jinja > temp  &&  diff program.conf temp

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .