Централизованное обновление компонентов Space VDI
Инструкция для централизованного обновления следующих компонентов Space VDI при помощи Ansible на узлах с ОС Astra Linux SE 1.7.5, ОС Astra Linux SE 1.8.2, ОС РЕД ОС 7.3.5.
-
Space Agent VM (qemu-guest-agent).
-
Space Agent VDI.
-
Space Client.
Внимание
Функционал для централизованного обновления компонентов Space VDI является экспериментальным.
При возникновении ошибок рекомендуется обратиться к Авторизованному Центру Технической Поддержки производителя или ознакомиться с уже зарегистрированными запросами на платформе Space Bugzilla.
Центр предоставляет поддержку по вопросам установки, настройки и функционирования продуктов экосистемы Space.
Подготовка инфраструктуры к обновлению
-
На узле, с которого будет запускаться Ansible, создать директорию для расположения проекта по обновлению компонентов:
mkdir ~/update-space-components && cd update-space-componentsВ данной директории расположить все заранее скачанные файлы.
-
Установить Ansible не ниже версии 2.17.0 в соответствии с документацией производителя.
Установка Ansible требуемой версии в виртуальном окружении при помощи модуля venv
Также возможна установка Ansible требуемой версии в виртуальном окружении при помощи модуля
venv. Для этого необходимо:-
Установить через используемый пакетный менеджер
python3-venv. -
В директории со скачанными файлами выполнить команду:
python3 -m venv venv -
Далее выполнить команды:
source venv/bin/activatepip install -r requirements.txt
-
-
Распространить ssh-ключ на все требуемые узлы с ОС Astra Linux SE 1.7.5, ОС Astra Linux SE 1.8.2 и ОС РЕД ОС 7.3.5 для входа под учетной записью с правами администратора.
Один из рекомендуемых способов распространения ssh-ключа на ВМ — использование cloud-init и настройка аутентификации по ключу на всех подконтрольных узлах.
-
В директории со скачанными файлами в поддиректории
inventoryсоздать файл инвентаря Ansible. Это можно выполнить двумя способами:Автоматическое заполнение
Данный вариант подходит для случаев, когда на ВМ уже установлен qemu-guest-agent и в Web-интерфейсе SpaceVM в разделе Виртуальные машины отображается список IP-адресов.
-
В Web-интерфейсе SpaceVM перейти в раздел Виртуальные машины и при помощи фильтра отсортировать необходимые ВМ.
-
Выгрузить CSV-файл при помощи экспорта данных в csv.
-
Скачанный CSV-файл разместить в поддиректории
inventory. -
Находясь в поддиректории
inventory, выполнить команду:python3 make_inventory.py -
Ответить на вопросы в процессе выполнения скрипта.
Данный скрипт может создавать новый файл инвентаря Ansible или добавлять новые группы ВМ в уже существующий файл.
Ручное заполнение
-
В поддиректории
inventoryсоздать файл hosts.ini. -
В созданном файле указать имя группы ВМ в виде
[имягруппы]. -
Далее построчно указать IP-адреса ВМ под именем группы.
-
Добавить блок переменных для группы ВМ в виде
[имягруппы:vars]. -
В блоке переменных указать следующие переменные:
-
ansible_python_interpreter=auto_silent -
ansible_user=— имя пользователя с правами администратора на ВМ. -
ansible_ssh_private_key_file=— путь до распространённого на ВМ ssh-ключа.
-
Подробнее о создании файла инвентаря Ansible можно прочитать в документации производителя.
-
-
Проверить корректность выполнения ansible на узлах командой:
ansible all -m ping -i inventory/имя_файла_инвентаря.iniПример вывода команды
ansible-astra3 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python3.7" }, "changed": false, "ping": "pong" }Для модуля ping должен быть подобный вывод pong на всех узлах.
-
Разместить образы (обновление) компонентов Space Agent VM (qemu-guest-agent) и Space Agent VDI на локальном ресурсе и сформировать URL на скачивание образов.
Процесс обновления
Базовые инструменты Ansible
- При обновлении компонентов Space VDI используются плейбуки Ansible со стандартным расширением
.yml. - Для запроса архива с необходимыми плейбуками рекомендуется обратиться к Авторизованному Центру Технической Поддержки производителя.
Обновление Space Agent VM (qemu-guest-agent)
-
Выполнить команду:
ansible-playbook update-agentvm.yml -K -i inventory/имя_файла_инвентаря.ini -
Ввести пароль администратора для пользователя.
-
Указать группу узлов для обновления компонента.
-
Указать метод установки
qemu-guest-agent. При использованииonlineустановки qemu-guest-agent будет установлен из репозиториев, указанных в гостевой ОС. -
Для метода установки
offlineнеобходимо вставить ссылку на скачивание образа space-agent-vm.
Обновление Space Agent VDI
-
В директории со скачанными файлами заполнить в файле
roles/space-agent-vdi/vars/main.ymlпеременные:-
pdp_label— Опции PDPLabel для glint-launcher. -
disp_address— Адрес Space Disp для space-agent-pc. -
disp_port— Порт Space Disp для space-agent-pc. -
disp_token— Токен для space-agent-pc.
-
-
Выполнить команду:
ansible-playbook update-agent-vdi.yml -K -i inventory/имя_файла_инвентаря.ini -
Ввести пароль администратора для пользователя.
-
Указать группу узлов для обновления компонента.
-
Вставить ссылку на скачивание образа space-agent-vdi.
-
Указать компонент для обновления.
Обновление Space Client
-
Выполнить команду:
ansible-playbook update-space-client.yml -K -i inventory/имя_файла_инвентаря.ini -
Ввести пароль администратора для пользователя.
-
Указать группу узлов для обновления компонента.
-
Выбрать опции установки webrtc и mediapipe.
-
Выбрать опции установки беспарольного проброса USB IP.