Как обновить все пакеты узлов с помощью руля
Я играю с Руддером ( http://www.rudder-project.org/site/), но, похоже, не вижу варианта того, что я хочу.
Мне бы хотелось, чтобы все пакеты на "узлах" проверялись на наличие обновлений, а затем обновлялись, что эквивалентно "apt-get update && apt-get upgrade" на коробке Debian.
Я вижу директивы для управления пакетами, но все они, похоже, предназначены для обновления / установки пакетов с индивидуальными именами, а не для обновления всех пакетов, которые в настоящее время находятся на каждом узле.
Каков наилучший способ сделать то, что я после?
2 ответа
Я думаю, что лучший способ добиться этого - создать технику с помощью редактора техник и с "результатом выполнения команды" с помощью "/usr/bin/apt-get update && /usr/bin/apt-get upgrade -y" с помощью 0 как успех и 1 как ремонт
Обратите внимание, что это будет выполняться при каждом запуске, что может быть не тем, что вы хотите, но вы можете использовать условие, чтобы запускать его только ночью или во время определенного диапазона дат.
Вы также можете посмотреть директивы "Job Scheduler" или создать технику, используя методы "Schedule", в которых вы можете определить, что выполнить, например, задание 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
файлы, которые были созданы. Да, это большая работа, и да, не так много компаний делают это, но если вы автоматизируете обновления, вам лучше быть уверенным, что вы не заметите важные изменения конфигурации.
Я играю с идеями о том, как использовать Rudder, чтобы помочь мне сделать это правильно, но еще не положил лопату в землю...