Поиск по сайту:

Установка Ubuntu Cloud в качестве удаленного рабочего стола с поддержкой RDP в автономной среде Openstack


На этой странице

  1. Автономная установка
  2. Загрузить облачный образ Ubuntu
  3. Создайте две виртуальные машины
  4. Проверьте IP-подключение
  5. Настройка SSH
  6. Установите Xfce4
  7. Установить XRDP
  8. Установите веб-браузеры

В этом руководстве мы будем развертывать хост Linux с поддержкой RDP, выступающий в качестве удаленного рабочего стола в среде с ограниченным доступом (без подключения к Интернету). Дополнительным требованием является то, что несколько пользователей могут использовать одни и те же учетные данные для этого хоста.

Для этой цели мы будем использовать два зеркальных экземпляра серверов Ubuntu Cloud, один в сети, а другой в автономном режиме, чтобы на автономном сервере можно было развернуть правильные пакеты. Кроме того, рабочий стол Xfce4 был выбран из-за возможности открытия нескольких сеансов для одного пользователя. На момент написания руководства Gnome не рассчитывал на эту функцию.

Автономная установка

Чтобы разрешить установку в автономной системе, мы будем развертывать идентичную систему в виртуальной виртуальной коробке онлайн, используя следующую последовательность команд для каждого пакета:

В онлайн-системе:

sudo apt-get install --download-only <package list>

Скопируйте пакеты из онлайн-каталога /var/cache/apt/archives на ПК (с помощью sftp-клиента или общей папки VirtualBox) и с ПК в автономную систему. Затем в обеих системах:

dpkg -i /var/cache/apt/archives/*.deb

Наконец, очистите apt-архивы:

apt-get clean

Скачать облачный образ Ubuntu

Используйте эту ссылку. Для OpenStack мы будем использовать расширение img, эквивалентное qcow2. Для VirtualBox нам нужна ova, которая уже содержит файл диска vmdk.

Создайте две виртуальные машины

В OpenStack:

Загрузить изображение для просмотра:

glance image-create --name "Ubuntu Cloud image" --file ubuntu-18.04-server-cloudimg-amd64.img --is-public False --container-format bare --disk-format qcow2

Создайте горячий шаблон, вот пример с одним фиксированным IP и дополнительным дисковым пространством:

heat_template_version: 2018-04-30

description: Remote Desktop deployment

resources:

port_vm:
   type: OS::Neutron::Port
   properties:
     network: <network name>
     fixed_ips:
        - subnet: <subnet name>
          ip_address: <ip address>

server:
   type: OS::Nova::Server
   properties:
     name: <instance name>
      flavor: <flavor name>
     availability_zone: <zone name>
     networks:
       - port: { get_resource: port_vm }

  new_volume:
     type: OS::Cinder::Volume
     properties:
       size: <disk space in MB>

   volume_attachment:
     type: OS::Cinder::VolumeAttachment
     properties:
       volume_id: { get_resource: new_volume }
       instance_uuid: { get_resource: server }

Создайте стек, экземпляр автоматически запустится:

heat stack-create -f <FILE> -e <FILE> <STACK_NAME>

Подключитесь к консоли, убедитесь, что виртуальная машина успешно загрузилась. Перезапустите с помощью Ctrl-Alt Del и нажмите Left-Shift, чтобы получить доступ к режиму восстановления и изменить пароль root.

В ВиртуалБоксе:

Импортируйте файл ova как новое устройство. Обязательно активируйте последовательный порт, он может остаться отключенным, он используется для обхода одного из шагов при инициализации облака. Кроме того, обязательно выберите адаптер сетевого моста и свяжите его с сетевым интерфейсом хоста, имеющим доступ в Интернет.

Загрузитесь с зажатым левым Shift и получите доступ к режиму восстановления GRUB. Там вы можете изменить пароль root на любой, который вы предпочитаете. На этот раз загрузитесь и войдите в систему как обычно.

Запустите parted, чтобы исправить данные раздела:

Примите, чтобы исправить GPT, затем используйте \resizepart, чтобы использовать все существующее пространство на диске:

Выйдите из parted и используйте resize2fs для настройки файловой системы:

Теперь df -h должен отображать доступные 10G.

Проверьте IP-подключение

Несмотря на то, что Openstack может предоставить правильный IP-адрес через DHCP, мы будем настраивать статический адрес в обеих средах. Создайте файл с расширением yaml в /etc/netplan, установите IP-адрес и шлюз соответственно:

network:
       version: 2
       renderer: networkd
       ethernets:
               enp0s3:
                       dhcp4: no
                       addresses: [192.168.1.100/24]
                       gateway4: 192.168.1.1
                       nameservers:
                               addresses: [192.168.1.1]

Примените новую конфигурацию:

netplan apply

Теперь подключение должно работать от виртуальной машины к шлюзу и от вашего ПК к обеим виртуальным машинам.

Как только в виртуальной машине VirtualBox будет установлено подключение к Интернету, обязательно обновите apt:

apt-get update

Обратите внимание, что если вы решите установить Gnome вместо рабочего стола Xfce4, вам нужно будет заменить networkd на NetworkManager, как только вы закончите эту установку.

Настроить SSH

Мы включим root-доступ по ssh. Отредактируйте файл /etc/ssh/sshd_config по умолчанию:

  • Включить все 3 ключа HostKey
  • Задайте для параметра PermitRootLogin значение yes.
  • Отключить аутентификацию на основе хоста
  • Включить незашифрованный пароль (PasswordAuthentication да, PermitEmptyPasswords нет)

Также проверьте /etc/ssh на наличие файлов hostkey, в VirtualBox они обычно отсутствуют. Сгенерируйте новые с помощью ssh-keygen:

ssh-keygen -f /etc/ssh/ssh_host_rsa_key -t rsa -N ""
ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key -t ecdsa -N ""
ssh-keygen -f /etc/ssh/ssh_host_ed25519_key -t ed25519 -N ""

Перезапустите службу:

service sshd restart

Теперь у вас должна быть возможность подключаться по ssh к новым виртуальным машинам. При желании вы можете сгенерировать пару закрытый/открытый ключ, чтобы заменить текстовый пароль.

Установите Xfce4

Это шаги по установке рабочего стола xfce4 в Ubuntu.

В ВиртуалБоксе:

apt-get update
apt-get install --download-only xfce4 xfce4-terminal gnome-icon-theme-full tango-icon-theme
dpkg -i /var/cache/apt/archives/*.deb

Затем скопируйте пакеты deb из /var/cache/apt/archives в виртуальную машину Openstack. Не забудьте почистить /var/cache/apt/archives.

В OpenStack:

dpkg -i /var/cache/apt/archives/*.deb
apt-get clean

После этого для двух виртуальных машин добавьте нового пользователя ubuntu и добавьте его в группу sudo:

adduser ubuntu
usermod -aG sudo ubuntu

Просто нажмите ENTER для всех вопросов, и все. Домашний каталог добавляется автоматически.

Установить XRDP

Измените пользователя на ubuntu, чтобы XRDP выполнил необходимую настройку в /home/ubuntu.

В ВиртуалБоксе:

sudo apt-get install --download-only xrdp
sudo dpkg -i /var/cache/apt/archives/*.deb

Скопируйте пакеты deb из /var/cache/apt/archives в виртуальную машину Openstack. Очистите /var/cache/apt/archives.

В OpenStack:

sudo dpkg -i /var/cache/apt/archives/*.deb
sudo apt-get clean

Настройте XRDP на обоих:

Отредактируйте /etc/xrdp/sesman.ini и установите Policy=UBDC. Это позволяет использовать несколько сеансов с одним и тем же именем пользователя.

Отредактируйте /etc/xrdp/startwm.sh, добавив startxfce4 в конец:

#!/bin/sh

if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi

unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4

Перезапустите службу XRDP:

sudo service xrdp restart

Установите веб-браузеры

Веб-браузеры должны быть добавлены в Xfce4. Найдите deb-файл Google Chrome в Интернете и установите его с помощью dpkg.

Вы можете получить Firefox непосредственно из репозиториев Ubuntu.

В ВиртуалБоксе:

sudo apt-get install --download-only firefox
sudo dpkg -i /var/cache/apt/archives/*.deb

Скопируйте пакеты deb из /var/cache/apt/archives в виртуальную машину Openstack. Очистите /var/cache/apt/archives.

В OpenStack:

sudo dpkg -i /var/cache/apt/archives/*.deb
sudo apt-get clean

Добавьте ярлыки для каждого браузера на панель задач и/или на рабочий стол.

Вот и все. Откройте несколько сеансов RDP на сервере и убедитесь, что все работает.

Ваше здоровье!