Лучшая практика обновления update.conf в CFEngine?
update.conf
используется для обновления cfagent.conf
файл, чтобы любая синтаксическая ошибка внутри cfagent.conf
можно вернуть
Во многих документах не рекомендуется обновлять update.conf
файл. Но если update.conf
Нужно регулярно обновлять, что лучше делать?
Спасибо за любые предложения:-)
3 ответа
Я бы предложил сделать последовательный процесс проектирования для каждой разработки программного обеспечения. Модификация update.conf также входит в эту группу. Вы должны попытаться внести изменения в DEV, а затем протестировать его, прежде чем запрашивать UAT, и в конце перенести его в PROD.
Многие люди интегрируют контроль версий в политику. Все хосты оформляют политику напрямую. Вы можете рассмотреть возможность сделать это тоже, если хотите.
В моем случае я не сильно меняю содержимое в update.conf (наверное, раз в год). Мы замораживаем код только для обновления политики. Как только мне нужно измениться, я делаю это в DEV, чтобы убедиться, что все в порядке. Как вы можете видеть, если произошла опечатка / человеческая ошибка, все ваши хосты могут полностью умереть, не могут обновлять политику автоматически.
Я думаю реализовать двойной отказоустойчивый прямо сейчас. Один отказоустойчивый - это обновление политик, регулярно запускаемых cf-execd, а другой - только для восстановления отказоустойчивых в случае сбоя.
Мой первый вопрос: зачем вам так часто менять update.conf? Он должен быть в значительной степени инвариантным, чтобы вы могли избежать потенциальных проблем с обновлениями. Если есть какая-то его часть, которую необходимо часто обновлять, может быть, эта часть должна быть выделена в другом файле?
Не уверен, что это та же проблема, с которой сталкивается yegle, но у меня также была необходимость изменить update.conf в тех случаях, когда я запускаю / mamaging демона с CFEngine и мне нужно изменить параметры, с которыми ему нужен демон быть перезапущен в следующем обновлении.
Однако я согласен с тем, что update.cf (теоретически) "никогда" не следует менять. Если происходят изменения, то они должны быть отделены. С CFEngine 3 вы можете использовать оптимизацию cf_promises_validated