Installation d’Ubuntu Cloud en tant que bureau à distance compatible RDP dans un environnement Openstack hors ligne

Dans ce tutoriel, nous allons déployer un hôte Linux compatible RDP servant de bureau à distance dans un environnement à accès limité (pas de connectivité Internet). Une exigence supplémentaire est que plusieurs utilisateurs puissent partager les mêmes informations d’identification pour cet hôte.

Pour cela, nous utiliserons deux instances miroir de serveurs Ubuntu Cloud, l’une en ligne et l’autre hors ligne, afin que les paquets corrects puissent être déployés sur le serveur hors ligne. De plus, le bureau Xfce4 a été choisi en raison de sa capacité à ouvrir plusieurs sessions pour un seul utilisateur. Au moment où le tutoriel a été écrit, Gnome ne disposait pas de cette fonctionnalité.

Installation hors ligne

Pour permettre l’installation dans un système hors ligne, nous allons déployer un système identique dans une VirtualBox en ligne, en utilisant la séquence de commandes suivante pour chaque paquet :

Sur le système en ligne :

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

Copie les paquets depuis les archives en ligne /var/cache/apt/ vers le PC (en utilisant un client sftp ou un dossier partagé VirtualBox) et du PC vers le système hors ligne. Ensuite, sur les deux systèmes :

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

Enfin, nettoie les archives apt :

apt-get clean

Télécharge l’image du nuage Ubuntu

Utilise ce lien. Pour OpenStack, nous utiliserons l’extension img, équivalente à qcow2. Pour VirtualBox, nous avons besoin de l’ova, qui contient déjà un fichier disque vmdk.

Crée les deux machines virtuelles

Dans OpenStack :

Télécharge l’image sur glance :

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

Crée un modèle à chaud, voici un exemple avec une IP fixe et un espace disque supplémentaire :

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 }

Crée la pile, l’instance est automatiquement lancée :

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

Connecte-toi à la console, vérifie que la VM a bien démarré. Redémarre avec Ctrl-Alt Del et appuie sur Left-Shift pour accéder au mode de récupération et changer le mot de passe root.

Dans VirtualBox :

Importe le fichier ova comme une nouvelle appliance. Veille à activer un port série, il peut rester déconnecté, il est utilisé pour contourner l’une des étapes de l’initialisation du cloud. Veille aussi à sélectionner l’adaptateur réseau ponté et à l’associer à l’interface réseau de l’hôte qui a accès à Internet.

Démarre en appuyant sur la touche Maj gauche et accède au mode de récupération GRUB. Là, tu peux modifier le mot de passe root comme tu le souhaites. Démarre et connecte-toi normalement cette fois.

Exécute Parted pour corriger les données de la partition :

Partitionnement à l'aide de Parted

Accepte pour corriger GPT, puis utilise « resizeepart » pour utiliser tout l’espace existant sur le disque :

Redimensionner la partition

Quitte parted et utilise resize2fs pour ajuster le système de fichiers :

Quit parted

Maintenant, df -h devrait afficher 10G disponibles.

Vérifie la connectivité IP

Même si Openstack peut fournir la bonne adresse IP via DHCP, nous allons configurer une adresse statique dans les deux environnements. Crée un fichier avec une extension yaml dans /etc/netplan, configure l’adresse IP et la passerelle en conséquence :

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]

Applique la nouvelle configuration :

netplan apply

La connectivité devrait maintenant fonctionner de la VM à la passerelle et de ton PC aux deux VM.

Dès que la connectivité Internet est assurée dans la VM VirtualBox, assure-toi de mettre à jour apt :

apt-get update

Remarque : si tu choisis d’installer Gnome au lieu du bureau Xfce4, tu devras remplacer networkd par NetworkManager dès que tu auras terminé cette installation.

Configurer SSH

Nous allons activer l’accès ssh root. Modifie le fichier /etc/ssh/sshd_config par défaut :

  • Active les 3 HostKeys
  • Définis PermitRootLogin sur yes
  • Désactiver HostBasedAuthentication
  • Active le mot de passe en texte clair (PasswordAuthentication yes, PermitEmptyPasswords no)

Vérifie également dans /etc/ssh la présence des fichiers hostkey, dans VirtualBox ils sont généralement absents. Génère-en de nouveaux à l’aide de 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 ""

Redémarre le service :

service sshd restart

Tu dois maintenant être en mesure d’accéder par ssh aux nouvelles VM. Si tu préfères, tu peux générer une paire de clés privée/publique pour remplacer le mot de passe en clair.

Installer Xfce4

Voici les étapes pour installer le bureau xfce4 dans Ubuntu.

Dans 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

Copie ensuite les paquets deb de /var/cache/apt/archives dans la VM Openstack. N’oublie pas de nettoyer /var/cache/apt/archives.

Dans Openstack :

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

Ensuite, pour les deux VMs, ajoute un nouvel utilisateur ubuntu et ajoute-le au groupe sudo :

adduser ubuntu
usermod -aG sudo ubuntu

Clique simplement sur ENTRÉE pour toutes les questions et c’est tout. Le répertoire personnel est automatiquement ajouté.

Installe XRDP

Change l’utilisateur en ubuntu pour que XRDP effectue la configuration requise dans /home/ubuntu.

Dans VirtualBox :

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

Copie les paquets deb de /var/cache/apt/archives vers la VM Openstack. Nettoie /var/cache/apt/archives.

Dans Openstack :

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

Configure XRDP sur les deux :

Modifie /etc/xrdp/sesman.ini et définit Policy=UBDC. Cela permet d’avoir plusieurs sessions avec le même nom d’utilisateur.

Modifie /etc/xrdp/startwm.sh, en ajoutant startxfce4 à la fin :

#!/bin/sh

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

unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4

Redémarre le service XRDP :

sudo service xrdp restart

Installer les navigateurs Web

Les navigateurs Web doivent être ajoutés à Xfce4. Cherche Google Chrome deb sur Internet et installe-le en utilisant dpkg.

Tu peux obtenir Firefox directement à partir des dépôts Ubuntu.

Dans VirtualBox :

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

Copie les paquets deb de /var/cache/apt/archives dans la VM Openstack. Nettoie /var/cache/apt/archives.

Dans Openstack :

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

Ajoute des raccourcis pour chaque navigateur dans la barre des tâches et/ou sur le bureau.

Et c’est tout. Ouvre plusieurs sessions RDP sur le serveur et vérifie que tout fonctionne.

Santé !

Vous aimerez aussi...