РЕД ОС 7.3: тестируем RHEL-совместимый дистрибутив для КИИ параллельно с Astra Linux
РЕД ОС 7.3 на базе Fedora/RHEL - отечественный дистрибутив для КИИ. Делимся результатами первых тестов совместимости RPM и Ansible-ролей.
Выход РЕД ОС 7.3 (ROSA): обновление отечественного дистрибутива на базе Fedora/RHEL, сертифицированного ФСТЭК для применения в КИИ
У нескольких клиентов из числа субъектов КИИ исторически сложился RPM-стек: CentOS 7, местами RHEL 7, свои пакеты собраны под el7, Ansible-роли написаны под RedHat-семейство. Когда встал вопрос об отечественной ОС с сертификатом ФСТЭК, первым рефлексом было смотреть на Astra Linux - она сейчас на слуху, и мы действительно её тестируем. Но Astra - это Debian-based, а это значит dpkg, apt, другой путь к пакетам и неминуемая переработка части ролей.
РЕД ОС 7.3 от компании «РЕД СОФТ» интересна именно тем, что строится на Fedora/RHEL-основе. В реестре Минцифры есть, сертификат ФСТЭК по 4-му уровню доверия получен. Для тех, у кого RPM-стек, - это потенциально более короткий путь миграции. Решили проверить, насколько это правда.
Что тестировали
Подняли несколько виртуалок в тестовом контуре. Задача не в том, чтобы получить финальный вердикт - до него ещё далеко. Задача - понять, насколько существующая инфраструктура переносится без радикальной переработки.
Три направления:
- Совместимость RPM-пакетов - всё, что мы тянем из EPEL и сторонних репозиториев в рабочих конфигурациях.
- Ansible-роли - проверяем, что
gather_factsвозвращает ожидаемые значения и условия в ролях отрабатывают правильно. - Базовые сервисы - PostgreSQL, nginx, Zabbix-агент, systemd-конфигурации.
Что с пакетами
РЕД ОС 7.3 базируется на Fedora 32/33 с бэкпортами. Это не RHEL 7 и не RHEL 8 - ближе к RHEL 8 по составу пакетов, но с отклонениями. Система пакетного менеджмента - dnf, что уже хорошо: привычно, и большинство скриптов работает без правок.
EPEL для el8 подключается и в целом работает, но тут сразу первый нюанс: часть пакетов из EPEL тянет зависимости, которых в базовом репозитории РЕД ОС нет или версия другая. В нескольких случаях при установке получили конфликты зависимостей, которых на AlmaLinux 8 или Rocky 8 не было бы. Не катастрофа, но ручная работа.
Сторонние репозитории, которые мы регулярно используем:
- PostgreSQL PGDG - пакеты для el8 встали нормально, PostgreSQL 14 запустился.
- Zabbix - аналогично, без проблем.
- Grafana - тоже ок, rpm-based установка отработала.
- Несколько проприетарных агентов мониторинга - здесь пришлось повозиться. Один вендор даёт RPM только под RHEL 7 и RHEL 8, детекция дистрибутива упала с ошибкой. Обошли через ручную установку rpm с
--nodeps, работает, но это уже за рамками «просто подключить репо».
Что с Ansible
Это ключевой вопрос, потому что переписывать восемьдесят ролей - это месяцы работы, которых ни у кого нет.
Хорошая новость: ansible_os_family возвращает RedHat, ansible_distribution - RED OS, ansible_distribution_major_version - 7. Роли, написанные через ansible_os_family == 'RedHat', отрабатывают.
Плохая новость: роли, которые внутри проверяют ansible_distribution_major_version == '8' для выбора версий пакетов или путей конфигурации, естественно, попадают в ветку 7. Это означает, что такие роли ведут себя как для RHEL 7, а там ряд вещей другой - пути, имена сервисов, параметры. В нескольких ролях это привело к некорректной конфигурации при первом прогоне.
Роль настройки nginx упала потому что пакет nginx в ветке для 7-й версии тянул более старый конфиг-путь. Не сломалась, но написала конфиг не туда - поняли по тестовому запросу к сервису.
Если говорить честно: роли, написанные аккуратно с условиями по os_family без жёсткой привязки к мажорной версии, работают. Те, где есть ветвление по версии - требуют аудита. У нас таких примерно треть.
Первые выводы
Первое - миграция с CentOS 7 на РЕД ОС 7 действительно ближе, чем миграция на Astra Linux. Пакетный менеджер тот же, структура директорий знакома, systemd-юниты переносятся без правок. Это ощутимо.
Второе - «совместимость с RHEL» не означает «совместимость с el8-пакетами» один к одному. Нужно проверять каждый репозиторий. Большинство работает, но есть исключения.
Третье - Ansible-роли нужно аудитить, даже если они написаны под RedHat-семейство. Условия по мажорной версии могут вести себя неожиданно, если у вас в коде есть ветвление 7 vs 8.
Четвёртое - документация. У РЕД ОС есть документация, но её глубина заметно меньше, чем у RHEL или даже у AlmaLinux с его community. Когда искали объяснение нескольким конфликтам зависимостей - приходилось копать самостоятельно или обращаться в техподдержку. Техподдержка отвечает, но это другой ритм работы по сравнению с поиском в Stack Overflow.
Что дальше
Тестирование продолжается. Следующий этап - поднять полноценный стенд с доменной инфраструктурой (FreeIPA или AD-интеграция) и проверить, как ведут себя роли управления пользователями и политиками. Это отдельная история.
Параллельно продолжаем тестировать Astra Linux 2.7 - для клиентов с требованиями по классу защищённости выше четвёртого уровня она остаётся приоритетным вариантом по регуляторным причинам.
Для клиентов с RPM-инфраструктурой и умеренными регуляторными требованиями РЕД ОС выглядит как разумный кандидат. Но «разумный кандидат» и «готово к продакшну» - разные статусы, второй статус мы ещё не присваиваем. Тесты продолжаются, результаты фиксируем в рамках сопровождения инфраструктуры клиентов.