Руководство системного администратора
ВведениеДанное руководство затрагивает вопросы установки и настройки серверной части системы Платформа Управление Эффективностью (ПУЭ). В руководстве описывается установка комплекса на операционную систему семейства Linux – Astra Linux (“Смоленск” 1.6), а таrже установки окружения и среды выполнения .NET версии 6.0 и более поздних версий. Для проверки совместимости новых версий операционной системы и новых версий сред окружения .NET необходимо обратится за советующей документацией на сайте разработчика. Также в руководстве приведён алгоритм установки и настройки СУБД PostgreSQL Pro версии 14. Отметим, что настройка СУБД, прав пользователей к базам данных ПУЭ, а также доступ к службам ПУЭ должен осуществляться в соответствии с принятой моделью безопасности на предприятии. По всем возникающим вопросам, связанным с установкой комплекса и не описанным в данном руководстве, необходимо обратится к разработчикам (пункт 6 «Контакты и поддержка»).
Чтобы установить пакет СУБД PostgreSQL 14, выполните приведенные ниже команды в терминале операционной системы Астра-Линукс: - создадим локальную папку для репозитория и скачаем в неё все необходимые пакеты: smkdir -p /opt/distr/postgres cd /opt/distr/postgres wget -r --no-parent --no-check-certificate https://repo.postgrespro.ru/pgpro14/astra-smolensk/1.6/ wget --no-check-certificate https://repo.postgrespro.ru/ pgpro-14/keys/GPGKEY-POSTGRESPRO echo 'deb file:///opt/distr/postgres/repo.postgrespro.ru/pgpro-14/astrasmolensk/1.6 smolensk contrib main non-free' >> /etc/apt/sources.list apt-key add GPG-KEY-POSTGRESPRO apt update Далее выполним инициализацию экземпляра сервера СУБД: apt install postgrespro Отредактируем конфигурационный файл \var\lib\pgsql\14\data\postgresql.conf: listen addresses = ‘*’ port = 5432 Отредактируем конфигурационный файл\var\lib\pgsql\14\data\pg_hba.conf: host all all 0.0.0.0/0 md5 Далее настроим автозапуск службы при старте системы и запустим службу PostgreSQL: systemctl enable postgrespro systemctl start postgrespro Зададим пароль для суперпользователя и создадим нового пользователя aisuser, который будет иметь доступ к базам данных ПУЭ: passwd postgres su – postgres createuser aisuser Создадим требуемые базы данных ПУЭ и восстановим из бэкапов, предоставленных разработчиком, образы баз данных: createdb AyaPpm createdb AyaPpmIdn pg_restore -d StatusVoCore /mnt/backups/AyaPpm pg_restore -d StatusVoCoreIdnt /mnt/backups/AyaPpmIdnt Далее под пользователем postgres дадим необходимые права пользователю aisuser: psql alter user aisuser with encrypted password ‘qwerty’; grant all privileges on database AyaPpm to aisuserpsql; grant all privileges on database AyaPpmIdnt to “aisuser”; \c AyaPpmIdnt GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO “aisuser”; \c AyaPpm GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO “aisuser”; \q exit
Для разработки или отладки приложений в операционной системе Linux необходимо установить пакет SDK. Для того чтобы запустить комплекс ПУЭ, достаточно только установить среду выполнения .NET. Описание установки среды выполнения приведено на сайте разработчика система Астра Линукс. Как правило ПУЭ поставляется в виде контейнеров docker, в данном случае отельная установка окружения .NET не требуется.
3.1. Установка ядра в ручном режиме, без docker контейнера Разместите все файлы комплекса ПУЭ в папку на сервер. Создайте папку (пример /var/www/ais): sudo mkdir -p /var/www/ais Предоставьте владельцу папки возможность читать, писать и запускать файлы, а группам и другим пользователям разрешить только читать и запускать файлы: sudo chmod -R 755 /var/www/ais Скопируйте файлы проекта в папку /var/www/ais. Ядро ПУЭ работает по технологии ASP.NET Core на базе веб-сервера Kestrel. Для запуска и мониторинга ядра проекта необходимо использовать systemd — это система инициализации, предоставляющая различные функции для запуска и остановки процессов, а также управления ими. Для работы комплекса необходимо создать конфигурационный файл службы system: sudo nano /etc/systemd/system/kestrel-ais.service Со следующим содержанием: [Unit] Description=CoreAIS [Service] WorkingDirectory=/var/www/CoreHt ExecStart=/usr/bin/dotnet /var/www/ais/AyaPpm.dll Restart=always # Restart service after 30 seconds if the dotnet service crashes: RestartSec=30 KillSignal=SIGINT SyslogIdentifier=dotnet-ais User=nginx Environment=ASPNETCORE_ENVIRONMENT=Production Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false [Install] WantedBy=multi-user.target Основной «запускаемый» файл ядра ПУЭ AyaPpm.dll находится в корне папки /var/www/ais. В том случае если имя запускаемого файла изменено, то необходимо изменить и конфигурационный файл службы. Далее проверьте работоспособность службы, запустив и проверив её статус: sudo systemctl start kestrel-ais.service sudo systemctl status kestrel-ais.service В случае, если запуск службы завершается ошибками, устраните ошибки, воспользовавшись командой просмотра логов: journalctl -xeu kestrel-ais.service Далее выполните настройку автозапуска службы ядра АИС: sudo systemctl enable kestrel-ais.service Для остановки, проверки статуса службы и выполнения других команд смотрите документацию по работе с systemd. Проверьте функционирование службы выполнением команды: curl -Is http://localhost:5000/Identity/Account/Login?ReturnUrl Также функционирование службы можно проверить с помощью любого установленного в графической оболочке браузера. После ввода логина и пароля вы увидите следующее приглашение в программу. 3.2. Установка системы из docker контейнера Для установки системы из контейнера docker, на сервер Астра Линукс необходимо установить систему для управления контейнерами docker. Далее установить контейнер с официального репозитория ПУЭ. Для получения ссылки на контейнер обратитесь в службу поддержки (support@gce.ru)
ПУЭ представляет собой web-проект, доступ к которой осуществляется по протоколу http/https с клиентских компьютеров. Для развертывания системы необходимо предварительно установить веб сервер Nginx. Для этого необходимо в терминале выполнить команды, приведенные ниже: sudo apt install epel-release sudo apt install nginx После принятия процедуры, запускается установка Nginx и других требуемых зависимостей на сервер. Далее необходимо выполнить настройку программного обеспечения брандмауэра, чтобы разрешить доступ к службе. Для работы комплекса ПУЭ необходимы «приложения» Nginx HTTP (стандартные порт 80) и Nginx HTTPS (стандартный порт 443), при необходимости работы системы на других портах необходимо открыть данные порты, согласно инструкции по настройке, приведенной ниже. Выполните следующие команды firewall-cmd, чтобы открыть порты 80, 443, через который клиенты смогли обращаться к ПУЭ по определённому порту: sudo firewall-cmd --get-active-zones sudo firewall-cmd --add-service=http sudo firewall-cmd --add-service=https sudo firewall-cmd --runtime-to-permanent sudo iptables -I INPUT -p tcp -m tcp --dport=80 -j ACCEPT sudo iptables -I INPUT -p tcp -m tcp --dport=443 -j ACCEPT Чтоб запустить веб-сервер nginx, в терминале введите команду: sudo systemctl start nginx.service Чтоб проверить работу веб-сервера в терминале введите команду: sudo systemctl status nginx.service Для остановки, запуска веб-сервера и выполнения других команд смотрите документацию по работе с сервером nginx. Создайте в папке /etc/nginx/ папки sites-available и sites-enable если они не были созданы системой автоматически при установке пакета nginx: sudo mkdir /etc/nginx/sites-available sudo mkdir /etc/nginx/sites-enabled Создайте в папке /etc/nginx/sites-available конфигурационный файл (с именем ais) nginx: server { listen 80; server_name _; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name _; ssl_certificate /etc/ssl/certs/ais.crt; ssl_certificate_key /etc/ssl/private/ais.key; ssl on; ssl_session_cache shared:SSL:30m; ssl_session_timeout 120m; keepalive_timeout 70; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_stapling on; location / { proxy_pass http://localhost:5000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $http_host; proxy_cache_bypass $http_upgrade; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_redirect off; } } Предполагается, что комплекс ПУЭ будет находится на текущем сервере на порту 5000 (см. предыдущий раздел или на произвольном порту, который был указан при установки контейнера docker). Для работы комплекса также необходимо разместить ssl-сертификаты и ключи шифрования для протокола https в соответствующих папках (/etc/ssl/certs/ais.crt и /etc/ssl/private/ais.key). Для создания сертификата воспользуйтесь следующей командой: sudo mkdir /etc/ssl/private sudo chmod 700 /etc/ssl/private sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/ais.key -out /etc/ssl/certs/ais.crt Создайте символическую ссылку на созданный конфигурационный файл: sudo ln -s /etc/nginx/sites-available/ais /etc/nginx/sites-enabled/ais В файле /etc/nginx/nginx.conf укажите следующие настройки: user nginx; worker_processes auto; events { worker_connections 1024; } http{ include mime.types; include /etc/nginx/sites-enabled/*; default_type application/octet-stream; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; gzip on; client_max_body_size 100M; } Чтоб запуск веб-сервера nginx производился автоматически, в терминале введите команду: sudo systemctl enable nginx.service
После успешной установки всех компонентов системы и восстановления баз данных откройте на компьютере (имеющем доступ к серверу) браузер. В браузере введите адрес сервера. После этого в браузере загрузится проект и откроется окно запроса имени и пароля для входа в систему.
В случае возникновения проблем или вопросов при установке системы и ее компонентов следует направить обращение на электронную почту службы поддержки. Для составления обращения необходимо: 1. Сделать скриншот экрана с изображением неясной ситуации, 2. Описать ситуацию и подробные шаги ее воспроизведения, 3. Переслать файл по адресу: info@a-ya.pro. 4. В теме письма указать наименование проекта.
.png)