Debian 12 -> 13¶
Ниже приведен практический сценарий обновления сервера с Debian 12 до Debian 13 поверх установленного окружения EnDeBx.
Перед началом
Если у вас используется Percona MySQL, для Debian 13 доступна только ветка 8.4. Перейдите с 8.0 на 8.4 до upgrade ОС.
Подготовка¶
- сначала проверьте upgrade на тестовой копии;
- используйте терминальный мультиплексор на случай потери ssh-соединения (screen/tmux/byobu/zellij);
- обновите меню;
- обновите пакеты текущего релиза.
Переключение репозиториев¶
Если у вас подключены дополнительные внешние репозитории, заранее убедитесь, что у них есть пакеты под новый релиз.
Первый этап обновления¶
Во время процесса полезно читать changelog и вопросы maintainer scripts, а не подтверждать их автоматически.
Правка Nginx-конфигов под новый синтаксис HTTP/2¶
find /etc/nginx/bx/site_avaliable/ -type f -print0 |
xargs -0 perl -0777 -i -pe '
s/^\s*http2 on;\s*\n//mg;
s/(\blisten[^\n]*443[^\n]*ssl[^\n]*)\s+http2\b/\1/mg;
s/((?:^[^\n]*listen[^\n]*443[^\n]*ssl[^\n]*\n)+)(?!.*^[^\n]*listen[^\n]*443[^\n]*ssl\b)/$1 http2 on;\n/ms;
'
Второй этап обновления¶
Перезагружаем сервер
После перезагрузки:
Дополнительные действия после upgrade¶
Обновить источники в deb822¶
Опционально:
Поставить eza для стандартных alias¶
Почистить устаревшие MySQL-параметры¶
Вместо этого можно перегенерировать конфиг через меню
sed -i '/innodb_file_per_table/d' /etc/mysql/mariadb.conf.d/x_server.cnf
sed -i '/innodb_flush_method/d' /etc/mysql/mariadb.conf.d/x_server.cnf
При необходимости сменить collation¶
sed -i 's/utf8mb4_unicode_ci/utf8mb4_0900_ai_ci/g' /etc/mysql/mariadb.conf.d/x_server.cnf
sed -i 's/utf8mb4_unicode_ci/utf8mb4_0900_ai_ci/g' /root/.env.menu
После правок:
При необходимости сконвертировать БД после смены collation¶
Если вы меняли collation, можно дополнительно сконвертировать базы через скрипт busconvert. Делать это нужно отдельно для каждого ядра.
Инструкция:
Не забудьте скорректировать в самом скрипте требуемые значения:
Переустановить Ansible под новый Python¶
export BS_ANSIBLE_REQUIRED_VERSION=$(grep '^BS_ANSIBLE_REQUIRED_VERSION=' /root/vm_menu/bash_scripts/config.sh | awk -F'"' '{print $2}')
pipx reinstall-all
Если pipx reinstall-all не сработал, можно установить ansible заново вручную:
rm -f ~/.local/bin/ansible* && rm -rf ~/.local/pipx/
pipx install --include-deps "ansible==$BS_ANSIBLE_REQUIRED_VERSION"
pipx inject ansible jmespath passlib python-debian
Отключить новое tmpfs-поведение для /tmp¶
После завершения¶
После upgrade проверьте:
- запуск сайтов;
- работу PHP-FPM;
- MySQL/PostgreSQL;
- выпуск SSL и редиректы;
- запуск меню и
ansible-playbook.