Назад | Перейти на главную страницу

Инструменты, помогающие перейти с RHEL 4 на CentOS 8

У меня есть несколько устаревших серверов (около 30), на которых выполняется недокументированный код, который все еще работает на RHEL4. Некоторые новые серверы работают на CentOS5 или 6, но большинство из них - RHEL4. После аудита безопасности руководство наконец согласилось с тем, что что-то нужно сделать, и серверы необходимо перенести на что-то из этого (или следующего) десятилетия. На серверах в основном работают приложения с открытым исходным кодом, такие как cacti, mysql, php, apache, perl, причем некоторые из них имеют привязки Oracle для запросов к таким базам данных.

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

Итак - я полагаю, что примерно это нужно сделать:

  1. Чистая установка целевой ОС (CentOS8) - это можно сделать на виртуальной машине, преобразовать в шаблон и развернуть по мере необходимости.
  2. Сетевые настройки (IPS, маршруты, правила iptables, dns, ntp, snmp, ключи хоста ssh) необходимо перенести. В случае сети мне нужно преобразовать старый / etc / sysconfig / network-scripts / if-, маршрут- в правильную конфигурацию NetworkManager. Есть ли инструмент, который это уже автоматизирует?
  3. Перенос старых пользователей + их домашние папки на новые серверы. Я что-то вместе взломал, но нужно тестирование (https://github.com/mad-ady/os-migration/blob/master/user-accounts-source.sh). Еще мне нужно перенести их crontab (локальная почта не важна).
  4. Установите недостающие пакеты, которые были установлены в исходнике (мне есть что извлечь из истории yum: https://github.com/mad-ady/os-migration/blob/master/yum-packages-source.sh, но RHEL4 по умолчанию не использует yum).
  5. Определите нестандартную конфигурацию из / etc, перенесите (и протестируйте / адаптируйте) ее для новой версии CentOS. Не уверен, как найти только измененную конфигурацию на исходном хосте ...
  6. Переносите устаревшие приложения, веб-сайты, выполняйте пошаговые тесты и вносите изменения по мере необходимости (например, старые версии mysqls имели другую аутентификацию, чем более новые версии). Попытайтесь выполнить обновление на месте до более новых версий программного обеспечения (например, с Cacti 0.8 -> 0.9 -> 1.0 и т. Д.), Сохраняя старые данные, учетные записи и т. Д.

Я думал о написании ansible playbooks, чтобы сделать все это в надежде, что это упростит будущие обновления, но написание playbook требует больших затрат, чем на самом деле выполнение одноразовой конфигурации, поэтому я не уверен, что это того стоит .. .

Я уверен, что забываю много вещей, о которых нужно позаботиться, поэтому вот мой вопрос:

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

Спасибо за любой совет!

Похоже, вы унаследовали от неконтролируемой ИТ-среды.

По моему мнению, стоит потратить усилия на разработку playbook для сборки / настройки новых систем centos8 (пакеты, сетевой cfg, пользователи, ssh-ключи ...).

Но перенос приложений придется выполнять вручную, потому что каждый случай будет индивидуальным. Вы должны понимать, как запускается приложение (/etc/rc3.d должно быть хорошей отправной точкой), каковы зависимости (lib / packages) и как эти зависимости были установлены (tarball? Package?), Есть ли crontab связанные, какие новые версии библиотеки доступны в centos8, есть ли какие-либо изменения кода приложения, связанные с новой версией библиотеки, есть ли какие-либо изменения синтаксиса файла конфигурации.

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

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

Удачи !