Instalación de Ubuntu Cloud como escritorio remoto habilitado para RDP en un entorno Openstack fuera de línea

Particionamiento usando parted

En este tutorial, implementaremos un PDRHost Linux habilitado que sirve como escritorio remoto en un entorno de acceso limitado (sin conectividad a Internet). Un requisito adicional es que varios usuarios puedan compartir las mismas credenciales en este host.

Para ese propósito, usaremos dos instancias reflejadas de servidores Ubuntu Cloud, una en línea y otra fuera de línea, para que los paquetes correctos puedan implementarse en el servidor fuera de línea. Además, se eligió el escritorio Xfce4 debido a su capacidad de abrir múltiples sesiones para un solo usuario. Hasta el momento en que se escribió el tutorial, Gnome no contaba con esta función.

Instalación fuera de línea

Para permitir la instalación en un sistema fuera de línea, implementaremos un sistema idéntico en un VirtualBox en línea, utilizando la siguiente secuencia de comandos para cada paquete:

En el sistema en línea:

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

Copie paquetes desde /var/cache/apt/archives en línea a la PC (usando un cliente sftp o una carpeta compartida de VirtualBox) y desde la PC al sistema fuera de línea. Entonces, en ambos sistemas:

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

Finalmente, limpie los archivos apt:

apt-get clean

Descargar la imagen de la nube de Ubuntu

Utilizar este Enlace. Para OpenStack, usaremos la extensión img, equivalente a qcow2. Para VirtualBox, necesitamos el óvulo, que ya contiene un archivo de disco vmdk.

Crear las dos máquinas virtuales

En OpenStack:

Subir imagen para echar un vistazo:

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

Cree una plantilla caliente, aquí hay un ejemplo con una IP fija y espacio en disco adicional:

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 }


Cree la pila, la instancia se lanza automáticamente:

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

Conéctese a la consola, asegúrese de que la VM se haya iniciado correctamente. Reinicie con Ctrl-Alt Supr y presione Left-Shift para acceder al modo de recuperación y cambiar la contraseña de root.

En VirtualBox:

Importe el archivo ova como un nuevo dispositivo. Asegúrese de activar un puerto serie, puede permanecer desconectado, se usa para omitir uno de los pasos durante la inicialización de la nube. Además, asegúrese de seleccionar el adaptador de puente de red y asociarlo a la interfaz de red del host que tiene acceso a Internet.

Arranque con Left-Shift presionado y acceda al modo de recuperación de GRUB. Allí puede cambiar la contraseña de root a lo que prefiera. Arranque e inicie sesión normalmente esta vez.

Ejecute parted para corregir los datos de la partición:

Particionamiento usando parted

Acepte arreglar GPT, luego use «resizepart» para hacer uso de todo el espacio existente en el disco:

Cambiar el tamaño de la partición

Salga de parted y use resize2fs para ajustar el sistema de archivos:

dejar de separarse

Ahora df -h debería mostrar 10G disponibles.

Comprobar conectividad IP

Aunque Openstack puede proporcionar la dirección IP correcta a través de DHCP, configuraremos una estática en ambos entornos. Cree un archivo con extensión yaml en /etc/netplan, configure la dirección IP y la puerta de enlace en consecuencia:

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]

Aplicar la nueva configuración:

netplan apply

Ahora la conectividad debería funcionar desde la máquina virtual hasta la puerta de enlace y su PC a ambas máquinas virtuales.

Tan pronto como se proporcione conectividad a Internet en VirtualBox VM, asegúrese de actualizar apt:

apt-get update

Tenga en cuenta que, si opta por instalar Gnome en lugar del escritorio Xfce4, deberá reemplazar networkd por NetworkManager tan pronto como termine esta instalación.

Configurar SSH

Estaremos habilitando el acceso ssh raíz. Edite el /etc/ssh/sshd_config predeterminado:

  • Habilite las 3 HostKeys
  • Establezca PermitRootLogin en sí
  • Deshabilitar autenticación basada en host
  • Habilitar contraseña de texto claro (PasswordAuthentication sí, PermitEmptyPasswords no)

También verifique /etc/ssh por la presencia de archivos de hostkey, en VirtualBox generalmente faltan. Genere otros nuevos usando 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 ""

Reiniciar el servicio:

service sshd restart

Ahora debe poder conectarse mediante ssh a nuevas máquinas virtuales. Si lo prefiere, puede generar un par de claves privadas/públicas para reemplazar la contraseña de texto claro.

Instalar Xfce4

Estos son los pasos para instalar el escritorio xfce4 en Ubuntu.

En VirtualBox:

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

Luego copie los paquetes deb de /var/cache/apt/archives a Openstack VM. No olvides limpiar /var/cache/apt/archives.

En OpenStack:

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

A continuación, para las dos máquinas virtuales, agregue el nuevo usuario ubuntu y agréguelo al grupo Sudo:

adduser ubuntu
usermod -aG sudo ubuntu

Simplemente haga clic en ENTER para todas las preguntas y eso es todo. El directorio de inicio se agrega automáticamente.

Instalar XRDP

Cambie el usuario a ubuntu para que XRDP realice la configuración requerida en /home/ubuntu.

En VirtualBox:

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

Copie paquetes deb de /var/cache/apt/archives a Openstack VM. Limpie /var/cache/apt/archives.

En OpenStack:

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

Configure XRDP en ambos:

Edite /etc/xrdp/sesman.ini y configure Policy=UBDC. Esto permite múltiples sesiones con el mismo nombre de usuario.

Edite /etc/xrdp/startwm.sh, agregando startxfce4 al final:

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

unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4

Reinicie el servicio XRDP:

sudo service xrdp restart

Instalar navegadores web

Los navegadores web deben agregarse a Xfce4. Busque Google Chrome deb en Internet e instálelo usando dpkg.

Puedes obtener Firefox directamente desde los repositorios de Ubuntu.

En VirtualBox:

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

Copie paquetes deb de /var/cache/apt/archives a Openstack VM. Limpie /var/cache/apt/archives.

En OpenStack:

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

Agregue accesos directos para cada navegador en la barra de tareas y/o escritorio.

Y eso es. Abra múltiples sesiones RDP en el servidor y verifique que todo funcione.

¡Salud!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *