Обновление AIC с версии 1.2 до версии 1.3.1#

Введение#

В данном разделе приведена информация об особенностях и очередности обновления всех компонентов AIC с версии 1.2 до версии 1.3.1. Также возможно обновление по сценарию AIC 1.3 — AIC 1.3.1, при условии соответствия всем описанным ниже предварительным требованиям.

При выполнении обновлении AIC с версии 1.3 до 1.3.1, обновлению подлежат следующие компоненты: ПК СВ «Брест», BILLmanager и клиенты Astra Monitoring.

Предварительные требования к платформе, с которой будет осуществляться обновление компонентов AIC#

Для осуществления обновления по нижеприведенному сценарию необходимо наличие платформы на базе ОС Astra Linux, на которую можно загрузить проект для обновления. Далее по тексту платформа Bootstrap server (BS). Местоположение папки для загрузки проекта может быть выбрано произвольно.

Требования к платформе BS:

  1. Данная платформа не должна быть развернута в окружении AIC.

    Примечание

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

  2. С BS должен осуществляться доступ по сети ко всем компонентам AIC (для этого достаточно предоставить BS доступ к Management сети кластера AIC).

  3. Пользователь, с которого запускается скрипт обновления, должен:

    1. Состоять в группе astra-admins, что удовлетворяет требованию беспарольного повышения привилегий через утилиту sudo.

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

      • sshpass — не интерактивный доступ по сети на основе открытого пароля;

      • jq — анализатор json;

      • dnsutils — утилиты для осуществления запросов к DNS-серверам.

      Примечание

      Данные приложения могут быть установлены пользователем вручную. В этом случае наличие доступа к репозиториям не обязательно.

      Повышение привилегий необходимо для добавления динамических записей в /etc/hosts файл BS.

  4. Начиная с версии 1.3 в AIC внедрен механизм синхронизации логинов и паролей между ALD Pro и ПК СВ «Брест». В процессе установки AIC производится удаление из ПК СВ всех пользователей и групп, не зарегистрированных в ALD Pro, и добавление пользователей из ALD Pro, которые не были зарегистрированы в ПК СВ. Таким образом создается единый центр управления аутентификации и авторизации пользователей. Во избежание удаления пользователей в ПК СВ «Брест» предлагается самостоятельно завести учетные данные из ПК СВ «Брест» в ALD Pro перед началом обновления.

    Примечание

    Обновление устанавливает модуль синхронизации, а затем отключает его для последующего выполнения корректной интеграции с BILLmanager. В промежутке между установкой и деактивацией данной службы, из системы могут быть удалены отсутствующие в ALD Pro пользователи ПК СВ «Брест». Ручное создание пользователей в ALD Pro перед обновлением позволяет нивелировать риски реализации данного сценария.

  5. Для корректной отработки процесса обновления AIC в части ПК СВ необходимо наличие доступа к предыдущим версиям репозиториев ALSE. При этом, достаточным является repository-main.

Последовательность действий при обновлении компонентов:#

Для обновления компонентов необходимо выполнить следующие действия:

  1. Убедиться, что выбранная платформа соответствует вышеописанным требованиям. Загрузить архив обновления в любую папку платформы и распаковать его.

    Примечание

    Далее все действия по запуску скрипта должны осуществляться строго из данной директории.

  2. Войти в интерфейс управления контроллера домена AIC и обновить пароли учетной записи, обладающей ролью ALDPROMain Administrator (обычно это учетная запись admin, но можно создать свою учетную запись).

    Примечание

    Это временное действие, пароль нужно выбрать несложный и не содержащий спецсимволы: восклицательный знак, доллар и/или иные знаки, которые могут трактоваться в командной строке как подстановочные переменные или специальные действия. Невыполнение данного условия может оказать негативное влияние на процесс обновления продукта ALD Pro.

    В качестве примера можно использовать пароль Aa1234567. По завершении обновления, в целях безопасности, пароль должен быть изменен на более сложный.

  3. Унифицировать учетные записи локального администратора OC, то есть привести к единому логину и паролю:

    • контроллеры домена ALD Pro (2шт). Обязательно должен быть мандатный уровень целостности = 63;

    • узлы виртуализации (2n+1). Обязательно должен быть мандатный уровень целостности = 127;

    • узлы управления (3шт). Обязательно должен быть мандатный уровень целостности = 127;

    • при использовании компонентов BILLmanager, Rubackup и Astra Monitoring  выполнить унификацию для каждой ВМ компонентов.

    Для этого можно воспользоваться командами:

    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
    
  4. Открыть файл 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": "",
    "rubackup": "10.10.10.21",
    "monitoring": "10.10.10.23",
    "oneexporterpwd": "Aa12345678",
    "exporterwebpwd": "Aa12345678",
    "bmmonuser": "monitoring",
    "bmmonpass": "Aa12345678",
    "billmanager": "10.10.10.24",
    "billprjname": "Мой провайдер"
    }
    

    где:

    • 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 — необязательный параметр. Имя или идентификатор хранилища образов. Если параметр не указан, хранилище будет подобрано автоматически;

    • rubackup — существующий IP-адрес сервера RuBackup в сети Management;

    • monitoring — существующий IP-адрес Monitoring в сети Management;

    • oneexporterpwd — пароль пользователя oneexporter, от которого производится мониторинг объектов ПК СВ. По умолчанию используется значение Aa12345678, но в случае обновления AIC 1.3 до версии 1.3.1, необходимо указать действующий пароль для экспортера, не смотря на отсутствие обновления для компонента AM;

    • exporterwebpwd — пароль пользователя exporterwebuser, от которого производится мониторинг объектов ALD Pro. По умолчанию используется значение Aa12345678, но, в случае обновления AIC 1.3 до версии 1.3.1, необходимо указать действующий пароль для экспортера, не смотря на отсутствие обновления для компонента AM;

    • bmmonuser — имя пользователя, от которого работает API monitoring для billmanager exporter. По умолчанию используется значение monitoring;

    • bmmonpass — пароль пользователя, от которого работает API monitoring для billmanager exporter. По умолчанию используется значение Aa12345678;

    • billmanager — существующий IP-адрес BILLmanager в сети Management;

    • billprjname — имя существующего провайдера, куда будет добавлено соединение Ldap к ALD Pro. В случае, если соединение уже существует или не требуется оставить пустым.

    Примечание

    Поля клиентов мониторинга и новых серверов — helpcenter, marketplace для обновления AIC с версии 1.2 до версии 1.3.1 необходимо задавать самостоятельно. Остальные поля относятся к уже существующим параметрам AIC.

  5. Открыть файл 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.uu1/ 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.3.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"
    

Примечание

При наличии у BS доступа к внешним репозиториям компонентов AIC, редактировать вышеуказанный файл не требуется. В случае отсутствия соответствующего доступа необходимо развернуть локальный репозиторий на сервере BS или любом другом локальном сервере, и внести соответствующие изменения в файл repos.yml.

При разворачивании репозитория на сервере BS, указывать IP-адрес BS, имеющего связь компонентов AIC с сервером репозиториев, не требуется. Переменная {{ local_web_ip }} позволит скрипту обновления автоматически найти и использовать нужный адрес. Если же репозиторий разворачивается вне BS, необходимо указывать полный адрес сервера репозитория.

В папке репозитория RuBackup необходимо организовать структуру папок, включающую подпапки: 2.2, 2.3, 2.4, так как обновление сервера RuBackup производится строго последовательно, с обязательным прохождением промежуточных версий.

Предупреждение

Для корректной отработки взаимодействий с API необходимо использовать только несертифицированные версии RuBackup.

Образы для всех репозиториев, кроме Astra Monitoring и BILLmanager, можно скачать в личном кабинете. Образы для репозиториев Astra Monitoring и BILLmanager доступны на Bootstrap server.

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

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

После выполнения скрипта достаточно загрузить из личного кабинета диски с необходимыми репозиториями, и подключить или распаковать их в соответствующие папки.
  1. Запустить процесс обновления из той же папки, в которой расположен файл inputs.json, update.sh. Для этого воспользоваться командой:

    cd <folder where update.sh located>
    ./update.sh
    

Процесс обновления#

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

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

Этапы процесса обновления:#

  1. Сопоставление входных данных с переменными среды ОС пользователя.

  2. Обновление ядра: сначала обновляются контроллеры домена ALD Pro, затем физические серверы, далее серверы управления Брест.

  3. Обновление Rubackup с версии 2.1 до версии 2.4, обновление клиентов Rubackup: серверов ALD Pro и серверов управления Брест.

  4. Обновление Billmanager и введение его в домен.

  5. Обновление ОС Monitoring, введение его в домен и переустановка сервиса Мониторинг.

  6. Установка различных агентов Monitoring в окружении AIC.

  7. Развертывание виртуальных машин для Marketplace и helpcenter.

  8. Активирование сервисов oneflow и onegate (для marketplace).

  9. Введение в домен Marketplace и HelpCenter.

  10. Установка магазина приложений.

  11. Установка HelpCenter.

Обратная связь#

В случае возникновения проблем в процессе обновления, рекомендуется искать ошибки в файлах логов. После их устранения, запустить процесс обновления повторно.

Если решить проблему самостоятельно не представляется возможным, следует обратиться в техподдержку AIC. Для этого необходимо:

  1. Собрать все файлы логирования, находящиеся в директории, откуда был запущен скрипт обновления (файлы с расширением .log).

  2. Деперсонализировать файлы .log от временного пароля администратора admin (или другой учетной записи, указанной в файле inputs.json) командой:

    find ./ -type f -name "*.log" sed -i 's/<aldpass>/XXXXXX/' {}\;
    
    tar czf all.tar.gz *.log
    
  3. Направить файл all.tar.gz в техподдержку AIC с описанием последовательности выполненных действий и полученных результатов.