Обновление AIC с версии 1.2 до версии 1.3#
Введение#
В данном разделе приведена информация об особенностях и последовательности обновления всех компонентов AIC с версии 1.2 до версии 1.3.
Для осуществления обновления по нижеприведенному сценарию необходимо наличие платформы на базе ОС Astra Linux, на которую можно загрузить проект для обновления. Далее по тексту платформа Bootstrap server (БС). Местоположение папки для загрузки проекта может быть выбрано произвольно.
Предварительные требования к платформе БС с которой будет осуществляться обновление компонентов AIC:#
Данная платформа не должна быть развернута в окружении AIC.
Примечание
Процесс установки обновления подразумевает выполнение перезагрузки серверного оборудования, что, в случае расположения платформы в окружении AIC, может негативно сказаться на процессе обновления. Потому БС для обновления следует размещать строго вне окружения AIC.
С БС должен осуществляться доступ по сети ко всем компонентам AIC (для этого достаточно предоставить БС доступ к
Management
сети кластера AIC).Пользователь, с которого запускается скрипт обновления, должен:
Состоять в группе
astra-admins
, что удовлетворяет требованию беспарольного повышения привилегий через утилитуsudo
;Иметь доступ к репозиториям для загрузки следующих приложений, если они еще не установлены:
sshpass
— не интерактивный доступ по сети на основе открытого пароля;jq
— анализатор json;dnsutils
— утилиты для осуществления запросов к DNS-серверам.
Примечание
Данные приложения могут быть установлены пользователем вручную. В этом случае наличие доступа к репозиториям не обязательно.
Повышение привилегий необходимо для добавления динамических записей в
/etc/hosts
файл БС.
Последовательность действий при обновлении компонентов:#
Для обновления компонентов необходимо выполнить следующие действия:
Убедиться, что выбранная платформа соответствует вышеописанным требованиям. Загрузить архив обновления в любую папку платформы и распаковать его.
Примечание
Далее все действия по запуску скрипта должны осуществляться строго из данной директории.
Войти в интерфейс управления контроллера домена AIC и обновить пароли учетной записи, обладающей ролью
ALDPRO - Main Administrator
(обычно это учетная записьadmin
, но можно создать свою учетную запись).Примечание
Это временное действие, пароль нужно выбрать несложный и не содержащий спецсимволы: восклицательный знак, доллар и/или иные знаки, которые могут трактоваться в командной строке как подстановочные переменные или специальные действия. Невыполнение данного условия может оказать негативное влияние на процесс обновления продукта ALD Pro.
В качестве примера можно использовать пароль Aa1234567. По завершении обновления, в целях безопасности, пароль должен быть изменен на более сложный.
Добавить выбранную учетную запись в группу
ald trust admin
, если она еще не состоит в этой группе.Унифицировать учетные записи локального администратора OC, то есть привести к единому логину и паролю:
контроллеры домена ALD Pro (2шт). Обязательно должен быть мандатный уровень целостности = 63;
узлы виртуализации (2n+1). Обязательно должен быть мандатный уровень целостности = 127;
узлы управления (3шт). Обязательно должен быть мандатный уровень целостности = 127.
Для этого можно воспользоваться командами:
sudo useradd -m -s /bin/bash -c "Special user with admin rights" -G astra-admin ladm sudo pdpl-user -i 63/127 ladm password='SomeSecretPassw0rd' echo -e "$password\n$password" | sudo passwd ladm
Открыть файл
inputs.json
командой:nano inputs.json
и дополнить его следующим содержимым:
{ "aldpro": { "aldip": "10.10.10.3", "alduser": "admin", "aldpass": "Aa12345678", "DMpassword": "", }, "localadmin": { "user": "ladm", "pass": "XXXXXXXX", }, "postgre_rb": { "user": "rubackup", "pass": "XXXXXXXXXX", "dbname": "rubackup", "superpass": "XXXXXXXXXX", "port": "", }, "marketplace": { "mpip": "10.100.10.26", "mpname": "", }, "helpcenter": { "hcip": "10.10.10.27", "hcname": "", }, "brestmgmt": "10.10.10.20", "ds": "", "monitoring": "10.10.10.23", "oneexporterpwd": "Aa12345678", "exporterwebpwd": "Aa12345678", "bmmonuser": "monitoring", "bmmonpass": "Aa12345678", "billmanager": "10.10.10.24", }
где:
aldpro
:aldip
— IP-адрес Контроллера домена ALD Pro, с установленным модулем синхронизации и Глобальным Каталогом;alduser
— имя пользователя, обладающего рольюALDPRO - Main Administrator
;aldpass
— пароль пользователя, обладающего рольюALDPRO - Main Administrator
;DMpassword
— необязательный параметр. Пароль дляcn=directory manager
(обычно совпадает с паролем, указанным при установке ALD Pro). Требуется только при необходимости деактивировать совместимость схем каталога;
localadmin
user
— имя пользователя локального администратора OC, входящего в группуastra-admins
для беспарольного использования команд повышения привилегий sudo;pass
— пароль пользователя локального администратора OC;
postgre_rb
:user
— имя администратора RuBackup;pass
— пароль администратора RuBackup;dbname
— имя базы RuBackup;superpass
— пароль суперпользователя RuBackup;port
— необязательный параметр. Порт подключения к БД. По умолчанию используется значение 5432;
marketplace
:mpip
— IP-адрес, выделенный из пула разрешенных адресов в Management сети Брест;mpname
— необязательный параметр. Имя виртуальной машины. По умолчанию используется значение mp01;
helpcenter
:hcip
— IP-адрес, выделенный из пула разрешенных адресов в Management сети Брест;hcname
— необязательный параметр. Имя виртуальной машины. По умолчанию используется значение hc01;
brestmgmt
— VIP-адрес raft, либо короткое или полное доменное имя лидера сервера управления;ds
— необязательный параметр. Имя или идентификатор хранилища образов. Если параметр не указан, хранилище будет подобрано автоматически;monitoring
— IP-адрес Monitoring в сетиManagement
;oneexporterpwd
— пароль пользователяoneexporter
от которого производится мониторинг объектов ПК СВ. По умолчанию используется значение Aa12345678;exporterwebpwd
— пароль пользователяexporterwebuser
от которого производится мониторинг объектов ALD Pro. По умолчанию используется значение Aa12345678;bmmonuser
— имя пользователя от которого работает API monitoring дляbillmanager exporter
. По умолчанию используется значение monitoring;bmmonpass
— Пароль пользователя от которого работает API monitoring дляbillmanager exporter
. По умолчанию используется значение Aa12345678;billmanager
— IP-адрес BILLmanager в сети Management.
Примечание
Поля клиентов мониторинга и новых серверов —
helpcenter
,marketplace
необходимо задавать самостоятельно. Остальные поля относятся к уже существующим параметрам AIC.Открыть файл
repos.yml
командой:nano repos.yml
и, при необходимости, дополнить его следующим содержимым:
aldpro: - "deb http://dl.astralinux.ru/aldpro/frozen/01/2.4.1/ 1.7_x86-64 main base" vmalse: - "deb http://download.astralinux.ru/astra/frozen/1.7_x86-64/1.7.6/uu/2/repository-main/ 1.7_x86-64 main contrib non-free" - "deb http://download.astralinux.ru/astra/frozen/1.7_x86-64/1.7.6/uu/2/repository-update/ 1.7_x86-64 main contrib non-free" - "deb http://download.astralinux.ru/astra/frozen/1.7_x86-64/1.7.6/uu/2/repository-base/ 1.7_x86-64 main contrib non-free" brestalse: - "deb http://download.astralinux.ru/astra/frozen/1.7_x86-64/1.7.7/repository-main/ 1.7_x86-64 main contrib non-free" - "deb http://download.astralinux.ru/astra/frozen/1.7_x86-64/1.7.7/repository-update/ 1.7_x86-64 main contrib non-free" brest: - "deb http://{{ local_web_ip }}/brest/3.3.3/ brest main non-free" mpqcow2: "http://{{ local_web_ip }}/marketplace-alse-gf.qcow2" hcqcow2: "http://{{ local_web_ip }}/alse-1.7.6.uu2-base-brest-mg15.3.1-amd64.qcow2" hcsources: "http://{{ local_web_ip }}/docops-release-1.2.zip" rubackup: - "http://{{ local_web_ip }}/rubackup" billmanager: - "http://{{ local_web_ip }}/billmanager/6" am: - "http://{{ local_web_ip }}/am/astra-monitoring-0.7.1.run"
Примечание
При наличии у БС доступа к внешним репозиториям компонентов AIC, редактировать вышеуказанный файл не требуется. В случае отсутствия соответствующего доступа необходимо развернуть локальный репозиторий на сервере БС или любом другом локальном сервере, и внести соответствующие изменения в файл
repos.yml
.При разворачивании репозитория на сервере БС, указывать IP-адрес БС, имеющего связь компонентов AIC с сервером репозиториев, не требуется. Переменная
{{ local_web_ip }}
позволит скрипту обновления автоматически найти и использовать нужный адрес. Если же репозиторий разворачивается вне БС, необходимо указывать полный адрес сервера репозитория.В папке репозитория RuBackup необходимо организовать структуру папок, включающую подпапки 2.2, 2.3, 2.4. Так как обновление сервера RuBackup производится строго последовательно, с обязательным прохождением промежуточных версий.
Для организации сервера репозиториев можно воспользоваться следующим скриптом:
wwwroot=/rep sudo mkdir -p $wwwroot sudo apt install nginx -y cat << EOF > /tmp/nginx server { listen 80 default_server; listen [::]:80 default_server; server_name _; access_log /var/log/nginx/packages-error.log; error_log /var/log/nginx/packages-error.log; location / { root $wwwroot; index index.html; autoindex on; } } EOF cat /tmp/nginx | sudo tee /etc/nginx/sites-available/default >/dev/null sudo mkdir -p $wwwroot/brest/3.3.3 sudo mkdir -p $wwwroot/billmanager/6 sudo mkdir -p $wwwroot/rubackup/{2.2,2.3,2.4} sudo mkdir -p $wwwroot/am sudo chown www-data:www-data -R $wwwroot/* sudo systemctl restart nginxПосле выполнения скрипта достаточно загрузить из личного кабинета диски с необходимыми репозиториями, и подключить или распаковать их в соответствующие папки.
Запустить процесс обновления из той же папки, в которой расположен файл
inputs.json
,update.sh
. Для этого воспользоваться командой:cd <folder where update.sh located> ./update.sh
Процесс обновления#
Процесс обновления AIC идемпотентный — в случае возникновения ошибок на определенном этапе обновления, можно запускать процесс повторно сколько угодно раз, так как, при новом запуске, выполняться будут только те этапы обновления, которые не были выполнены ранее.
В виду сложности процесса, на любом этапе обновления AIC могут наблюдаться ошибки, в том числе и с зависимостями пакетов. В этом случае выполнение скрипта будет автоматически остановлено и появится запись о возникшей ошибке. После устранения проблемы пользователем, скрипт обновления может быть запущен повторно.
Этапы процесса обновления:#
Сопоставление входных данных с переменными среды ОС пользователя;
Обновление ядра: сначала обновляются контроллеры домена ALD Pro, затем физические серверы, далее серверы управления Брест;
Обновление Rubackup с версии 2.1 до версии 2.4, обновление клиентов Rubackup: серверов ALD Pro и серверов управления Брест;
Обновление Billmanager и введение его в домен;
Обновление ОС Monitoring, введение его в домен и переустановка сервиса Мониторинг;
Установка различных агентов Monitoring в окружении AIC;
Развертывание виртуальных машин для Marketplace и helpcenter;
Активирование сервисов oneflow и onegate (для marketplace);
Введение в домен Marketplace и HelpCenter;
Установка магазина приложений;
Установка HelpCenter.
Обратная связь#
В случае возникновения проблем в процессе обновления, рекомендуется искать ошибки в файлах логов. После их устранения, запустить процесс обновления повторно.
Если решить проблему самостоятельно не представляется возможным, следует обратиться в техподдержку AIC. Для этого необходимо:
Собрать все файлы логирования, находящиеся в директории, откуда был запущен скрипт обновления (файлы с расширением
.log
)Деперсонализировать файлы
.log
от временного пароля администратораadmin
(или другой учетной записи, указанной в файле inputs.json) командой:find ./ -type f -name "*.log" sed -i 's/<aldpass>/XXXXXX/' {}\; tar czf all.tar.gz *.log
Направить файл
all.tar.gz
в техподдержку AIC с описанием последовательности выполненных действий и полученных результатов.