Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
обновление_сервера_безопасности_убунту2004 [2023/04/11 11:15] evgeniy |
обновление_сервера_безопасности_убунту2004 [2023/06/02 09:08] (текущий) infra |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | |||
+ | <note warning>Перед обновлением Ubuntu18.04 на Ubuntu20.04 настоятельно рекомендуется снять snapshot сервера, и backup версии 6.26.3!</note> | ||
+ | |||
====== Обновление Security Server Ubuntu 18.04 до 20.04 на месте ====== | ====== Обновление Security Server Ubuntu 18.04 до 20.04 на месте ====== | ||
В этом документе описываются шаги, необходимые для обновления автономного хоста Security Server с версии Ubuntu 18.04 LTS до Ubuntu 20.04 LTS. Пожалуйста, внимательно прочитайте весь документ перед началом процесса обновления. Предполагается, что читатель знаком с дистрибутивом Ubuntu Linux и имеет опыт обновления версии Ubuntu. | В этом документе описываются шаги, необходимые для обновления автономного хоста Security Server с версии Ubuntu 18.04 LTS до Ubuntu 20.04 LTS. Пожалуйста, внимательно прочитайте весь документ перед началом процесса обновления. Предполагается, что читатель знаком с дистрибутивом Ubuntu Linux и имеет опыт обновления версии Ubuntu. | ||
Строка 16: | Строка 19: | ||
* Обновите все пакеты до последних версий: | * Обновите все пакеты до последних версий: | ||
<code> | <code> | ||
- | apt update && apt full-upgrade | + | sudo apt update && apt full-upgrade |
</code> | </code> | ||
Строка 29: | Строка 32: | ||
* Остановите сервер безопасности и запретите его автоматический запуск при загрузке: | * Остановите сервер безопасности и запретите его автоматический запуск при загрузке: | ||
<code> | <code> | ||
- | sudo systemctl stop "xroad-*" | + | $ sudo systemctl stop "xroad-*" |
- | sudo systemctl disable xroad-proxy xroad-signer xroad-confclient xroad-jetty xroad-monitor xroad-opmonitor | + | $ sudo systemctl disable xroad-proxy xroad-signer xroad-confclient xroad-monitor xroad-opmonitor xroad-proxy-ui-api xroad-base |
- | sudo systemctl list-units "xroad-*" | + | $ sudo systemctl list-unit-files | grep "xroad" |
</code> | </code> | ||
+ | <note warning>Этот пункт обязателен и не стоит его игнорировать. Перед обновлением ОБЯЗАТЕЛЬНО нужно отключить xroad и убрать их из автозапуска.</note> | ||
+ | |||
* При необходимости сделайте резервную копию базы данных журнала сообщений. Без резервного копирования сбой в процессе обновления может привести к потере данных. | * При необходимости сделайте резервную копию базы данных журнала сообщений. Без резервного копирования сбой в процессе обновления может привести к потере данных. | ||
* См. https://www.postgresql.org/docs/10/backup.html. | * См. https://www.postgresql.org/docs/10/backup.html. | ||
* Использование pg_dump является простым вариантом, но может быть проблематичным, если база данных очень велика: | * Использование pg_dump является простым вариантом, но может быть проблематичным, если база данных очень велика: | ||
<code> | <code> | ||
- | sudo -iu postgres pg_dump -d messagelog -F c -f <dump_file> | + | $ sudo -iu postgres pg_dump -d messagelog -F c -f <dump_file> |
</code> | </code> | ||
Строка 48: | Строка 53: | ||
* См. https://www.postgresql.org/docs/10/backup.html. | * См. https://www.postgresql.org/docs/10/backup.html. | ||
<code> | <code> | ||
- | sudo -iu postgres pg_dump -d "op-monitor" -F c -f <dump_file> | + | $ sudo -iu postgres pg_dump -d "op-monitor" -F c -f <dump_file> |
</code> | </code> | ||
==== Обновление Ubuntu 18.04 до 20.04 ==== | ==== Обновление Ubuntu 18.04 до 20.04 ==== | ||
* Установите update-manager-core, если он еще не установлен. | * Установите update-manager-core, если он еще не установлен. | ||
<code> | <code> | ||
- | dpkg -l | grep "update-manager-core" | + | $ dpkg -l | grep "update-manager-core" |
</code> | </code> | ||
* Убедитесь, что для строки подсказки в файле /etc/update-manager/release-upgrades установлено значение «lts». | * Убедитесь, что для строки подсказки в файле /etc/update-manager/release-upgrades установлено значение «lts». | ||
<code> | <code> | ||
- | grep "Prompt=lts" /etc/update-manager/release-upgrades | + | $ sudo grep "Prompt=lts" /etc/update-manager/release-upgrades |
</code> | </code> | ||
* Запустите средство обновления с помощью команды | * Запустите средство обновления с помощью команды | ||
<code> | <code> | ||
- | sudo do-release-upgrade | + | $ sudo do-release-upgrade |
</code> | </code> | ||
* Следуйте инструкциям на экране. | * Следуйте инструкциям на экране. | ||
Строка 72: | Строка 77: | ||
* //Не удаляйте версию 10 (основную), работающую через порт 5432//. | * //Не удаляйте версию 10 (основную), работающую через порт 5432//. | ||
<code> | <code> | ||
- | sudo pg_dropcluster --stop <version, e.g. 12> main | + | $ sudo pg_dropcluster --stop <version, e.g. 12> main |
</code> | </code> | ||
=== Пример === | === Пример === | ||
Строка 85: | Строка 90: | ||
* Обновите старую базу данных до версии 12. | * Обновите старую базу данных до версии 12. | ||
- | Вспомогательный скрипт Ubuntu pg_upgradecluster по умолчанию создает дамп старой базы данных, что может потребовать много времени и свободного места на диске, если база данных большая. Параметр --method=upgrade вместо этого использует pg_upgrade, а параметр --link позволяет избежать копирования файлов данных. | + | <note important>Вспомогательный скрипт Ubuntu pg_upgradecluster по умолчанию создает дамп старой базы данных, что может потребовать много времени и свободного места на диске, если база данных большая. Параметр --method=upgrade вместо этого использует pg_upgrade, а параметр --link позволяет избежать копирования файлов данных. |
- | (!)Использование --link требует, чтобы новая и старая базы данных находились в одной и той же файловой системе. См. https://www.postgresql.org/docs/12/pgupgrade.html для получения подробной информации и инструкций по восстановлению. | + | (!)Использование --link требует, чтобы новая и старая базы данных находились в одной и той же файловой системе. См. https://www.postgresql.org/docs/12/pgupgrade.html для получения подробной информации и инструкций по восстановлению.</note> |
<code> | <code> | ||
- | sudo pg_upgradecluster --method=upgrade --link 10 main | + | $ sudo pg_upgradecluster --method=upgrade --link 10 main |
</code> | </code> | ||
=== Пример === | === Пример === | ||
Строка 99: | Строка 104: | ||
12 main 5432 online postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log | 12 main 5432 online postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log | ||
</code> | </code> | ||
- | === Обновите репозиторий пакетов X-Road, чтобы он указывал на пакеты Ubuntu 20.04. === | + | === Обновите репозиторий пакетов X-Road, чтобы он указывал на пакеты Ubuntu 20.04, версии 6.26.3 === |
- | * Обновите репозиторий apt: | + | Удалить репозитории https://deb.ordo.gov.kg/ubuntu18.04-6.26.3 |
<code> | <code> | ||
- | sudo apt-add-repository -r "deb https://artifactory.niis.org/xroad-release-deb bionic-current main" | + | $ sudo rm -rf /etc/apt/sources.list.d/* |
- | sudo apt-add-repository "deb https://artifactory.niis.org/xroad-release-deb focus-current main" | + | |
</code> | </code> | ||
- | (или отредактируйте файл /etc/apt/sources.list напрямую) | ||
- | === Обновите пакеты === | + | Добавить репозиторий в список источников пакетов ОС |
<code> | <code> | ||
- | sudo apt update && sudo apt full-upgrade | + | $ echo "deb https://deb.ordo.gov.kg/ubuntu20.04-6.26.3 /" | sudo tee -a /etc/apt/sources.list.d/xroad.list |
</code> | </code> | ||
+ | |||
+ | Произвести обновление обновление системы | ||
<code> | <code> | ||
- | sudo systemctl enable "xroad-*" | + | $ sudo apt-get update && apt full-upgrade |
- | sudo systemctl start "xroad-*" | + | |
</code> | </code> | ||
- | === Убедитесь, что службы сервера безопасности работают и система отвечает === | + | |
+ | Включить все службы X-Road в автозагрузку | ||
<code> | <code> | ||
- | systemctl list-units "xroad-*" "postgresql@*" | + | $ sudo systemctl enable xroad-proxy xroad-signer xroad-confclient xroad-monitor xroad-opmonitor xroad-proxy-ui-api |
- | + | </code> | |
- | UNIT LOAD ACTIVE SUB DESCRIPTION | + | |
- | postgresql@12-main.service loaded active running PostgreSQL Cluster 12-main | + | Проверить все ли службы включены |
- | xroad-base.service loaded active exited X-Road initialization | + | <code> |
- | xroad-confclient.service loaded active running X-Road confclient | + | $ sudo systemctl list-units "xroad-*" |
- | xroad-monitor.service loaded active running X-Road Monitor* | + | </code> |
- | xroad-opmonitor.service loaded active running X-Road opmonitor daemon* | + | Стартовать службы X-Road: |
- | xroad-proxy.service loaded active running X-Road Proxy | + | <code> |
- | xroad-proxy-ui-api.service loaded active running X-Road Proxy UI REST API | + | $ sudo systemctl start "xroad-*" |
- | xroad-signer.service loaded active running X-Road signer | + | </code> |
+ | или | ||
+ | <code> | ||
+ | $ sudo systemctl start xroad-proxy | ||
+ | </code> | ||
+ | Установка выполнена успешно, если запущены системные службы и пользовательский интерфейс отвечает. Чтобы убедиться, что сервисы X-Road находятся в запущенном состоянии, задайте команду: | ||
+ | <code> | ||
+ | $ sudo systemctl list-units "xroad*" | ||
</code> | </code> | ||
- | * если установлены надстройки для мониторинга | ||
=== Удаление старой базы данных и устаревших пакетов === | === Удаление старой базы данных и устаревших пакетов === | ||
Строка 136: | Строка 147: | ||
Убедившись, что обновление базы данных прошло успешно, удалите старую базу данных и удалите устаревшие пакеты PostgreSQL. | Убедившись, что обновление базы данных прошло успешно, удалите старую базу данных и удалите устаревшие пакеты PostgreSQL. | ||
<code> | <code> | ||
- | sudo pg_dropcluster 10 main | + | $ sudo pg_dropcluster 10 main |
- | sudo apt purge postgresql-10 | + | $ sudo apt purge postgresql-10 |
- | sudo apt autoremove | + | $ sudo apt autoremove |
</code> | </code> | ||
Строка 144: | Строка 155: | ||
* Если восстановление после сбоя обновления невозможно и имеется резервная копия/моментальный снимок, можно восстановить его и начать заново. | * Если восстановление после сбоя обновления невозможно и имеется резервная копия/моментальный снимок, можно восстановить его и начать заново. | ||
* Если ничего не помогло, выполните чистую установку Ubuntu 20.04 и восстановите конфигурацию сервера безопасности из резервной копии. | * Если ничего не помогло, выполните чистую установку Ubuntu 20.04 и восстановите конфигурацию сервера безопасности из резервной копии. | ||
+ | * Если возникает проблема с locale, в данном случае нужно сделать export всех необходимых локалей. Пример проблемы: | ||
+ | |||
+ | <code> | ||
+ | pg_upgradecluster --method=upgrade --link 10 main | ||
+ | Stopping old cluster... | ||
+ | perl: warning: Setting locale failed. | ||
+ | perl: warning: Please check that your locale settings: | ||
+ | LANGUAGE = (unset), | ||
+ | LC_ALL = (unset), | ||
+ | LC_ADDRESS = "ru_RU.UTF-8", | ||
+ | LC_NAME = "ru_RU.UTF-8", | ||
+ | LC_MONETARY = "ru_RU.UTF-8", | ||
+ | LC_PAPER = "ru_RU.UTF-8", | ||
+ | LC_IDENTIFICATION = "ru_RU.UTF-8", | ||
+ | LC_TELEPHONE = "ru_RU.UTF-8", | ||
+ | LC_MEASUREMENT = "ru_RU.UTF-8", | ||
+ | LC_TIME = "ru_RU.UTF-8", | ||
+ | LC_NUMERIC = "ru_RU.UTF-8", | ||
+ | LANG = "en_US.UTF-8" | ||
+ | are supported and installed on your system. | ||
+ | perl: warning: Falling back to a fallback locale ("en_US.UTF-8"). | ||
+ | Error: The locale requested by the environment is invalid: | ||
+ | LANG: en_US.UTF-8 | ||
+ | LC_ADDRESS: ru_RU.UTF-8 | ||
+ | LC_IDENTIFICATION: ru_RU.UTF-8 | ||
+ | LC_MEASUREMENT: ru_RU.UTF-8 | ||
+ | LC_MONETARY: ru_RU.UTF-8 | ||
+ | LC_NAME: ru_RU.UTF-8 | ||
+ | LC_NUMERIC: ru_RU.UTF-8 | ||
+ | LC_PAPER: ru_RU.UTF-8 | ||
+ | LC_TELEPHONE: ru_RU.UTF-8 | ||
+ | LC_TIME: ru_RU.UTF-8 | ||
+ | Error: Could not create target cluster | ||
+ | </code> | ||
+ | |||
+ | Решение: | ||
+ | |||
+ | <code> | ||
+ | export LANG=en_US.UTF-8 | ||
+ | export LC_ALL=en_US.UTF-8 | ||
+ | export LC_ADDRESS=en_US.UTF-8 | ||
+ | export LC_IDENTIFICATION=en_US.UTF-8 | ||
+ | export LC_MEASUREMENT=en_US.UTF-8 | ||
+ | export LC_MONETARY=en_US.UTF-8 | ||
+ | export LC_NAME=en_US.UTF-8 | ||
+ | export LC_NUMERIC=en_US.UTF-8 | ||
+ | export LC_PAPER=en_US.UTF-8 | ||
+ | export LC_TELEPHONE=en_US.UTF-8 | ||
+ | export LC_TIME=en_US.UTF-8 | ||
+ | update-locale | ||
+ | </code> | ||
+ | <note warning>Следующий шаг - Пошаговая инструкция по обновлению сервера безопасности Тундук с версии 6.26.3 до версии 7.2.1 на Ubuntu20.04</note> | ||
+ | ---- | ||
+ | Автор Евгений Порядин, Тоомас Мёльдер, Ян Райк, Даниил Горбенко |