Подготовка базового ВРМ

Обязательные настройки

Для подготовки необходимо:

  • в созданной ранее ВМ выполнить настройку гостевой ОС;
  • выполнить установку и настройку компонента «Агент» (агента ВРМ, видеоагента, агента виртуальных смарт-карт) Termidesk (см. раздел Установка и удаление компонента документа СЛЕТ.10001-01 90 04 «Руководство администратора. Настройка компонента «Агент»).

Базовое ВРМ в домен вводить не нужно: процесс ввода контролируется параметрами гостевых ОС (см. подраздел Управление параметрами гостевых ОС в Termidesk), которые указываются при создании фонда ВРМ (см. подраздел Добавление фонда ВРМ).

Настройка гостевой ОС Windows сводится к выполнению следующих действий:

  • отключить режим гибернации;
  • отключить выключение дисплея и жесткого диска в дополнительных параметрах схемы электропитания;

Установку приложений qemu-guest-agent for Windows, spice-guest-tools, spice-webdavd нужно пропустить, если ВРМ реализовано на базе поставщика ресурсов VMware vSphere, поскольку подключиться к такому ВРМ можно только по протоколу RDP.

  • установить приложения qemu-guest-agent for Windows (доступ: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-qemu-ga/qemu-ga-win-106.0.1-1.el9/) и spice-guest-tools (доступ: https://www.spice-space.org/download/windows/spice-guest-tools/);
  • установить пакет spice-webdavd для Windows (доступ: https://www.spice-space.org/download/windows/spice-webdavd/) для включения возможности перенаправления каталога из пользовательской рабочей станции в ВРМ. Перенаправление каталогов из пользовательской рабочей станции в ВРМ с установкой пакета spice-webdavd работает только для протокола SPICE;
  • включить возможность удаленного подключения по протоколу RDP. Для включения доступа по протоколу RDP в меню «Пуск» нужно выбрать путь «Параметры - Система - Удаленный рабочий стол» и нажать экранную кнопку [Включить удаленный рабочий стол]. Также снять галочку в экранном поле «Разрешить подключения только с компьютеров, на которых работает удаленный рабочий стол с проверкой подлинности на уровне сети» (рекомендуется выполнить для ОС Windows 7, а также при подключении по протоколу RDP с пользовательской рабочей станции на основе ОС Linux);
  • для возможности перенаправления принтеров из пользовательской рабочей станции с ОС Windows необходимо установить драйвер Microsoft Software Printer Driver. Для установки перейти «Принтеры и сканеры - Свойства сервера печати - Драйверы», нажать экранную кнопку [Добавить], после выбора типа архитектуры нужно указать изготовителя «Microsoft» и выбрать «Microsoft Software Printer Driver»;
  • для возможности перенаправления принтеров из пользовательской рабочей станции с ОС Linux необходимо установить драйвер MS Publisher Imagesetter. Для установки перейти «Принтеры и сканеры - Свойства сервера печати - Драйверы», нажать экранную кнопку [Добавить], после выбора типа архитектуры нужно указать изготовителя «Generic» и выбрать «MS Publisher Imagesetter»;
  • в настройках восстановления служб spice-agent (Spice Agent), vdservice (SPICE VDAgent) и TermideskService (Termidesk Agent Daemon) назначить значение «Перезапуск служб» для действий при сбое. Для этого перейти «Диспетчер задач» - «Службы» - «Открыть службы», правой кнопкой мыши нажать на нужное наименование и перейти «Свойства» - «Восстановление».

Дополнительные свойства служб для ОС Windows

Настройка гостевой ОС Astra Linux сводится к выполнению следующих действий:

  • установить пакеты qemu-guest-agent, spice-vdagent, xserver-xorg-video-qxl:
:~$ sudo apt install -y qemu-guest-agent spice-vdagent xserver-xorg-video-qxl
BASH

где:

-y  - ключ для пропуска подтверждения установки;

  • установить пакет xrdp для корректной работы подключения по протоколу RDP к ВРМ:
:~$ sudo apt install -y xrdp
BASH
  • установить пакет libcanberra-pulse для корректной работы аудио:
:~$ sudo apt install -y libcanberra-pulse
BASH
  • установить пакеты spice-webdavddavfs2, autofs для включения возможности автоматического перенаправления каталога из пользовательской рабочей станции в ВРМ по протоколу SPICE:
:~$ sudo apt install -y spice-webdavd davfs2 autofs
BASH

Для предоставления пользователям возможности перенаправления каталога в ВРМ необходимо также выполнить настройки, указанные в подразделе Настройка перенаправления каталога из пользовательской рабочей станции в ВРМ.

  • привести файл /etc/acpi/events/powerbtn-acpi-support к виду:
event=button/power
action=/sbin/poweroff
BASH
  • установить пакет astra-ad-sssd-client для возможности ввода ВРМ с ОС Astra Linux в домен MS AD:
:~$ sudo apt install -y astra-ad-sssd-client
BASH
  • установить пакет astra-freeipa-client для возможности ввода ВРМ с ОС Astra Linux в домен FreeIPA:
:~$ sudo apt install -y astra-freeipa-client
BASH

При необходимости работы с vGPU по протоколу доставки Loudplay в гостевой ОС дополнительно должны быть установлены серверные драйверы NVIDIA и сервер Loudplay.

Для гостевой ОС Astra Linux необходимо также изменить способ назначения сетевых настроек:

  • отключить (systemctl --now mask) и удалить (apt remove) встроенную программу для управления сетевыми соединениями NetworkManager:
:~$ sudo systemctl --now mask NetworkManager && sudo apt remove network-manager
BASH
  • выполнить настройку сетевых интерфейсов при помощи конфигурационных файлов /etc/network/interfaces.d/<имя интерфейса>.conf. Необходимо создать конфигурационные файлы и описать их, воспользовавшись справочным центром Astra Linux: https://wiki.astralinux.ru/pages/viewpage.action?pageId=3277370;
  • отредактировать файл /etc/network/interfaces, добавив в нее следующую строку, если ее нет:
source /etc/network/interfaces.d/*
BASH
  • после изменения настроек выполнить перезапуск службы сети:
:~$ sudo systemctl restart networking
BASH

Для гостевой ОС Linux, отличной от Astra Linux, при необходимости ввода ВРМ в домен FreeIPA нужно внести изменения в файл  /usr/lib/python3.6/site-packages/ipalib/constants.py:

:~$ sudo sed -i "s/^NAME_REGEX.*$/NAME_REGEX = r'[a-z][_a-z0-9\\\-]*[a-z0-9]$|[a-z]$'/g" $(sudo find / -name constants.py -type f | grep -FzZ 'ipalib/constants.py')
BASH

Команда осуществляет поиск файла constants.py в корневой директории и учитывает, что найденный путь к файлу должен содержать каталог «ipalib». В найденный файл вносится изменение переменной NAME_REGEX.

Путь к файлу зависит от используемой ОС Linux и версии Python и может отличаться от указанного. Для определения пути к файлу можно воспользоваться утилитой find:

:~$ sudo find / -name constants.py -type f
BASH

При стандартной настройке сетевой инфраструктуры предполагается, что IP-адрес DNS-сервера определяется DHCP-сервером. Однако если это не так, необходимо скорректировать файл /etc/resolv.conf в гостевой ОС Astra Linux:

  • указать имя домена и IP-адрес DNS-сервера:
:~$ echo -e 'domain <имя_домена>\nsearch <имя_домена>\nnameserver <IP-адрес_DNS-сервера>' | sudo tee /etc/resolv.conf
BASH
  • для защиты файла /etc/resolv.conf от перезаписи нужно создать файл /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate:
:~$ sudo touch /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate
BASH
  • отредактировать его содержимое, приведя к виду:
#!/bin/bash
make_resolv_conf() {
        :
}
BASH
  • сохранить файл и закрыть.

Вернуть возможность перезаписи файла /etc/resolv.conf можно, удалив ранее созданный /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate и выполнив перезапуск сетевой службы:

:~$ sudo systemctl restart networking
BASH

Настройка перенаправления каталога из пользовательской рабочей станции в ВРМ

Для того чтобы у пользователя появилась возможность автоматического перенаправления каталога в ВРМ по протоколу SPICE, помимо установки пакетов, перечисленных выше, нужно выполнить дополнительную настройку гостевой ОС ВРМ.

Для гостевой ОС Astra Linux Special Edition:

  • создать каталог для монтирования:
:~$ sudo mkdir /media/davfs
BASH
  • создать файл /etc/auto.master.d/spice-webdav.autofs следующего содержания:
/-  /etc/auto.master.d/auto.localwebdav.mount
BASH

где:

/- - опция, указывающая утилите autofs выполнять монтирование по существующему пути вместо автоматического создания подкаталогов в корневой точке монтирования;

  • создать файл /etc/auto.master.d/auto.localwebdav.mount следующего содержания:
/media/davfs -fstype=davfs,rw,dir_mode=0777,file_mode=666 :http\://localhost\:9843
BASH

где:

/media/davfs - каталог, в который будет происходить монтирование;

-fstype=davfs,rw - тип смонтированной файловой системы с правами на чтение и запись в нее (rw);

dir_mode=0777,file_mode=666 - права, с которыми будут доступны файлы и каталоги. Рекомендуется не менять указанные значения для исключения случаев монтирования файловой системы от пользователя root и недоступности файлов при подключении через программу доставки ВРМ (termidesk-viewer);

  • отредактировать файл /etc/davfs2/secrets, добавив строку:
"http://localhost:9843/" "" ""
BASH

где:

http://localhost:9843/ - место размещения файловой системы, по которому определяется устройство хранения для монтирования;

"" "" - логин и пароль пользователя, по умолчанию пусты для утилиты spice-webdav;

  • перезапустить службу автоматического монтирования:
:~$ sudo systemctl restart autofs
BASH

Для гостевой ОС Windows должен быть установлен пакет spice-webdavd (доступ: https://www.spice-space.org/download/windows/spice-webdavd/). 

В ОС Windows сетевой диск не будет автоматически смонтирован в ВРМ. Для включения функционала нужно:

  • определить исполняемый файл (.bat), который будет выполнять автоматическое монтирование, и поместить его в каталог C:\Windows\System32\GroupPolicy\User\Scripts\Logon;
  • через оснастку gpedit.msc переопределить локальную политику «Конфигурация пользователя - Конфигурация Windows - Сценарии (вход/выход из системы)»: отредактировать параметр «Вход в систему», добавив новый сценарий и назначив ему имя ранее созданного исполняемого файла, например: C:\Windows\System32\GroupPolicy\User\Scripts\Logon\<исполняемый файл.bat>;
  • через оснастку gpedit.msc переопределить локальную политику «Конфигурация компьютера - Административные шаблоны - Система - Групповая политика - Настроить задержку сценария входа)»: задать ей значение «Включено» и «мин.:0» ;
  • обновить политики командой:
C:\Windows\system32\gpupdate /force
BASH

Автоматическое масштабирование экрана в ОС Astra Linux

В некоторых случаях при переходе в полноэкранный режим в пользовательской рабочей станции гостевая ОС Astra Linux не производит автоматическое масштабирование экрана.

Условием масштабирования является запущенный процесс spice-vdagent в сессии пользователя.

Для настройки автоматического масштабирования экрана необходимо:

  • отредактировать файл /etc/udev/rules.d/50-spice-vdagent.rules, создав правило для udev:
ACTION=="change", KERNEL=="card0", SUBSYSTEM=="drm", RUN=="/usr/local/bin/x-resize"
BASH
  • перезапустить сервис udev командой:
:~$ sudo systemctl restart udev
BASH
  • создать один из вариантов исполняемого файла /usr/local/bin/x-resize:
    • вариант 1 - простое масштабирование:
#!/bin/sh
PATH=/usr/bin
desktopuser=$(/bin/ps -o user:80= -C spice-vdagent | grep -v fly-dm) || exit 0
export DISPLAY=:0
export XAUTHORITY=$(eval echo "~$desktopuser")/.Xauthority
xrandr --output $(xrandr | awk '/ connected/{print $1; exit; }') --auto
BASH
    • вариант 2 - масштабирование конкретного монитора. В данном примере исполняемого файла второй монитор располагается слева от основного:
#!/bin/sh
PATH=/usr/bin
# Имя пользователя получается через вывод списка пользователей (заголовки отключены), от имени которых запущен spice-vdagent | из списка вырезается имя fly-dm (сессия отображения ввода логина-пароля)
desktopuserlist=$(/bin/ps -o user:80= -C spice-vdagent | grep -v fly-dm) || exit 0
# Проверенное решение, но работает только для имён пользователей без дефисов, пробелов и т.д.
#desktopuserlist=$(/bin/ps -ef  | /bin/grep -oP  '^\w+ (?=.*vdagent( |$))') || exit 0
for desktopuser in $desktopuserlist; do
  export DISPLAY=:0
  export XAUTHORITY=$(eval echo "~$desktopuser")/.Xauthority
 
#Get active monitors
  ACTMONS=$(xrandr --listactivemonitors | awk '/[[:alnum:]]+ +/ {print $4}' | sort)
#Get primary monitor
  PRIMARYMON=$(xrandr --listactivemonitors | awk '/*/ {print $4}')
 
#Get current and preferred display resolutions
  for MON in $ACTMONS
  do
    #Get preferred display resolution
    PREFRES=$(xrandr | awk -v monpref="$MON connected" '/connected/ {p = 0} $0 ~ monpref {p = 1} p' | awk '/+/ {print $1;}' | sed -n '2~2p')
    #Get current display resolution
    CURNRES=$(xrandr | awk -v moncurn="$MON connected" '/connected/ {p = 0} $0 ~ moncurn {p = 1} p' | awk '/*/ {print $1;}')
    if [[ $CURNRES != $PREFRES ]];
    then
        if [[ $MON == $PRIMARYMON ]];
        then
                xrandr --output $MON --auto
                logger -p local0.notice -t ${0##*/}[$$] "$MON primary display change resolution to preferred $PREFRES"
        else
                xrandr --output $MON --left-of $PRIMARYMON --auto
                logger -p local0.notice -t ${0##*/}[$$] "$MON display change resolution to preferred $PREFRES and left of $PRIMARYMON"
        fi
    else
        logger -p local0.notice -t ${0##*/}[$$] "$MON display is already using preferred resolution $PREFRES"
 
    fi
  done
done
BASH
  • сделать файл исполняемым при помощи команды:
:~$ sudo chmod +x /usr/local/bin/x-resize
BASH

Для масштабирования экрана приветствия необходимо выполнить:

  • заблокировать автостарт kscreen, переименовав расширение или удалив данные файлы из указанных директорий: /usr/share/fly-dm/autostart/greeter/kscreend_autostart.desktop, /usr/share/fly-dm/preload/greeter/kscreend_preload.desktop;
  • сделать символьную ссылку на ярлык для автозапуска spice-vdagent для экрана приветствия:
:~$ sudo ln -s /etc/xdg/autostart/spice-vdagent.desktop /usr/share/fly-dm/autostart/greeter/spice-vdagent.desktop
BASH
  • перезапустить процесс fly-dm командой:
:~$ sudo systemctl restart fly-dm
BASH

Если файл /usr/bin/fly-monitor-hotplug.sh не является исполняемым или удален, то на экране приветствия масштабирование не выполняется.