Установка Ubuntu Cloud в качестве удаленного рабочего стола с поддержкой RDP в автономной среде Openstack
На этой странице
- Автономная установка
- Загрузить облачный образ Ubuntu
- Создайте две виртуальные машины
- Проверьте IP-подключение
- Настройка SSH
- Установите Xfce4
- Установить XRDP
- Установите веб-браузеры
В этом руководстве мы будем развертывать хост 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 на сервере и убедитесь, что все работает.
Ваше здоровье!