Прикладная демонология, практические рецепты

Обновление FreeBSD

Обновление patch-level (update)

Скачиваем и устанавливаем обновления:

freebsd-update fetch
freebsd-update install

Актуализируем конфигурацию сервера:

ansible-playbook 42.yml -l host -D

Перезагружаем сервер (или перезапускаем всех работающих демонов).

Обновление версии (upgrade)

Актуализируем конфигурацию сервера:

ansible-playbook 42.yml -l host -D

Скачиваем файлы, необходимые для обновления:

freebsd-update upgrade -r 11.0-RELEASE

Проходим процедуру mergemaster (ручное редактирование файлов, которые не смогли чисто объединиться).
Запускаем установку нового ядра (первый вызов install):

freebsd-update install

Перезагружаем сервер на новом ядре:

reboot

Запускаем установку окружения и файлов конфигурации (второй вызов install):

freebsd-update install

Проверяем, что не осталось файлов с неразрешенными конфликтами:

fgrep -R '<<< current' /etc

Обновляем все пакеты:

# сначала обновляем сам pkg
pkg-static upgrade pkg

# удаляем зависшие ненужные пакеты
pkg autoremove

# обновляем все остальные пакеты
pkg upgrade

# удаляем зависшие ненужные пакеты (они могли образоваться в результате обновления)
pkg autoremove

# проверяем доступность новых версий всех установленных пакетов в новом репозитории
pkg version -RL=

# очищаем кеш пакетов
pkg clean -a

# выкатываем полную конфигурацию хоста
ansible-playbook 42.yml -l host -D

Актуализируем конфигурацию сервера:

ansible-playbook 42.yml -l host -D

Удаляем библиотеки обратной совместимости (третий вызов install):

freebsd-update install

Перезагружаем сервер с новым окружением и пакетами:

reboot

При необходимости обновляем zpool:

zpool upgrade -a

Делаем чистовую проверку:

ansible-playbook 42.yml -l host -D