Как запускать обновления безопасности с помощью Chef?

когда я захожу на сервер (Ubuntu 12.04), мне выдается следующее сообщение:

12 packages can be updated.
10 updates are security updates.

Разрешить это «вручную», конечно, легко (apt-get update && apt-get upgrade), но из-за того, что сервер (частично) снабжен Chef, мне интересно, есть ли хороший способ включить это программно в рецепты?

поваренная книга "apt", похоже, не содержит ничего связанного :(

Ваше здоровье.


person pagid    schedule 18.12.2012    source источник


Ответы (4)


Как правило, автоматизировать обновления/обновления пакетов — плохая идея, так как это, очевидно, может привести к поломке приложений, если их сначала не протестировать должным образом.

Один из способов решить эту проблему — заблокировать поваренную книгу или удерживать репозиторий на определенной версии, а затем тщательно протестировать ее в процессе разработки, прежде чем запускать в производство.

В Amazon Linux вы можете получить уникальный URL-адрес репозитория yum в его текущем состоянии. Таким образом, вы можете запустить обновление/обновление на dev, узнать уникальный URL-адрес и отправить его в prod. Это предотвратит обновление Chef до более новых пакетов, чем вы тестировали.

Я не так хорошо знаком с Ubuntu и apt-get, но похоже, что вы можете делать то, о чем я говорю, с помощью закрепления или удержания: https://help.ubuntu.com/community/PinningHowto

Таким образом, вы хотите обновить/обновить компьютер разработчика, вы тестируете его, выясняете, в каком состоянии находится репо, и замораживаете все пакеты до этих версий. Затем вы замораживаете репозиторий продукта в этих состояниях. Затем вы просто запускаете поваренную книгу «apt-get -y upgrade», как упоминал Драко.

person wrangler    schedule 25.01.2013
comment
Я согласен с тем, что постоянно применять обновления без предварительной проверки — плохая идея. Но если вы уже протестировали обновления в своей среде разработки, как вы распространяете их в рабочей среде? Я думаю о создании своего рода поваренной книги, которая обновляет/обновляет все пакеты, а версия репо хранится в data_bag. Вы можете изменить версию в data_bag, и в следующий раз, когда рецепт будет выполнен, он запустит обновление/обновление. Что вы думаете? - person JoseOlcese; 21.11.2014

У меня просто есть execute 'apt-get -y upgrade' в моем собственном рецепте.

person Draco Ater    schedule 19.12.2012
comment
правильно, но это действительно здравый смысл соотв. передовой опыт? - person pagid; 20.12.2012
comment
Но что в этом плохого? Это просто, управляемо и делает то, что нужно. - person Draco Ater; 20.12.2012
comment
но это не отвечает, действительно ли это лучшая практика - и из-за того, что это не является частью какой-либо официальной кулинарной книги, кажется, что это не так;) - person pagid; 21.12.2012
comment
Это очень плохо. - person cpuguy83; 18.07.2013
comment
@DracoAter Почему плохо обновлять пакеты вслепую? Потому что новые версии пакетов могут иметь критические изменения, которые будут иметь неблагоприятные последствия для служб, работающих на этом сервере. Как правило, вы должны обновлять сервер только в случае необходимости, а не потому, что доступны обновления, даже обновления безопасности, поскольку их можно смягчить другими способами. - person cpuguy83; 20.07.2013
comment
Нет, это заходит слишком далеко, если вы спросите меня. Обновление только в случае необходимости — это рецепт головной боли из-за реактивного управления. Обновления должны выполняться на регулярной основе и должны быть включены в системное администрирование, а также в разработку. Chef позволяет вам запускать обновления на теневой копии вашей рабочей среды и тестировать все, что вы можете придумать. Примите это и познакомьтесь с еженедельным управлением обновлениями со сценариями отката. Используйте версии в определениях пакетов, чтобы автоматизировать весь этот процесс с помощью Chef. - person Jaap Haagmans; 05.11.2013

С одной стороны, я согласен с тем, что «как правило, автоматизировать обновления/обновления пакетов — плохая идея, поскольку это, очевидно, может привести к поломке приложений, если их сначала не протестировать должным образом». Я уверен, что это научный ответ.

Однако мой опыт показывает, что автоматическая загрузка обновлений безопасности редко вызывает проблемы, и это следует сопоставлять с вероятностью отсутствия или задержки ключевого исправления безопасности. (Мы никогда не разрешали автоматические перезагрузки, я думаю, именно здесь мы проводим черту.) Решение о том, делать ли автоматические обновления безопасности или нет, должно основываться на реальности вашей ситуации. Единого ответа на все вопросы не существует.

Если вы хотите запускать автоматические обновления, есть несколько доступных кулинарных книг (по крайней мере, для Ubuntu), но, к сожалению, ни одна из них не особенно актуальна, что немного иронично. Вот один пример: unattended_upgrades

person Tom Wilson    schedule 18.11.2016

Для этого доступна кулинарная книга автоматического исправления: https://github.com/bflad/chef-auto-patch/.

Также есть сообщение Chef о том, как интегрировать Chef в ваш процесс исправления: https://www.chef.io/solutions/patch-management/

Суть в следующем:

  • Определите уязвимость.
  • Тестируйте обновления.
  • Выкатывайте патчи.
  • Следите за неожиданными побочными эффектами.
person dkinzer    schedule 09.07.2015