У меня возникают проблемы, когда мои управляемые файлы записываются в каждом запуске состояния, даже если в файле ничего не обновлено. Как ни странно, я не могу найти ничего об остановке этого от Google или в солевых документах.SaltStack - управляемый файл записывается на каждом прогоне, как писать файл только в том случае, если есть обновления?
Мои состояния разделены на init.sls для развертывания пакета и config.sls для настройки пакета, причем значения конфигурации по умолчанию и среды разделены на столбик. Ниже приведены примеры.
Config State Example:
{% from "amq/map.jinja" import amq with context %}
camelxml_conf:
file.managed:
- name: {{ amq.camelxml }}
- source: salt://amq/conf/camel.xml.tmpl
- template: jinja
- user: omapp
- group: omapp
- mkdirs: True
- recurse:
- user
- group
Pillar Example:
default_routes:
Route1:
from_uri: 'activemq:inputqueue1'
process_ref: 'myprocessor1'
to_uri: 'activemq:outputqueue1'
Route2:
from_uri: 'activemq:inputqueue2'
process_ref: 'myprocessor2'
to_uri: 'activemq:outputqueue2'
{% if 'qa' in grains['env'] %}
env_routes:
route1:
from_uri: 'activemq:inputqueue3'
process_ref: 'myprocessor3'
to_uri: 'activemq:outputqueue3'
{% endif %}
Camel.xml Template Example:
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<!-- routes common across all environments -->
{% for route, args in pillar.get('default_routes', {}).items() %}
<route>
<from uri="{{ args.from_uri }}"/>
<process ref="{{ args.process_ref }}"/>
<to uri="{{ args.to_uri }}"/>
</route>
{% endfor %}
<!-- routes unique to this environment -->
{% for env_route, args in pillar.get('env_routes', {}).items() %}
<route>
<from uri="{{ args.from_uri }}"/>
<process ref="{{ args.process_ref }}"/>
<to uri="{{ args.to_uri }}"/>
</route>
{% endfor %}
ли я делаю что-то совершенно неправильно здесь? Должен ли я не устанавливать значения динамически в моем столбе? Я думаю, что это может быть причиной того, что новый файл записывается в каждом штатном режиме, но я не уверен.
Что вы хотите сказать? Нет никакой разницы между старым и новым файлом, даже строчным порядком? Время модификации файла обновляется каждый раз, когда вы запускаете свое состояние без каких-либо изменений? У вас есть результат запуска? Какую версию ты используешь? Поведение Salt - не обновлять не измененный файл, поэтому, если он будет продолжать его обновлять, это может быть ошибка. –