😈 Как определить, нужна ли FreeBSD перезагрузка, с помощью проверки версии ядра |

😈 Как определить, нужна ли FreeBSD перезагрузка, с помощью проверки версии ядра

Мануал

Поддержание вашего сервера или рабочей станции FreeBSD в актуальном состоянии имеет решающее значение для обеспечения безопасности и стабильности.

Однако после установки обновлений, особенно обновлений ядра, вы можете задаться вопросом: Нужно ли мне перезагружать систему?

Давайте упростим этот процесс и предложим простой метод определения необходимости перезагрузки с помощью интерфейса командной строки, скрипта bash  и ansible плейбука.

📜 Как использовать Ansible Lint для сканирования плейбуков

Как вы обновляете базовую систему FreeBSD, включая ядро?

Управление обновлениями FreeBSD обычно осуществляется с помощью команды freebsdupdate.

Она проверяет вашу систему, включая ядро, пользовательские утилиты и библиотеки.

Хотя некоторые обновления могут применяться динамически, обновления ядра требуют перезагрузки для загрузки нового ядра в память.

Вот как это сделать:

Получение обновлений с сервера

sudo freebsd-update fetch

Установите загруженные обновления

sudo freebsd-update install

Перезагрузите систему FreeBSD

Если в списке на экране вы увидите обновленный файл kernel, то вам необходимо перезагрузить систему.

Однако есть и другие способы определить это.

sudo reboot

Кроме того, вам всегда нужно обращать внимание на сообщения, отображаемые в процессе обновления freebsd.

Кроме того, ознакомление с рекомендациями по безопасности FreeBSD является важной частью жизни системного администратора, поскольку в них часто подробно описываются конкретные требования к перезагрузке для обновлений, связанных с безопасностью.

Как узнать, требуется ли перезагрузка FreeBSD?

Ключ к пониманию того, нужна ли перезагрузка FreeBSD box, заключается в сравнении установленной версии ядра с текущей версией ядра, запущенной в данный момент.

К счастью, это простой процесс.

Узнаем версию и уровень обновления запущенного ядра

freebsd-version -r

ИЛИ используйте команду uname:

uname -r

Вывод:

13.4-RELEASE-p1

Установите версию ядра FreeBSD с помощью команды freebsdupdate

freebsd-version -k

Вам также может потребоваться узнать версию и уровень обновления установленного пользовательского интерфейса:

freebsd-version -u

Вывод:

13.4-RELEASE-p3

Перезагрузите систему, если выходные данные отличаются

Поскольку запущенная версия 13.4RELEASEp1 и установленная версия 13.4RELEASEp4это разные версии, нам необходимо перезагрузить систему:

sudo reboot

Сценарий 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

Затем:

ansible-playbook -i freebsd.hosts check_freebsd.yaml

Заключение

Регулярная проверка версий ядра после команды обновления FreeBSD гарантирует, что в вашей системе установлено самое последнее и безопасное ядро.

Следуя этому простому методу, вы сможете поддерживать стабильную и безопасную среду FreeBSD.

Хотя это и не всегда строго требуется, обычно рекомендуется перезагружать сервер FreeBSD после значительных обновлений системы, включая пользовательское, чтобы убедиться, что все изменения применены правильно.

Вы можете запланировать для таких перезагрузок период обслуживания.

см. также:

 

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий