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 *