Обновление с использованием ANSIBLE-сценариев
В этой инструкции описан процесс обновления с использованием ANSIBLE-сценариев для Single CTS, Back CTS и Front CTS.
Обновление сервера
-
Запустите ansible playbook для обновления всех контейнеров:
ansible-playbook --ask-pass -v 05-update_cts.yaml
-
Введите пароль учетной записи root после ввода команды.
Обновление ПО
Внимание!
При выполнении скриптов обновления нельзя пропускать паузы, заложенные в него, т.к. их пропуск может привести к ошибкам обновления.
Для обновления ПО, установленного в контейнерах docker, на сервере Registry выполните:
-
Скопируйте новые версии образов docker и скрипт загрузки образов в каталог /tmp/images и загрузите образы с помощью скрипта download.sh (скрипт доступен по ссылке:
cp *.tar /tmp/images/ cp /opt/deploy/script/load.sh /tmp/images/ cd /tmp/images/ ./download.sh
-
Подключитесь к консоли сервера Back и Front кластера с индексом 01 и 02, выполните команду для остановки антивируса:
systemctl stop kesl klnagent64
Зависание сервера
В случае зависания сервера при остановке антивируса перезагрузите оба узла кластера через систему виртуализации.
-
Выполните команду:
pcs status
-
Убедитесь, что ресурсы кластера запущены согласно списку ниже:
- dlm-clone [dlm] (back кластер) – запущен на обоих узлах кластера;
- clvmd-clone [clvmd] (back кластер) – запущен на обоих узлах кластера;
- clusterfs-clone [clusterfs] (back кластер) – запущен на обоих узлах кластера;
- cluster_ip – запущен на одном узле кластера;
- dockerd – запущен на одном узле кластера;
- node_exporter (back кластер) – запущен на одном узле кластера;
- cadvisor (back кластер) – запущен на одном узле кластера;
- vmfence (back кластер) – запущен на одном узле кластера.
-
В случае если статус ресурсов кластера не соответствует перечисленным выше, выполните следующую команду, заменив resource_name на имя проблемного ресурса:
pcs resource cleanup resource_name
-
На узлах кластера Back c индексом 01 и 02 выполните команду ниже:
ls -la /opt/ex_data/files
Примечание
В случае зависания вывода списка директорий перезагрузите оба узла кластера через систему виртуализации.
-
Подключитесь к консоли сервера Back и Front кластера с индексом 01 либо 02 и выполните команду для определения текущего первичного узла, на котором запущены ресурсы кластера:
pcs status | grep dockerd
-
Подключитесь к консоли текущего первичного узла кластера Back и Front и последовательно выполните команду:
docker ps -a > current_version.txt
-
Сохраните полученный файл. Он потребуется для процедуры отката на предыдущую версию.
-
Запустите скрипт автоматического обновления всех контейнеров первичных серверов и введите пароль учетной записи root после ввода команды:
ansible-playbook --ask-pass -v 05-master_update_cts.yaml
-
После обновления первичных серверов проверьте функционирование системы, выполнив проверку логов на наличие ошибок и функции отправки сообщений.
-
Запустите скрипт автоматического обновления всех контейнеров вторичных серверов:
ansible-playbook --ask-pass -v 06-slave_update_cts.yaml
-
Введите пароль учетной записи root.
-
Подключитесь к консоли сервера Back и Front кластера с индексом 01 и 02, выполните команду для запуска антивируса:
systemctl start kesl klnagent64
Откат ПО
Для отката на предыдущую версию ПО, установленного в контейнерах docker:
- Подключитесь к консоли узлов кластера Back с индексами 01 и 02.
-
Добавьте в файл /opt/express/settings следующие строки, заменив в них версию ПО на значения из файла current_version.txt (файл получен на шаге 3 описания автоматического обновления с помощью скриптов ansible):
images: messaging: messaging:1.39.6 settings: settings:1.39.0 audit: audit:1.39.0 admin: admin:1.39.1 file_service: file_service:1.39.0 voex: voex:1.39.0 ad_phonebook: ad_phonebook:1.39.1 email_notifications: email_notifications:1.39.0 botx: botx:1.39.1 ad_integration: ad_integration:1.39.0 kdc: kdc:1.39.0 routing_schema_service: routing_schema_service:1.39.0
-
Подключитесь к консоли узлов кластера Front с индексами 01 и 02.
-
Добавьте в файл /opt/express/settings следующие строки, заменив в них версию ПО на значения из файла current_version.txt (получен на шаге 3 описания автоматического обновления с помощью скриптов ansible):
images: trusts: trusts:1.39.0
-
Запустите скрипт автоматического обновления всех контейнеров первичных серверов и введите пароль учетной записи root после ввода команды:
ansible-playbook --ask-pass -v 05-master_update_cts.yaml
-
После обновления первичных серверов проверьте нормальное функционирование системы, выполнив проверку логов и функцию отправки сообщений.
-
Запустите скрипт автоматического обновления всех контейнеров вторичных серверов:
ansible-playbook --ask-pass -v 06-slave_update_cts.yaml
-
Введите пароль учетной записи root после ввода команды.
Обновление ПО
Внимание!
При выполнении скриптов обновления нельзя пропускать паузы, заложенные в него, т.к. их пропуск может привести к ошибкам обновления.
Для обновления ПО, установленного в контейнерах docker Web client кластера, на сервере Registry выполните:
- Скопируйте новые версии образов docker и скрипт загрузки образов в каталог /tmp/images сервера Registry.
-
Загрузите образы с помощью скрипта load.sh:
cp *.tar /tmp/images/ cp /opt/deploy/script/load.sh /tmp/images/ cd /tmp/images/ ./load.sh
-
С помощью команды ниже уточните новую версию образа контейнера web client:
docker images | grep web_client
-
Измените параметр web_client_image на актуальную версию, полученную на предыдущем шаге (параметр локализован в файле настроек group_vars/all.yaml в каталоге сценариев ANSIBLE web client (/opt/deploy/playbook-webclient)).
-
Запустите скрипт автоматического обновления всех контейнеров первичного узла кластера Web Client:
ansible-playbook --ask-pass -v 05-master_update_web.yaml
-
Введите пароль учетной записи root.
- После обновления первичного узла кластера Web Client проверьте нормальное функционирование системы, выполнив проверку логов и функции отправки сообщений.
- Запустите скрипт автоматического обновления всех контейнеров вторичного узла кластера Web Client аналогично пп. 5-6.