Всем привет!  В связи с последними событиями в мире вопрос отечественных разработок в сфере программного обеспечения и дистрибуции становится все более и более актуальным, и нам все чаще поступают запросы по переезду с западных дистрибутивов на отечественные операционные системы. По законодательству государственные учреждения, корпорации с государственным участием, объекты критической инфраструктуры (например, больницы и электростанции) обязаны использовать ПО из единого реестра российских программ. В свою очередь, для коммерческих проектов важна минимизация рисков санкций на ПО, которые могут косвенно или напрямую повлиять на работу.  Именно поэтому было решено посвятить статью одному из таких продуктов. Речь пойдет о российской операционной системе РЕД ОС — дистрибутиве, построенном на базе ядра Linux и пакетной базе RPM. Со слов разработчиков дистрибутива, РЕД СОФТ опирается на опыт ведущих мировых сообществ Open Source и придерживается конвенций о наименовании пакетов и спецификации сборок. Решающим фактором в выборе РЕД ОС является наличие свидетельства государственной регистрации программ ЭВМ и ее наличие в едином реестре российских программ.  В рамках статьи будет продемонстрировано развертывание простого Bitrix‑окружения на этой ОС, а именно развертывание стандартного LEMP (Linux, Nginx, MySQL, PHP) и установка дополнительных решений для работы проекта на данном дистрибутиве. Однако, мы посчитали скучным описание установки стека LEMP только из родного репозитория, поэтому решили в рамках статьи развернуть СУБД MySQL 5.7, пакеты которой отсутствуют в репозиториях РЕД ОС. Как показывает наша практика, данная версия MySQL все еще остается одной из самых популярных для LEMP‑стек проектов.  Сегодня в IT‑сообществе нет общепринятого мнения по поводу российских дистрибутивов, именно поэтому мы хотим познакомить вас с их представителем, разобраться, кому подходит данный дистрибутив, развеять опасения о работе с ним, а также объективно оценить плюсы и минусы его использования. Прежде чем начать, приглашаю вас подписаться на наш Telegram‑канал DevOps FM и познакомиться с YouTube — мы всегда рады новым друзьям:) Вводная часть; Кому подойдет данный дистрибутив;  Особенности дистрибутива; Описание установки Nginx + Apache2; Описание установки Docker + Docker Compose; Описание установки PHP 7.4 через Docker; Описание установки MySQL 5.7; Описание установки демо-версии Bitrix и проведение тестов; Описание установки вспомогательных сервисов; Заключение; В первую очередь, РЕД ОС подходит для государственных структур. При переходе на РЕД ОС для государственных структур выполняются требования по использованию российского ПО и дистрибуции. Со стороны разработчиков РЕД ОС представлена следующая информация по сертификации:  РЕД ОС прошла испытания в системе сертификации средств защиты информации на соответствие требованиям:  «Требования безопасности информации к операционным системам» (ФСТЭК России, 2016)»  «Профиль защиты операционных систем типа А четвертого класса защиты. ИТ.ОС.А4.ПЗ» (ФСТЭК России, 2017)»  Соответствует 4 уровню доверия согласно:  «Требования по безопасности информации, устанавливающие уровни доверия к средствам технической защиты информации и средствам обеспечения безопасности информационных технологий», утвержденных приказом ФСТЭК России № 76 от 02 июня 2020 г.»  В коммерческом секторе российский дистрибутив гарантирует санкционную устойчивость. Кроме этого, РЕД ОС более выгоден по сравнению с ОС Windows по стоимости лицензии. Чуть позже мы также затронем совместимость данного дистрибутива с отечественным ПО.  РЕД ОС представляется в двух вариациях издания:   Рабочая станция:  Дистрибутив операционной системы с набором приложений для работы обычного пользователя.   Сервер:  Платформа для построения ИТ инфраструктуры, включает в себя набор инструментов для обеспечения централизованного управления и мониторинга.  Варианты установки:  Графический сервер — вариант сервера с графическим интерфейсом для работы.  Минимальный сервер — минимум установленных утилит, работа производится через консоль.  В данной статье была использована последняя доступная (на момент написания статьи) версия РЕД ОС — 7.3.2 МУРОМ Начнем с основ: под капотом РЕД ОС для работы с пакетами находится RPM (Redhat Package Manager). Данная особенность означает, что в случае необходимости установки пакетов не входящих в официальные репозитории РЕД ОС, имеется возможность воспользоваться пакетами, предназначенными для семейства систем RHEL (Red Hat Enterprise Linux), чуть позже вернемся к этому:)  А что же входит в родные репозитории РЕД ОС? С полным списком входящих пакетов вы можете ознакомиться тут, дополнительно мы составили таблицу с самым распространенным ПО для работы Bitrix‑проектов.  Для каких систем подойдет данная ОС? На официальном сайте дистрибутива представлен список совместимого оборудования и программного обеспечения, ознакомиться с ним вы можете тут.  Категория ПО В репозитории РЕД ОС Инструменты централизованного мониторинга и управления информационной инфраструктурой организации Система мониторинга Zabbix для отслеживания состояния информационной инфраструктуры предприятия. Ansible, Cockpit, Webmin и прочие Почтовый сервер SMTP‐сервисы: Postfix, Exim, iRedMail, sendmail.   Web-серверы Apache, NGinx, lighttpd   Реляционные базы данных  PostgreSQL, MariaDB, Firebird  Нереляционные базы данных Memcached, Redis   Поисковые движки Sphinx, ElasticSearch Ниже представлено самое распространенное программное обеспечение из различных сфер, совместимое с данным дистрибутивом:   управление процессами предприятий 1С‐Предприятие, 1С Битрикс24;  1С‐Битрикс: Управление сайтом;  облачные офисные пакеты ONLYOFFICE, Р7‐Офис, Мой офис; банковские информационные системы iDБанк, iSimpleBank, ЦФТ‐Банк; медицинские информационные системы КМИС.Регион, БАРС.МИС, МИС Инфоклиника; СУБД Ред База Данных, СУБД Jatoba, Postgres Pro; почтовый сервер Tegu, МойОфис Почта, CommuniGate Pro. Из этого мы видим, что большинство актуальных российских разработок уже поддерживаются под данный дистрибутив и могут быть развернуты. Перед началом работ необходимо выполнить обновление всех пакетов, отключить SELinux (Security‑Enhanced Linux, системы принудительного контроля доступа) и выполнить перезагрузку системы. Отключение принудительного контроля необходимо для корректной работы сервисов (запись/чтение логов, проксирование и т. п.) без дополнительных вмешательств со стороны администратора.  Итак, начнем с WEB-Серверов, а именно Nginx и Apache2. Оба веб-сервера присутствуют в родном репозитории и никаких проблем с установкой не возникнет.  Перед запуском сервисов необходимо внести изменения в конфигурацию Apache2. Дело в том, что веб-сервер по умолчанию работает на том же порту, что и Nginx. Для этого в /etc/httpd/conf/httpd.conf изменим: Остальные  настройки веб-серверов ранее описывались в рамках серии статей по настройке LEMP: Настройка LEMP сервера для простых проектов. Инструкция для самых маленьких. Часть первая Настройка LEMP сервера для простых проектов. Инструкция для самых маленьких. Часть вторая Настройка LEMP сервера для простых проектов. Инструкция для самых маленьких. Часть третья После чего проверим статус работы веб-серверов: По итогу имеем установленные веб-сервера Nginx и Apache2 следующих версий:  Nginx имеет следующие модули в итоговой сборке: Если же SELinux не был отключен, при запуске веб-сервера Apache2 будет получена ошибка.  В логах будет следующая запись ошибки: Для устранения ошибки необходимо выполнить:  semanage — утилита, используемая для настройки политики SELinux, где:   fcontext — флаг, указывающий добавление контекста в правила;   ‑a ‑t — добавить тип объекта в политику SELinux;  httpd_sys_rw_content_t — добавить сервису httpd (Apache2) возможность записи и чтения;   'error.log' — файл, на который распространяются данные правила.  Далее проверим установленные правила: Сохраним установленные правила в системе: После выполненных действий проблем в поднятии веб-серверов не возникнет.  Однако, далее при проверке работы связки данных веб-серверов, если у вас версия с графической оболочкой, система уведомит вас о следующем:  Данное окно уведомляет об обращении Nginx к Apache2.  Для предоставления доступа и решения конфликта необходимо:  Разрешить Apache2 прослушивать порт 81 (или же порт, который вы указывали при конфигурации): Выполнить поиск по журналу аудита SELinux и создать правила политики на доступ к обращению Nginx по 81 порту: Затем применить правила политики: Итак, приступим к установке СУБД для нашего проекта. Из родного репозитория нам доступна MariaDB 10.5: Для установки MySQL 5.7 необходимо добавить репозиторий MySQL 5.7 Community Server, для добавления будет создан файл репозитория /etc/yum.repos.d/mysql-community-5.7.repo и внесено в него: Где:  name — произвольное имя репозитория; baseurl — путь, по которому система может забирать пакеты из репозитория; enabled — опция включает или выключает репозиторий; gpgcheck — нужно ли проверять цифровую подпись пакетов. Опытные пользователи могут заметить, что мы используем репозитории, предназначенные для RHEL 7.  Далее импортируем ключ репозитория командой: Перед установкой можем убедиться в наличии нашего добавленного репозитория: После добавления репозитория выполним установку пакетов на сервере:  По завершении установки необходимых пакетов переходим непосредственно к самой установке MySQL 5.7: В первом пункте необходимо ввести пароль root-пользователя: Данный пароль автоматически генерируется в /var/log/mysqld.log, поэтому чтобы его получить просто выполните: После ввода временного пароля необходимо будет создать новый пароль. В MySQL вшит плагин *validate_password*, вследствие чего пароль должен включать в себя как буквы разного регистра и цифры, так и специальные символы. В качестве генератора сложных паролей можете использовать утилиту pwgen, чтобы не получить следующую ошибку: После установки пароля установщик предложит убрать анонимных пользователей: Для безопасности всегда убирайте анонимных пользователей, поэтому жмем 'y'. Далее будет предложено отключить возможность подключения root пользователя извне: Еще одна очень важная для безопасности настройка, нажимаем 'y'. После установщик оповестит нас, что в MySQL имеется база *test*, доступ к которой открыт всем. Если не планируете ее использовать, то соглашаемся, чтобы установщик удалил ее и все права к ней: Заключительный шаг настройки - перечитывание таблиц привилегий. Если в предыдущем пункте тестовая база была удалена, то также соглашаемся, чтобы не делать это потом вручную.  Вот и все, настройка MySQL завершена.  Проверим статус и убедимся, что наша СУБД  работает корректно: Проверим версию:  На этом установка и настройка MySQL была завершена, переходим к следующему пункту. Для актуального Bitrix окружения на момент написания статьи требовалась версия PHP 7.4 или выше - эта версия как раз является стандартной в РЕД ОС. C 01.02.2023 Битрикс официально перестает поддерживать версии php ниже 8.0.  Необходимо выполнить следующую команду:  Далее выполним проверку установленной версии:   После установки пакетов необходима их настройка для корректной работы.  Для модуля *opcache* необходимо внести следующие поправки в /etc/php.d: А также создать файл bitrexenv.ini и внести в него:   Готово, установка пакетов PHP для работы Bitrix завершена.    Не на всех проектах для работы вашего Bitrix требуется именно 7.4 версия php, в особенности если проектов несколько и требуются разные версии под их работу. Поэтому, чтобы не производить манипуляций с установкой пакетов непосредственно на сам хост, будет произведена установка Docker и сопутствующих пакетов Docker compose.  В официальном репозитории РЕД ОС присутствуют пакеты для установки данных утилит контейнеризации. Итак, выполняем:  После установки выполняем проверку статуса сервиса:   И обязательно включаем сервис в автозагрузку системы: Более подробный процесс создания контейнеров и их конфигурирования описан в серии статей: Настройка LEMP-сервера с помощью docker для простых проектов. Часть первая: База Настройка LEMP-сервера с помощью docker для простых проектов. Часть вторая: docker-compose Настройка LEMP-сервера с помощью docker для простых проектов. Часть третья: docker-compose, Dockerfile Крайне рекомендуем вам ознакомиться с ними.  В качестве тестирования был использован контейнер с Apache2-php7.4 - он также используется инженерами нашей команды.  Билд контейнера прошел без ошибок: Далее контейнер был успешно поднят после его билда:   Для данного пункта был использован официальный установщик битрикс.   Выполнить его загрузку можно следующей командой в директории площадки:  При переходе в браузере к данному файлу получаем окно установки:   По прохождении всех пунктов установщика получаем прохождение всех тестов кроме Серверного окружения:  По завершении установки получаем заветное окошко панели управления.    Битрикс проект готов к работе над ним!   Исходя из опыта нашей команды, наиболее часто встречаемыми ПО в Bitrix проектах являются:  Поисковый движок Sphinx; Сервис кэширования данных Memcached; Нереляционная БД Redis. Все эти сервисы доступны в родном репозитории РЕД ОС и каких-либо проблем с их установкой для вашего использования не возникнет. Вывели для удобства их версии из родного репозитория.  Memcached версии 1.6.6: Sphinx версии 2.2.11:   Redis-server версии 7.0.5:  На данном этапе хотим завершить с установкой и разбором ПО.   Большинство CMS Битрикс24 разворачиваются при помощи BitrixVM с учетом минимального взаимодействия системного администратора. Однако BitrixVM не входит в список единого реестра российских программ в отличие от самого ПО Битрикс. Ознакомиться со списком можно здесь.   Следовательно, компания не выполняет все требования законодательства Российской Федерации. При переходе же на дистрибутив РЕД ОС все требования выполнены.   Как правило, при переходе с популярных дистрибутивов, у которых имеется обширное комьюнити и база знаний, на довольно новые дистрибутивы (по меркам рынка) по типу РЕД ОС, команда может столкнуться с малым опытом в администрировании, что негативно скажется на скорости развития проекта и решения поступающих проблем.   Для ведения и сопровождения проекта на требуемой ОС необходим компетентный инженер. В случае, если такой инженер отсутствует, и работы ведут неподготовленные инженеры, время на решения поступающих задач будет увеличено по сравнению с работой на BitrixVM.   При необходимости выполнить требования по соблюдению использования российского ПО или же требования по минимизации рисков санкций и повышения санкционной устойчивости со стороны IT-отдела коммерческой компании, IT-блок может не иметь нужного специалиста по сопровождению проекта со стороны сервера при работе проекта на BitrixVM. Так как администрирование CMS Битрикс на BitrixVM требует минимальных знаний по администрированию Linux систем, то при переходе на систему без автоматизированной настройки требуются компетенции для развертывания и обслуживания проекта.   У нашей команды имеется большой опыт по ведению проектов различной сложности на различных операционных системах. Благодаря этому мы готовы поддерживать сервер с любой ОС и всячески содействовать улучшению и росту проекта. В рамках работ с клиентами на РЕД ОС мы можем сократить время, необходимое на развертывание инфраструктуры, ускорить процесс тестирования и, как следствие, сократить время выхода нового функционала, а также сделать безопасность на голову выше по сравнению с прежней работой проекта на BitrixVM. В итоге вы получаете увеличение скорости развертывания рабочего окружения, автоматизацию процессов, а также полноценную поддержку работы инфраструктуры проекта и ее мониторинг. Исходя из всего вышенаписанного, давайте пройдемся по плюсам и минусам РЕД ОС.   Плюсы:    Удобная файловая система. Все любители RHEL систем будут чувствовать себя максимально уверенно.   Совместимость с наиболее популярным отечественным ПО. На официальном сайте имеется 17 страниц совместимого ПО, что говорит о том, что работы по выпуску специальных версий под данный дистрибутив реально ведутся.    Минусы:    Не самый богатый выбор программного обеспечения из родного репозитория Для работы Bitrix проекта перечень представленного ПО вполне достаточен, однако если говорить про собственные крупные разработки, то тут уже могут возникнуть проблемы, влекущие за собой дополнительные трудозатраты по установке и развертыванию более специфического ПО.   Малая популярность дистрибутива. Как следствие малый охват по поиску решения как тривиальных, так и специфических проблем и задач.  Неактуальные версии программного обеспечения, доступные в родном репозитории.  Актуальность ПО на последней версии системы оставляет желать лучшего, учитывая, что новое ядро Bitrix требует версию PHP 8.0 и выше. UPD: Комментаторы указали, что PHP 8.X присутствует в данном дистрибутиве, ознакомится с его установкой можно тут. Данный пункт может усложнить жизнь проектов, которые привыкли своевременно выполнять обновления.   Подводя итоги работы с РЕД ОС, хочется отметить как удобный пакетный менеджер RPM, так и вполне обширный пул отечественного ПО для данного дистрибутива. Однако минусы РЕД ОС существенны. В первую очередь, данная ОС подойдет для проектов главным стеком которых являются отечественные разработки. Для развертывания собственных решений все же лучше выбрать более крупных игроков на рынке — это удобнее, а благодаря обширной базе комьюнити, вы точно сможете найти ответы на интересующие вопросы.  Всем большое спасибо, кто дочитал до этого момента:)  Надеемся информация была познавательной, и поможет сделать выбор актуального для вас дистрибутива. Подписывайтесь на наш telegram‑канал DevOps FM — там много полезного для DevOps‑инженеров и системных администраторов. А на нашем YouTube‑канале вас ждут классные видео‑туториалы по разным инструментам DevOps!   DevOps