Ответ 1
Рецепт default "apt" cookbook по умолчанию будет работать apt-get update
, чтобы обеспечить обновление кеша пакета. Мы рекомендуем разместить это в начале списка запуска node, чтобы позже пакеты могли быть установлены с правильными версиями.
Обычно мы не рекомендуем, чтобы пользователи использовали "apt-get upgrade
" в рецепте по нескольким причинам.
-
apt-get
может обновить пакет с конфликтующей конфигурацией или другими проблемами, которые невозможно устранить без повторного запуска команды или выполнения других команд apt/dpkg вручную. - Автоматические обновления всех пакетов в системе могут иметь непреднамеренные побочные эффекты для запущенной системы (крайние случаи много и, возможно, колючие, поэтому я не могу их охватить).
Вместо этого используйте действие "upgrade" для пакетов, которые должны всегда обновляться до последней версии.
package "nginx" do
action :upgrade
end
Если вы повторно используете кулинарию, которая определяет кулинарию, вы можете написать рецепт, который изменяет действие существующего ресурса, например:
resources("package[nginx]").action(:upgrade)
Метод #resources
в рецепте будет искать в коллекции ресурсов указанный ресурс (пакет nginx). Затем отправка метода #action
с аргументом :upgrade
сообщит Шефу, что действие должно быть обновлено.
Изменить Обновить. Будьте осторожны при выборе пакетов, которые будут автоматически обновлены таким образом. Изменение вверх в пакете может привести к пагубным последствиям для системы. Это особенно верно, если такой пакет выполняет перезапуск служб, которыми он управляет во время сценариев после установки. Знайте свою инфраструктуру и, если сомневаетесь, запустите свой собственный репозиторий пакетов, в котором есть критические пакеты, необходимые для стека приложений.