Настройка Linux в качестве виртуального десктопа для VMware Horizon - не самая простая и быстрая задача. В свое время VMware даже опубликовала готовый виртуальны апплайнс на базе Ubuntu 18.04, который с помощью shell скрипта и черной магии позволял автоматизировать многие рутинные задачи для подготовки виртуального десктопа. Отдельно скрипт можно загрузить с репозитория на GitHub: https://github.com/thatvirtualboy/horizon-linux-vm
К сожалению, с тех пор данный проект не обновлялся, и для новых версий Ubuntu 20.04 и Ubuntu 22.04 без доработок он не подходит.
Поэтому я написал небольшой playbook для Ansible, чтобы автоматизировать настройку Ubuntu 18.04 / 20.04 / 22.04 под Horizon: https://github.com/omnimod/linux-optimize4vdi
Linux-optimize4vdi выполняет основные шаги по настройке гостевой ОС с Ubuntu, такие как обновление ОС, удаление/установка пакетов, установка параметров рабочего стола GNOME и т.д. Текущая версия поддерживает Ubuntu 22.04.
Автоматизация функций
Этот плейбук выполняет следующие оптимизации:
- Удаляет ненужные приложения из Ubuntu (игры, утилиты USB Creator и Transmission).
- Обновляет и апгрейдит пакеты с помощью apt update && apt upgrade.
- Обновляет установленные приложения с помощью snap refresh.
- Устанавливает последнюю версию Open-VM-Tools.
- Устанавливает новые приложения через apt (chromium, 7zip, vlc, telegram desktop client и zoom client).
- Отключает автоматические обновления и апдейты apt.
- Включает тихую загрузку GRUB.
- Отключает гибернацию и сон системы.
- Отключает ненужные службы (bluetooth, thunderbolt, служба обновления прошивок).
- Вводит компьютер в домен.
- Компилирует и устанавливает драйвер VHCI для перенаправления USB Horizon.
- Компилирует и устанавливает драйвер V4L2Loopback для Horizon RTAV.
- Устанавливает Horizon Agent с включенными функциями audio redirection, USB redirection и RTAV.
- Включает SSO для Horizon.
- Оптимизирует рабочий стол GNOME (отключает анимацию, устанавливает одноцветный фон рабочего стола).
- Очищает историю bash.
- Перезагружает виртуальный рабочий стол.
Как использовать
Установите гостевую ОС Ubuntu 18.04, 20.04 или 22.04 на виртуальную машину с настройками по умолчанию. При установке создайте учетную запись 'user'. Эта учетная запись будет использоваться для удаленного подключения от Ansible (если вы создали ее в момент установки системы, то ей автоматически будут выданы права sudoer для выполнения части оптимизаций в системе). Если вы используете другое имя пользователя, пожалуйста, измените шаги конфигурации и ansible.cfg соответствующим образом, и проверьте, что пользователь имеет права sudoer.
Установите сервер OpenSSH на виртуальный рабочий стол:
sudo apt get install openssh-server
Установите Ansible на отдельной рабочей станции / клиентском компьютере. При желании вы можете установить Ansible локально на сам виртуальный десктоп. В этом случае рекомендуется пропускать шаг перезагрузки десктопа после выполнения всех задач (см. раздел Тэги).
Для аутентификации и авторизации пользователя Ansible используются ssh ключи. Сгенерируйте ssh-ключ на вашей рабочей станции с настройками по умолчанию:
ssh-keygen
Скопируйте открытый ключ с рабочей станции на виртуальный рабочий стол:
ssh-copy-id -i ~/id_rsa.pub user@virtual_desktop_ip_address
При копировании потребуется однократно указать пароль учетной записи user, который вы задали при установке системы и создании учетной записи.
Измените файл inventory, в разделе [ubuntu] укажите IP-адрес виртуального рабочего стола, а также измените необходимые переменные. Значение переменных описано в файле inventory.
Скачайте и поместите необходимые установочные архивы с пакетами vhci, v4l2loopback и Horizon Agent в папку files.
Запустите плейбук Ansible с помощью команды:
ansible-playbook --ask-become-pass optimize.yml
Тэги
Если вы хотите запустить только определенную оптимизацию, вы можете запустить ansible-playbook с параметром --tags "tag1, tag2, tag3". В настоящее время этот плейбук поддерживает теги:
- horizon - установить и настроить VMware Horizon Agent на виртуальном рабочем столе.
- domain - присоединиться к домену с параметрами, указанными в файлах инвентаризации.
- gnome - выполнить настройки и оптимизацию рабочего стола GNOME.
- reboot - перезагрузить виртуальный рабочий стол после завершения оптимизации.
Например, чтобы запустить playbook только с оптимизацией горизонта и присоединения к домену, введите:
ansible-playbook --ask-become-pass --tags "horizon, domain" optimize.yml
Переменные
Файл inventory содержит следующие переменные, необходимых для работы плейбука:
- horizon_agent - имя архива с дистрибутивом horizon_agent
- vhci_driver - имя архива с драйвером vhci
- v4l2loopback_driver - имя архива с драйвером v4l2loopback
- domain_name - имя домена для подключения
- domain_user - имя учетной записи для ввода в домен
- domain_password - пароль учетной записи для ввода в домен
- debug - установите в True для вывода расширенной информации от выполненных команд
Отличный блог и актуальная тема!
ОтветитьУдалитьБудут ли статьи на тему Horizon в связке с Астра линукс?
Формально Астра не поддерживается в Horizon и пока не было особого желания копаться в этой теме. У меня были мысли адаптировать playbook для кастомизации Астры или Альт под KVM гипервизоры и Spice, но это будет не скоро.
УдалитьАгент Horizon 8 поддерживает Астру!
Удалить