Я пытаюсь заставить Марионетку обновлять наш Лак 3 сервера для Лакировки 4, основное обновление, которое требует обновленного файла конфигурации или он не запустится. Это находится на Ubuntu 12.04.
Модуль Лака по существу создается с этими классами и зависимостями:
Class['varnish::repo']
-> Class['varnish::install']
-> Class['varnish::tools']
-> Class['varnish::config']
~> Class['varnish::service']
Я обновил URL Кв.-repo в varnish::repo
, набор ensure=>latest
в varnish::install
и предоставленный обновленный файл конфигурации varnish::config
.Пока все хорошо.
Когда Марионетка выполняет эти зависимости, сбои выполнения в varnish::install
подготовьте, потому что Кв. пытается перезапустить демона Лака сразу после обновления его, не давая Марионетке шанс заменить файл конфигурации. Отказ в varnish::install
класс приводит к поврежденной цепочке зависимости и заставляет остающиеся классы перестать работать также. Результатом является поврежденная установка Лака, которой нужно ручное восстановление.
Как Вы имеете дело с этим?
Я думал об использовании policy-rc.d
, который по существу говорит Кв. не выполнять автоматические остановки и запускается сервисов. Я пытался создать файл перед обновлением и удалить его впоследствии.
file {'/usr/sbin/policy-rc.d':
ensure => $ensure,
content => "#!/bin/sh\nexit 101",
owner => 'root',
group => 'root',
mode => '0755',
}
Конечно, создание и удаление являются проблемой, потому что Марионетка рассматривает это как дублирующийся ресурс.
Почему я хочу удалить политику снова после просто установки его, Вы спрашиваете? Поскольку мы используем unattended-upgrades
для выполнения незначительных обновлений безопасности и я хочу позволить автоматические сервисные перезапуски в тех случаях, просто не в этом случае. Кроме того, политика-rc.d влияет на все сервисы, не просто Лак.
Возможно, я думаю об этом неправильно, но я могу так или иначе сказать Марионетке или Кв. ожидать с перезапуском, пока файл конфигурации не заменяется также?
Почему бы не заменить конфигурационный файл перед установкой обновления? Если он загрузится при перезагрузке, то не будет использовать "неправильный" конфигурационный файл до тех пор, пока обновление не перезапустит его . .
.