Перейти к содержанию

Централизованное обновление компонентов 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.


Подготовка инфраструктуры к обновлению

  1. На узле, с которого будет запускаться Ansible, создать директорию для расположения проекта по обновлению компонентов:

    mkdir ~/update-space-components && cd update-space-components
    

    В данной директории расположить все заранее скачанные файлы.

  2. Установить Ansible не ниже версии 2.17.0 в соответствии с документацией производителя.

    Установка Ansible требуемой версии в виртуальном окружении при помощи модуля venv

    Также возможна установка Ansible требуемой версии в виртуальном окружении при помощи модуля venv. Для этого необходимо:

    • Установить через используемый пакетный менеджер python3-venv.

    • В директории со скачанными файлами выполнить команду:

      python3 -m venv venv
      
    • Далее выполнить команды:

      source venv/bin/activate
      
      pip install -r requirements.txt
      
  3. Сгенерировать ssh-ключ.

  4. Распространить ssh-ключ на все требуемые узлы с ОС Astra Linux SE 1.7.5, ОС Astra Linux SE 1.8.2 и ОС РЕД ОС 7.3.5 для входа под учетной записью с правами администратора.

    Один из рекомендуемых способов распространения ssh-ключа на ВМ — использование cloud-init и настройка аутентификации по ключу на всех подконтрольных узлах.

  5. В директории со скачанными файлами в поддиректории 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 можно прочитать в документации производителя.

  6. Проверить корректность выполнения 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 на всех узлах.

  7. Разместить образы (обновление) компонентов Space Agent VM (qemu-guest-agent) и Space Agent VDI на локальном ресурсе и сформировать URL на скачивание образов.


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

Базовые инструменты Ansible

  1. При обновлении компонентов Space VDI используются плейбуки Ansible со стандартным расширением .yml.
  2. Для запроса архива с необходимыми плейбуками рекомендуется обратиться к Авторизованному Центру Технической Поддержки производителя.

Обновление Space Agent VM (qemu-guest-agent)

  1. Выполнить команду:

    ansible-playbook update-agentvm.yml -K -i inventory/имя_файла_инвентаря.ini
    
  2. Ввести пароль администратора для пользователя.

  3. Указать группу узлов для обновления компонента.

  4. Указать метод установки qemu-guest-agent. При использовании online установки qemu-guest-agent будет установлен из репозиториев, указанных в гостевой ОС.

  5. Для метода установки offline необходимо вставить ссылку на скачивание образа space-agent-vm.


Обновление Space Agent VDI

  1. В директории со скачанными файлами заполнить в файле 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.

  2. Выполнить команду:

    ansible-playbook update-agent-vdi.yml -K -i inventory/имя_файла_инвентаря.ini
    
  3. Ввести пароль администратора для пользователя.

  4. Указать группу узлов для обновления компонента.

  5. Вставить ссылку на скачивание образа space-agent-vdi.

  6. Указать компонент для обновления.


Обновление Space Client

  1. Выполнить команду:

    ansible-playbook update-space-client.yml -K -i inventory/имя_файла_инвентаря.ini
    
  2. Ввести пароль администратора для пользователя.

  3. Указать группу узлов для обновления компонента.

  4. Выбрать опции установки webrtc и mediapipe.

  5. Выбрать опции установки беспарольного проброса USB IP.