Инструменты пользователя

Инструменты сайта


сервер:обновление

Обновление сервера

Сервер как и операционная система Gentoo Linux на которой он базируется постоянно совершенствуется, добавляются новые функции, исправляются ошибки.

Для удобства пользователей сервер не имеет фиксированных версий и поддерживает принцип скользящего обновления Rolling Release

Обновление сервера ПАК Астра состоит из двух независимых частей:

  • обновление операционной системы и системных сервисов
  • обновление сервисов ПАК Астра

Обновление операционной системы

Полное обновление операционной системы - сложный процесс, требующий базовых навыков администрирования Unix-систем.

При использовании в качестве платформы рекомендованного дистрибутива Gentoo Linux полная документация по обновлению находится в соответствующем разделе описания операционной системы Обновление Gentoo.

Для быстрого обновления в большинстве случаев достаточно провести типовое обновление командами:

emerge --sync
emerge -1 portage
emerge --update --deep --newuse world
perl-cleaner --all 
emerge @preserved-rebuild
emerge --depclean
revdep-rebuild -v -- --ask
eclean-dist -d

С версией базы данных старше 97 (27.09.18) необходимо обновить коннектор СУБД на MariaDB.

emerge --sync
echo "=dev-db/mariadb-connector-c-3.0.6 ~x86" >>/etc/portage/package.accept_keywords
emerge --sync
emerge dev-db/mariadb-connector-c

Перезапустить сервисы d3srv, e3srv и выполнить удаление старого коннектора.

emerge --unmerge mysql-connector-c

Помимо обновления сервисов рекомендуется следить за обновлениями ядра операционной системы и также периодически обновлять его.

Обновление ядра (kernel) операционной системы

Общая информация по обновлению рекомендованной операционной системы Gentoo Linux содержится на соответствующей странице документации операционной системы Обновление ядра

Типовое обновление ядра образов сервера ПАК Астра обычно может быть проведено следующими командами:

emerge gentoo-sources
cd /usr/src/linux
make oldconfig
make
make modules
make install
make modules_install
lilo

Обновление сервисов ПАК Астра

Перед обновлением сервисов ПАК Астра необходимо исключить их автоматический перезапуск и вручную остановить работающие сервисы.

Остановка сервисов

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

rc-update delete d3srv default
rc-update delete e3srv default
rc-update delete d-sh default
rc-update delete d-dozor default
rc-update delete d-sia default

После этого можно остановить запущенные ранее сервисы, выполнив команды:

/etc/init.d/d3srv stop
/etc/init.d/e3srv stop
/etc/init.d/d-sh stop
/etc/init.d/d-dozor stop
/etc/init.d/d-sia stop

Следующим обязательным шагом необходимо обновить схему базы данных. Схема базы данных должна соответствовать установленной версии сервисов. В противном случае могут возникнуть ошибки доступа к базе данных.

Обновление структуры базы данных

Обновление структуры базы данных до текущей версии (в том числе если она не существует) производится из консоли администратора сервера.
Перед установкой (обновлением) БД в любом месте файловой системы, например в домашнем каталоге текущего пользователя:

cd ~

необходимо создать рабочую папку:

mkdir db_update

и перейти в нее:

cd db_update

Далее следует убедиться что она пуста (например от предыдущих обновлений) или просто очистить ее:

rm *

игнорируя предупреждения об отсутствующих файлах, если они вдруг возникнут:

rm: cannot remove '*': No such file or directory

Следующим шагом необходимо загрузить одним архивом все файлы обновлений БД с сервера разработчика:

wget http://dev.opasnost.net/update/server/db/current.tar

и распаковать их:

tar -xf current.tar

далее следует запустить скрипт обновления, указав в качестве параметра имя пользователя администратора БД, например:

./db_update.sh root

на запрос пароля, ввести пароль администратора БД:

Dozor DB update script
MYSQL User Password:

В случае если БД не существует, то будет выдан запрос пароля пользователя, для входа в «АРМ Администратор Сервера» для создания всех остальных организаций и их администраторов, пароль необходимо ввести дважды (при вводе вводимые символы не отображаются):

Current DB version is 0
Enter new Server Administrator Password:
Repeat new Server Administrator Password:

По завершении процесса создания (обновления) БД убедиться в отсутствии ошибок выполнения запросов, например:

Applying update for version 1
Applying update for version 2
Applying update for version 3
…
Applying update for version N
Database updated for version N

После обновления базы данных, в случае отсутствия ошибок, необходимо произвести обновление исполняемых файлов сервисов ПАК Астра.

Обновление сервисов ПАК Астра

Перед обновлением сервисов необходимо убедиться что сервисы остановлены.
Для установки сервисов ПАК Астра необходимо перейти в папку исполняемых файлов сервисов ПАК Астра:

cd /var/lib/dozor

Затем загрузить архив, содержащий прекомпилированные исполняемые образы сервисов с сервера обновлений, предварительно удалив предыдущую версию (если существует):

rm current.tar.gz
wget http://dev.opasnost.net/update/server/bin/current.tar.gz

и распаковать их из архива в текущую директорию:

tar -xzpf current.tar.gz --xattrs

установить принадлежность пользователю, от имени которого запускаются данные сервисы:

chown dozor:dozor *

В некоторых случаях обновленные сервисы необходимо дополнительно сконфигурировать путем редактирования соответствующих файлов конфигурации.

После успешного обновления сервисов ПАК Астра необходимо их вновь запустить.

Запуск сервисов

После успешной установки (обновления) требуется запустить сервисы, выполнив команды:

/etc/init.d/d3srv start
/etc/init.d/e3srv start
/etc/init.d/d-sh start
/etc/init.d/d-dozor start # по необходимости
/etc/init.d/d-sia start # по необходимости

После запуска необходимо убедиться, что все сервисы функционируют нормально, не произошло сбоев из-за несовместимости версий БД и т.п. Для этого необходимо ввести команду:

rc-status

и проанализировать ее результат, все интересующие нас сервисы должны быть в состоянии «started»:

d3srv                                     [  started  ]
e3srv                                     [  started  ]
d-sh                                      [  started  ]

После того как все сервисы функционируют необходимо добавить их в список автоматического запуска (перезапуска), выполнив следующие команды:

rc-update add d3srv default
rc-update add e3srv default
rc-update add d-sh default
rc-update add d-dozor default # по необходимости
rc-update add d-sia default # по необходимости

Ошибки запуска сервисов

В случае когда после обновления некоторые сервисы не запускаются, а ответ на rc-status выдается сообщение о падении сервиса, например:

d3srv                                     [  crashed  ]
d-sh                                      [  crashed  ]

необходимо провести диагностику ошибок запуска путем вывода журнала соответствующего сервиса.

Для приведенного выше примера необходимо вывести последние строки журнала, содержащие информацию об ошибке:

tail /var/lib/dozor/log/d3srv.log

и проанализировать вывод, например:

12:12:31 23.11.2017 [7408] Starting build 2569...
Configuration error:
        Invalid value for server.port

А также:

tail /var/lib/dozor/log/d-sh.log
12:12:33 23.11.2017 [7497] Starting build 508...
Configuration error:
        Can't parse line 10 of config file

Обычно все ошибки имеют подробное описание и сами себя объясняют.

сервер/обновление.txt · Последние изменения: 2019/01/09 08:06 — irina