Я играю с рулем (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
файлы, которые были созданы. Да, это большая работа, и да, не многие компании делают это, но если вы автоматизируете обновления, вам лучше быть уверенным, что вы не скрываете важные изменения конфигурации.
Я обдумываю, как использовать Rudder, чтобы помочь мне сделать это правильно, но еще не ткнул лопатой в землю ...