Поддержание вашего сервера или рабочей станции FreeBSD в актуальном состоянии имеет решающее значение для обеспечения безопасности и стабильности.
Однако после установки обновлений, особенно обновлений ядра, вы можете задаться вопросом: “Нужно ли мне перезагружать систему?”
Давайте упростим этот процесс и предложим простой метод определения необходимости перезагрузки с помощью интерфейса командной строки, скрипта bash и ansible плейбука.
📜 Как использовать Ansible Lint для сканирования плейбуков
- Как вы обновляете базовую систему FreeBSD , включая ядро ?
- Получение обновлений с сервера
- Установите загруженные обновления
- Перезагрузите систему FreeBSD
- Как узнать , требуется ли перезагрузка FreeBSD ?
- Узнаем версию и уровень обновления запущенного ядра
- Установите версию ядра FreeBSD с помощью команды freebsd – update
- Перезагрузите систему , если выходные данные отличаются
- Сценарий bash, который сообщает , нужна ли перезагрузка FreeBSD , используя проверку версии ядра
- Использование Ansible плейбука для перезагрузки парка серверов FreeBSD
- Заключение
Как вы обновляете базовую систему FreeBSD, включая ядро?
Управление обновлениями FreeBSD обычно осуществляется с помощью команды freebsd–update.
Она проверяет вашу систему, включая ядро, пользовательские утилиты и библиотеки.
Хотя некоторые обновления могут применяться динамически, обновления ядра требуют перезагрузки для загрузки нового ядра в память.
Вот как это сделать:
Получение обновлений с сервера
Установите загруженные обновления
Перезагрузите систему FreeBSD
Если в списке на экране вы увидите обновленный файл “kernel“, то вам необходимо перезагрузить систему.
Однако есть и другие способы определить это.
Кроме того, вам всегда нужно обращать внимание на сообщения, отображаемые в процессе обновления freebsd.
Кроме того, ознакомление с рекомендациями по безопасности FreeBSD является важной частью жизни системного администратора, поскольку в них часто подробно описываются конкретные требования к перезагрузке для обновлений, связанных с безопасностью.
Как узнать, требуется ли перезагрузка FreeBSD?
Ключ к пониманию того, нужна ли перезагрузка FreeBSD box, заключается в сравнении установленной версии ядра с текущей версией ядра, запущенной в данный момент.
К счастью, это простой процесс.
Узнаем версию и уровень обновления запущенного ядра
ИЛИ используйте команду uname:
Вывод:
13.4-RELEASE-p1
Установите версию ядра FreeBSD с помощью команды freebsd–update
Вам также может потребоваться узнать версию и уровень обновления установленного пользовательского интерфейса:
Вывод:
13.4-RELEASE-p3
Перезагрузите систему, если выходные данные отличаются
Поскольку запущенная версия “13.4–RELEASE–p1” и установленная версия “13.4–RELEASE–p4” – это разные версии, нам необходимо перезагрузить систему:
Сценарий bash, который сообщает, нужна ли перезагрузка FreeBSD, используя проверку версии ядра
Создайте shell скрипт следующим образом:
#!/bin/sh running_version=`freebsd-version -r` installed_version=`freebsd-version -k` #userland_version=`freebsd-version -u` if [ "$running_version" = "$installed_version" ]; then echo "All variables have the same string. Reboot is not needed." else echo "Variables do not have the same string. The FreeBSD system must be rebooted to load a new kernel." fi
Использование Ansible плейбука для перезагрузки парка серверов FreeBSD
Вы можете автоматизировать процесс проверки необходимости перезагрузки FreeBSD с помощью Ansible.
Вот как вы можете создать Ansible playbook, который сравнивает версии ядра и регистрирует переменную, указывающую, требуется ли перезагрузка
Создайте файл с именем check_freebsd.yaml:
- name: Check if FreeBSD reboot is required hosts: freebsd # Replace with your FreeBSD host group gather_facts: false # Avoid unnecessary fact gathering tasks: - name: Get currently running FreeBSD kernel version in memory (OLD) shell: freebsd-version -r register: running_version - name: Get installed kernel by the freebsd-update (NEW) shell: freebsd-version -k register: installed_version - name: Check for kernel version mismatch set_fact: reboot_required: "{{ running_version.stdout != installed_version.stdout }}" - name: Display reboot status debug: msg: "Reboot required: {{ reboot_required }}" - name: Reboot the FreeBSD server if needed. reboot: reboot_timeout: 3600 when: reboot_required
Создайте новый файл инвентари хостов с именем freebsd.hosts:
[freebsd] 192.168.2.10 aws-www-1 aws-www-2 aws-www-3
Затем:
Заключение
Регулярная проверка версий ядра после команды обновления FreeBSD гарантирует, что в вашей системе установлено самое последнее и безопасное ядро.
Следуя этому простому методу, вы сможете поддерживать стабильную и безопасную среду FreeBSD.
Хотя это и не всегда строго требуется, обычно рекомендуется перезагружать сервер FreeBSD после значительных обновлений системы, включая пользовательское, чтобы убедиться, что все изменения применены правильно.
Вы можете запланировать для таких перезагрузок период обслуживания.
см. также:
- 😈 Как вывести список обновляемых пакетов во FreeBSD с помощью pkg
- 🌐 Управление заданиями Cron на нескольких серверах с помощью Dkron
- 💣 Проверьте, уязвим ли сервер к ошибке Shellshock
- 🐧 Scalpel – инструмент для восстановления удаленных файлов на Linux
- 🐧 Как сохранить процесс Linux запущенным после сбоя или перезагрузки
- 🐧 Как удалить огромные (100-200 ГБ) файлы на Linux