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

Централизованное обновление компонентов Space VDI

Инструкция для централизованного обновления следующих компонентов Space VDI при помощи Ansible на узлах с ОС Astra Linux SE 1.7.5, ОС Astra Linux SE 1.8.2.

  • Space Agent VM (qemu-guest-agent).

  • Space Agent VDI.

  • Space Client.

Внимание

Функционал для централизованного обновления компонентов Space VDI является экспериментальным.

При возникновении ошибок рекомендуется обратиться к Авторизованному Центру Технической Поддержки производителя или ознакомиться с уже зарегистрированными запросами на платформе Space Bugzilla.

Центр предоставляет поддержку по вопросам установки, настройки и функционирования продуктов экосистемы Space.


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

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

  2. Сгенерировать ssh-ключ.

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

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

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

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

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

  5. Заполнить файл hosts.ini адресами узлов с ОС Astra Linux SE 1.7.5, ОС Astra Linux SE 1.8.2 и требующими обновления компонентов.

    Пример файла hosts.ini

    [astra]
    astra1 ansible_host=10.251.30.101
    astra2 ansible_host=10.251.30.102
    astra3 ansible_host=10.251.30.103
    astra4 ansible_host=10.251.30.104
    astra5 ansible_host=10.251.30.105
    astra6 ansible_host=10.251.30.106
    
    [astra:vars]
    ansible_python_interpreter=auto_silent
    ansible_user=test
    ansible_ssh_private_key_file=~/.ssh/id_ed25519
    
    [redos]
    redos1 ansible_host=10.251.30.111
    redos2 ansible_host=10.251.30.112
    redos3 ansible_host=10.251.30.113
    redos4 ansible_host=10.251.30.114
    redos5 ansible_host=10.251.30.115
    redos6 ansible_host=10.251.30.116
    
    [redos:vars]
    ansible_python_interpreter=auto_silent
    ansible_user=test
    ansible_ssh_private_key_file=~/.ssh/id_ed25519
    
    [spaceagentpc]
    astra1 ansible_host=10.251.30.101
    redos1 ansible_host=10.251.30.111
    
    [spaceagentpc:vars]
    install_option=space-agent-pc
    disp_address=
    disp_port=
    token=
    
    
    [streamingserver]
    astra2 ansible_host=10.251.30.102
    redos2 ansible_host=10.251.30.112
    
    [streamingserver:vars]
    install_option=space-streaming-server
    
    [usbip]
    astra3 ansible_host=10.251.30.103
    redos3 ansible_host=10.251.30.113
    
    [usbip:vars]
    install_option=space-usbip-daemon
    
    [glint]
    astra4 ansible_host=10.251.30.104
    redos4 ansible_host=10.251.30.114
    
    [glint:vars]
    install_option=glint-launcher
    pdp_label=
    
    [mediapipe]
    astra5 ansible_host=10.251.30.105
    redos5 ansible_host=10.251.30.115
    
    [mediapipe:vars]
    install_option=mediapipe-server
    
    [spaceclient]
    astra6 ansible_host=10.251.30.106
    redos6 ansible_host=10.251.30.116
    
    * [astra] – узлы с ОС Astra Linux.
    * [spaceagentpc] – узлы, на которых необходимо обновить space-agent-pc.
    * [usbip] – узлы, на которых необходимо обновить space-usbip-daemon.
    * [glint] – узлы, на которых необходимо обновить glint-launcher.
    * [mediapipe] – узлы, на которых необходимо обновить mediapipe-server.
    * [spaceclient] – узлы, на которых необходимо обновить spaceclient.
    * [multi:children] – группа, объединяющая [astra] и [redos].
    * [astra:vars] и [redos:vars] – блоки с переменными для групп [astra] и [redos], т.е. для всех узлов.
    * Для блоков [spaceagentpc:vars] и [glint:vars] необходимо указать значения для переменных disp_address, disp_port, token и pdp_label.

  6. Проверить корректность выполнения ansible на узлах командой:

    ansible all -m ping 
    
    Пример вывода команды

    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
    
  2. Ввести пароль администратора для пользователя.

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

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

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


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

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

    ansible-playbook update-agent-vdi.yml -K
    
  2. Ввести пароль администратора для пользователя.

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

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

    Примечание

    Если указана группа с конкретным компонентом, например glint или spaceagentpc, то все дальнейшие пункты необходимо пропустить нажатием Enter.

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

  6. Указать адрес Space Disp для space-agent-pc.

  7. Указать порт Space Disp для space-agent-pc.

  8. Указать токен для space-agent-pc.

  9. Указать опции PDPLabel для glint-launcher.


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

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

    ansible-playbook update-space-client.yml -K
    
  2. Ввести пароль администратора для пользователя.

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