Я играю с Rudder ( http://www.rudder-project.org/site/ ), но, похоже, не вижу варианта того, что я хочу.
Я бы хотел, чтобы все пакеты на «узлах» проверялись на наличие обновлений, а затем обновлялись, эквивалент 'apt-get update && apt-get upgrade' в системе Debian.
Я вижу директивы для управления пакетами, но все они, похоже, предназначены для обновления / установки пакетов с индивидуальными именами, а не для обновления всех пакетов, находящихся в настоящее время на каждом узле.
Как лучше всего делать то, что мне нужно?
Я думаю, что лучший способ добиться этого - создать метод с редактором методов и с «результатом выполнения команды» с помощью «/ usr / bin / apt-get update && / usr / bin / apt-get upgrade -y "с 0 как успешным и 1 как исправленным
Обратите внимание, что это будет выполняться при каждом запуске, что может быть не тем, что вам нужно, но вы можете использовать условие для его запуска только ночью или в течение определенного диапазона дат.
Вы также можете изучить директивы «Планировщик заданий» или создать метод, используя методы «Расписание», в которых вы можете определить что-то для выполнения, например задание cron ...
Фактически, используя apt-get install -y
не подавляет все запросы. Если вы (или Rudder от вашего имени!) Измените какой-либо из управляющих файлов для пакета, apt-get спросит вас, хотите ли вы сохранить файл конфигурации или заменить его версией сопровождающей пакета.
Многие люди имеют дело с этим, используя что-то вроде этого:
DEBIAN_FRONTEND = noninteractive DEBIAN_PRIORITY = critical apt-get dist-upgrade \
-q -y -o "Dpkg :: Options :: = - force-confdef" -o "Dpkg :: Options :: = - force-confold"
Важно отметить, что вы не можете безопасно делать это без расследования. Вышеупомянутый вызов отвечает «Нет», что означает, что вы должны заранее изучить изменения, которые пакет внесет, и убедиться, что руль направления внесет в управляющие файлы необходимые изменения.
Например, иногда в элемент управления вносятся критические исправления безопасности. файлы пакета (например, /etc/ImageMagick-6/policy.xml). Если вы ответите «Нет» или используете - force-confold
, обновление пакета не защитит вас от уязвимости, но версия пакета предложит, что исправление реализовано (в конце концов, вы работаете версия пакета с исправлением).
Единственный способ получить это право - установить все используемые вами пакеты на сервере приема, обновить его, скажем, за неделю до начала производства, а также собрать и просмотреть все Созданные файлы .dpkg-new
. Да, это большая работа, и да, не многие компании делают это, но если вы автоматизируете обновления, вам лучше быть уверенным, что вы не скрываете важные изменения конфигурации.
Я пытаюсь придумать, как использовать Руль, чтобы помочь мне сделать это правильно, но еще не вонзил лопату в землю ...