Особенности национального ПО: обзор РЕД ОС
Вводная часть
Всем привет!
В связи с последними событиями в мире вопрос отечественных разработок в сфере программного обеспечения и дистрибуции становится все более и более актуальным, и нам все чаще поступают запросы по переезду с западных дистрибутивов на отечественные операционные системы. По законодательству государственные учреждения, корпорации с государственным участием, объекты критической инфраструктуры (например, больницы и электростанции) обязаны использовать ПО из единого реестра российских программ. В свою очередь, для коммерческих проектов важна минимизация рисков санкций на ПО, которые могут косвенно или напрямую повлиять на работу.
Именно поэтому было решено посвятить статью одному из таких продуктов. Речь пойдет о российской операционной системе РЕД ОС — дистрибутиве, построенном на базе ядра 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.
Из этого мы видим, что большинство актуальных российских разработок уже поддерживаются под данный дистрибутив и могут быть развернуты.
Описание установки Nginx + Apache2
Перед началом работ необходимо выполнить обновление всех пакетов, отключить SELinux (Security‑Enhanced Linux, системы принудительного контроля доступа) и выполнить перезагрузку системы. Отключение принудительного контроля необходимо для корректной работы сервисов (запись/чтение логов, проксирование и т. п.) без дополнительных вмешательств со стороны администратора.
#dnf update
# echo 'SELINUX=disabled' > /etc/sysconfig/selinux
#reboot
Итак, начнем с WEB-Серверов, а именно Nginx и Apache2. Оба веб-сервера присутствуют в родном репозитории и никаких проблем с установкой не возникнет.
# dnf install nginx
# dnf install httpd
Перед запуском сервисов необходимо внести изменения в конфигурацию Apache2. Дело в том, что веб-сервер по умолчанию работает на том же порту, что и Nginx. Для этого в /etc/httpd/conf/httpd.conf изменим:
-Listen 80
+Listen 127.0.0.1:81
Остальные настройки веб-серверов ранее описывались в рамках серии статей по настройке LEMP:
Настройка LEMP сервера для простых проектов. Инструкция для самых маленьких. Часть первая
Настройка LEMP сервера для простых проектов. Инструкция для самых маленьких. Часть вторая
Настройка LEMP сервера для простых проектов. Инструкция для самых маленьких. Часть третья
После чего проверим статус работы веб-серверов:
# systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2022-12-07 16:35:07 +07; 1s ago
Process: 55490 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Process: 55491 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 55492 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Main PID: 55493 (nginx)
Tasks: 3 (limit: 2323)
Memory: 2.9M
CPU: 58ms
CGroup: /system.slice/nginx.service
├─55493 nginx: master process /usr/sbin/nginx
├─55494 nginx: worker process
└─55495 nginx: worker process
# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/httpd.service.d
└─php-fpm.conf
Active: active (running) since Mon 2023-01-23 18:31:36 +07; 20min ago
Docs: man:httpd.service(8)
Main PID: 879 (httpd)
Status: "Total requests: 0; Idle/Busy workers 100/0;Requests/sec: 0; Bytes served/sec: 0 B/sec"
Tasks: 27 (limit: 2326)
Memory: 89.5M
CPU: 7.717s
CGroup: /system.slice/httpd.service
├─879 /usr/sbin/httpd -DFOREGROUND
├─957 /usr/sbin/httpd -DFOREGROUND
├─975 /usr/sbin/httpd -DFOREGROUND
├─976 /usr/sbin/httpd -DFOREGROUND
├─977 /usr/sbin/httpd -DFOREGROUND
└─981 /usr/sbin/httpd -DFOREGROUND
По итогу имеем установленные веб-сервера Nginx и Apache2 следующих версий:
# nginx -v
nginx version: nginx/1.18.0
# httpd -v
Server version: Apache/2.4.54 (RED OS)
Server built: Jun 27 2022 10:23:14
Nginx имеет следующие модули в итоговой сборке:
# nginx -V
nginx version: nginx/1.22.1
by gcc 8.3.1 20191121 (Red Hat 8.3.1-6) (GCC)
built with OpenSSL 1.1.1q FIPS 5 Jul 2022
TLS SNI support enabled configure arguments: --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-compat --with-debug --with-file-aio --with-google_perftools_module --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_degradation_module --with-http_flv_module --with-http_geoip_module=dynamic --with-stream_geo ip_module=dynamic --add-dynamic-module=modsecurity-nginx-v1.0.3 --add-dynamic-module=nginx-push-stream-module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_mp4_module --with-http_perl_module=dynamic --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-http_xslt_module=dynamic --with-mail=dynamic --with-mail_ssl_module --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-threads --with-cc-opt='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIF Y_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' --with-ld-opt='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,-E
Если же SELinux не был отключен, при запуске веб-сервера Apache2 будет получена ошибка.
В логах будет следующая запись ошибки:
(13)Permission denied: AH00091: httpd: could not open error log file /var/www/redtest.ru/log/apache2/error.log.
AH00015: Unable to open logs
(13)Permission denied: AH00091: httpd: could not open error log file /var/www/redtest.ru/log/apache2/error.log.
AH00015: Unable to open logs
(13)Permission denied: AH00091: httpd: could not open error log file /var/www/redtest.ru/log/apache2/error.log.
AH00015: Unable to open logs
(13)Permission denied: AH00091: httpd: could not open error log file /var/www/redtest.ru/log/apache2/error.log.
AH00015: Unable to open logs
Для устранения ошибки необходимо выполнить:
# cd /var/www/DOMAIN_NAME/log/apache2/
# semanage fcontext -a -t httpd_sys_rw_content_t 'error.log'
semanage — утилита, используемая для настройки политики SELinux, где:
fcontext — флаг, указывающий добавление контекста в правила;
‑a ‑t — добавить тип объекта в политику SELinux;
httpd_sys_rw_content_t — добавить сервису httpd (Apache2) возможность записи и чтения;
'error.log' — файл, на который распространяются данные правила.
Далее проверим установленные правила:
# restorecon -v 'error.log'
Сохраним установленные правила в системе:
# setsebool -P httpd_unified 1
После выполненных действий проблем в поднятии веб-серверов не возникнет.
Однако, далее при проверке работы связки данных веб-серверов, если у вас версия с графической оболочкой, система уведомит вас о следующем:
Данное окно уведомляет об обращении Nginx к Apache2.
Для предоставления доступа и решения конфликта необходимо:
Разрешить Apache2 прослушивать порт 81 (или же порт, который вы указывали при конфигурации):
# semanage port -a -t http_port_t -p tcp 81
Выполнить поиск по журналу аудита SELinux и создать правила политики на доступ к обращению Nginx по 81 порту:
# ausearch -c 'nginx' --raw | audit2allow -M my-nginx
Затем применить правила политики:
# semodule -X 300 -i my-nginx.pp
Описание установки MySQL 5.7
Итак, приступим к установке СУБД для нашего проекта. Из родного репозитория нам доступна MariaDB 10.5:
# dnf install mysql
Last metadata expiration check: 0:06:10 ago on Wed Nov 30 15:44:47 2022.
Dependencies resolved.
=============================================================================================================================
Package Architecture Version Repository Size
=============================================================================================================================
Installing:
mariadb x86_64 3:10.5.17-1.el7 updates 6.0 M
Installing dependencies:
mariadb-common x86_64 3:10.5.17-1.el7 updates 27 k
perl-Sys-Hostname x86_64 1.22-454.el7 base 16 k
Transaction Summary
===============================================================================================================================
Install 3 Packages
Total download size: 6.1 M
Installed size: 38 M
Is this ok [y/N]:
Для установки MySQL 5.7 необходимо добавить репозиторий MySQL 5.7 Community Server, для добавления будет создан файл репозитория /etc/yum.repos.d/mysql-community-5.7.repo и внесено в него:
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/
enabled=1
gpgcheck=0
Где:
name — произвольное имя репозитория;
baseurl — путь, по которому система может забирать пакеты из репозитория;
enabled — опция включает или выключает репозиторий;
gpgcheck — нужно ли проверять цифровую подпись пакетов.
Опытные пользователи могут заметить, что мы используем репозитории, предназначенные для RHEL 7.
Далее импортируем ключ репозитория командой:
# rpm --import http://repo.mysql.com/RPM-GPG-KEY-mysql
Перед установкой можем убедиться в наличии нашего добавленного репозитория:
# dnf repolist all
идентификатор репозитория имя репозитория состояние
base RedOS - Base включено
kernels Kernels updates for RED OS 7.3 включено
mysql57-community MySQL 5.7 Community Server включено
updates RedOS - Updates включено
После добавления репозитория выполним установку пакетов на сервере:
# dnf install mysql-community-server
По завершении установки необходимых пакетов переходим непосредственно к самой установке MySQL 5.7:
# mysql_secure_installation
В первом пункте необходимо ввести пароль root-пользователя:
Enter password for user root:
Данный пароль автоматически генерируется в /var/log/mysqld.log, поэтому чтобы его получить просто выполните:
grep 'A temporary password' /var/log/mysqld.log |tail -1
После ввода временного пароля необходимо будет создать новый пароль. В MySQL вшит плагин *validate_password*, вследствие чего пароль должен включать в себя как буквы разного регистра и цифры, так и специальные символы. В качестве генератора сложных паролей можете использовать утилиту pwgen, чтобы не получить следующую ошибку:
The existing password for the user account root has expired. Please set a new password.
New password:
Re-enter new password:
... Failed! Error: Your password does not satisfy the current policy requirements
После установки пароля установщик предложит убрать анонимных пользователей:
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for testing,
and to make the installation go a bit smoother.
You should remove them before moving into a production environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.
Для безопасности всегда убирайте анонимных пользователей, поэтому жмем 'y'.
Далее будет предложено отключить возможность подключения root пользователя извне:
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.
Еще одна очень важная для безопасности настройка, нажимаем 'y'.
После установщик оповестит нас, что в MySQL имеется база *test*, доступ к которой открыт всем. Если не планируете ее использовать, то соглашаемся, чтобы установщик удалил ее и все права к ней:
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately
Заключительный шаг настройки - перечитывание таблиц привилегий. Если в предыдущем пункте тестовая база была удалена, то также соглашаемся, чтобы не делать это потом вручную.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.All done!
Вот и все, настройка MySQL завершена.
Проверим статус и убедимся, что наша СУБД работает корректно:
# systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2022-12-07 12:51:42 +07; 3min 54s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 52777 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Process: 52829 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Main PID: 52831 (mysqld)
Tasks: 28 (limit: 2323)
Memory: 344.1M
CPU: 4.584s
CGroup: /system.slice/mysqld.service
└─52831 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
Проверим версию:
# mysql -V
mysql Ver 14.14 Distrib 5.7.41, for Linux (x86_64) using EditLine wrapper
На этом установка и настройка MySQL была завершена, переходим к следующему пункту.
Описание установки PHP 7.4
Для актуального Bitrix окружения на момент написания статьи требовалась версия PHP 7.4 или выше - эта версия как раз является стандартной в РЕД ОС. C 01.02.2023 Битрикс официально перестает поддерживать версии php ниже 8.0.
Необходимо выполнить следующую команду:
# dnf install php php-cli php-common \
php-devel php-gd \
php-imap php-json php-ldap php-mbstring \
php-mysqlnd php-opcache php-pdo \
php-pear php-pear-DB php-pecl-apcu \
php-pecl-apcu-bc php-pecl-geoip \
php-pecl-mcrypt php-pecl-memcache \
php-pecl-ssh2 php-process php-pspell php-xml php-zipstream
Далее выполним проверку установленной версии:
# php -v
PHP 7.4.33 (cli) (built: Oct 31 2022 10:36:05) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.33, Copyright (c), by Zend Technologies
После установки пакетов необходима их настройка для корректной работы.
Для модуля *opcache* необходимо внести следующие поправки в /etc/php.d:
opcache.max_accelerated_files = 100000
opcache.revalidate_freq = 0
А также создать файл bitrexenv.ini и внести в него:
display_errors = Off
error_reporting = E_ALL
error_log = '/var/log/php/error.log'
; Set some more PHP parameters
enable_dl = Off
short_open_tag = On
allow_url_fopen = On
# Security headers
mail.add_x_header = Off
expose_php = Off
...
Готово, установка пакетов PHP для работы Bitrix завершена.
Описание установки Docker + Docker Compose
Не на всех проектах для работы вашего Bitrix требуется именно 7.4 версия php, в особенности если проектов несколько и требуются разные версии под их работу. Поэтому, чтобы не производить манипуляций с установкой пакетов непосредственно на сам хост, будет произведена установка Docker и сопутствующих пакетов Docker compose.
В официальном репозитории РЕД ОС присутствуют пакеты для установки данных утилит контейнеризации. Итак, выполняем:
dnf install docker-ce docker-compose
После установки выполняем проверку статуса сервиса:
# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2023-01-23 21:05:45 +07; 9min ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 54641 (dockerd)
Tasks: 9
Memory: 101.3M
CPU: 1.924s
CGroup: /system.slice/docker.service
└─54641 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
И обязательно включаем сервис в автозагрузку системы:
# systemctl enable docker
Более подробный процесс создания контейнеров и их конфигурирования описан в серии статей:
Настройка LEMP-сервера с помощью docker для простых проектов. Часть первая: База
Настройка LEMP-сервера с помощью docker для простых проектов. Часть вторая: docker-compose
Крайне рекомендуем вам ознакомиться с ними.
В качестве тестирования был использован контейнер с Apache2-php7.4 - он также используется инженерами нашей команды.
Билд контейнера прошел без ошибок:
[..]
Step 12/15 : COPY docker-entrypoint.sh /
---> 34852322c5be
Step 13/15 : ENTRYPOINT ["/docker-entrypoint.sh"]
---> Running in 3a20a8f3385b
Removing intermediate container 3a20a8f3385b
---> d2e6c51519ea
Step 14/15 : COPY apache2-foreground.sh /usr/local/bin/
---> d0055e385c47
Step 15/15 : CMD apache2-foreground.sh
---> Running in a8eba95531ab
Removing intermediate container a8eba95531ab
---> 80692a9eb418
Successfully built 80692a9eb418
Successfully tagged test_apache2:latest
Далее контейнер был успешно поднят после его билда:
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7c954678fac8 test_apache2 "/docker-entrypoint.…" 6 seconds ago Up 5 seconds 80/tcp php74-apache2
Описание установки демо-версии Bitrix
Для данного пункта был использован официальный установщик битрикс.
Выполнить его загрузку можно следующей командой в директории площадки:
# wget https://www.1c-bitrix.ru/download/scripts/bitrixsetup.php
При переходе в браузере к данному файлу получаем окно установки:
По прохождении всех пунктов установщика получаем прохождение всех тестов кроме Серверного окружения:
По завершении установки получаем заветное окошко панели управления.
Битрикс проект готов к работе над ним!
Описание установки вспомогательных сервисов
Исходя из опыта нашей команды, наиболее часто встречаемыми ПО в Bitrix проектах являются:
Поисковый движок Sphinx;
Сервис кэширования данных Memcached;
Нереляционная БД Redis.
Все эти сервисы доступны в родном репозитории РЕД ОС и каких-либо проблем с их установкой для вашего использования не возникнет. Вывели для удобства их версии из родного репозитория.
Memcached версии 1.6.6:
# telnet localhost 11211
Trying ::1...
Connected to localhost.
Escape character is '^]'.
version
VERSION 1.6.6
Sphinx версии 2.2.11:
# searchd
Sphinx 2.2.11-id64-release (95ae9a6)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Redis-server версии 7.0.5:
# redis-server --version
Redis server v=7.0.5 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=c4711b3d0a7f3969
На данном этапе хотим завершить с установкой и разбором ПО.
Проблематика перехода на РЕД ОС
Большинство 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!