Vous regardez une version antérieure (v. /display/~p0692012/Laboratoire+informatique+virtuel+-+IsThereAnyFreeDesktop) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 7) afficher la version suivante »

La crise sanitaire causée par la maladie à coronavirus (COVID-19) bouleverse la façon dont sont offerts certains services universitaires, dont l’accès aux laboratoires informatiques.
Ces laboratoires permettent, en temps normal, de donner accès à des logiciels parfois payants, dans un environnement uniforme, stable et contrôlé. Malheureusement, les licences acquises pour les laboratoires ne permettent pas de transférer ces licences sur les postes personnels de la communauté desservie. De plus, la personnalisation de « l’expérience utilisateur » effectuée sur les postes des laboratoires pour la réalisation d’activités pédagogiques proposées par les enseignants est parfois difficilement transférable sur les environnements personnels des étudiants.

Cette page a donc pour objectif de décrire une solution à la fois simple, open source et libre de droits (https://creativecommons.org/licenses/by-nc/4.0/), pour rendre disponible à la communauté universitaire les postes physiques d’un laboratoire informatique : IsThereAnyFreeDesktop (que la communauté francophone m’excuse pour ce nom anglais; les joueurs y verront une allusion à un site web qui leur est probablement familier).

Il existe bien entendu de nombreuses autres solutions, comme reproduire cet environnement dans une infrastructure VDI ou DaaS qui gère déjà nativement la disponibilité des postes et l’attribution aléatoire de places dès qu'un usager accède au service. Cependant, l’objectif ici est de rendre disponible une infrastructure déjà existante, à coût nul ou moindre.

Principe de base de la solution proposée

La solution repose sur 2 composantes :

  • L’activation du Bureau à distance (RDP) sur les postes du laboratoire.
  • Un site web sur lequel est affichée une liste des postes disponibles.

L’applicatif proposé par IsThereAnyFreeDesktop repose sur un environnement simple et très courant, c’est-à-dire l’utilisation du langage PHP et d’une base de données dans le SGBD MySQL pour le site web.

Ensuite, un ensemble de scripts s’exécutant sur les postes lors des 4 évènements suivants mettent à jour le site web :

  • Extinction du poste ou ouverture de session : lorsque ces évènements sont déclenchés, un script informe le site web que le poste est indisponible.
  • Démarrage du poste ou fermeture de session : à l’inverse, lorsque ces évènements sont déclenchés, un script informe le site web que le poste est de nouveau disponible.

Mise en œuvre de la solution proposée

Serveur web

La solution a été mise en œuvre avec succès dans au moins deux laboratoires de l’Université de Montréal : avec l’utilisation d’un serveur Windows (IIS10, + PHP 7.4.x + MySQL 5.6.x) dans un premier cas, et sur un serveur Linux (Debian + Apache) dans le deuxième.

Pour l’installation sur votre serveur :

  1. Décompressez le contenu du dossier « Serveur » dans l’emplacement de votre choix dans la structure de votre site web hébergé sur votre serveur.
  2. Créez un compte utilisateur et une base de données dans MySQL (vous pouvez importer le fichier INSTALL.sql pour créer la structure de la table).
  3. Ajoutez dans votre table les noms des postes de travail de votre laboratoire à rendre disponible sur le site web.
  4. Configurez la ligne de connexion MySQL $bdd et les autres variables disponibles dans le fichier LAB_config.php.

Quelques recommandations supplémentaires, mais facultatives :

  1. Intégrez le visuel (gabarit) de votre site web au fichier IsThereAnyFreeDesktop.dwt.
  2. Activez le HTTPS sur le serveur web, par exemple avec un certificat Let’s Encrypt.
  3. Sécurisez l’accès à la liste des postes de votre site web par un mécanisme d’authentification.

Postes de travail

Pour l’installation sur vos postes de travail :

  1. Placez le contenu du dossier « Station » dans un dossier du poste.

  2. Configurez l’URL vers le fichier statut.php dans les 4 scripts startup.bat, shutdown.bat, login.bat et logoff.bat .
  3. Activez le Bureau à distanceselon la méthode de votre choix (GPOmodification du registre, etc.).

  4. Peuplez le groupe local des postes « Utilisateurs du Bureau à distance » avec les groupes ou les comptes des utilisateurs autorisés à se connecter, encore une fois peuplé selon la méthode de votre choix (script, GPO, etc.).

  5. Gestion des événements : pour la gestion de ces événements, nous proposons l’utilisation des GPO (géré par le domaine ou en local) pour appeler les 4 scripts :
    1. startup.bat : Configuration de l'ordinateur\Paramètres Windows\Scripts (démarrage/arrêt)\Démarrage
    2. shutdown.bat : Configuration de l'ordinateur\Paramètres Windows\Scripts (démarrage/arrêt)\Arrêt du système
    3. login.bat : Configuration utilisateur\Paramètres Windows\Scripts (ouverture/fermeture de session)\Ouverture de session
    4. logoff.bat : Configuration utilisateur\Paramètres Windows\Scripts (ouverture/fermeture de session)\Fermeture de session
    5. Si ce n’est déjà fait, désactivez le délai pour l’exécution des scripts.

  

Quelques recommandations supplémentaires, mais facultatives :

  1. Mettez en place un mécanisme pour fermer automatiquement les sessions abandonnées, par exemple avec Lithnet Idle Logoff.
  2. Mettez en place un mécanisme pour redémarrer les postes éteints (Wake-On-Lan ou planifiez un démarrage automatique par le BIOS sur les appareils HP).
  3. Configurez le menu Démarrer pour masquer les options « Arrêter », « Redémarrer » et « Déconnecter » (pour ne laisser que l’option de fermeture de session « Se déconnecter). Par GPO, ces modifications correspondent aux options suivantes :

    1. Configuration de l’ordinateur\Modèles d’administration\Menu Démarrer et barre des tâches\Supprimer et empêcher l’accès aux commandes Arrêter, Redémarrer, Mettre en veille et Mettre en veille prolongée

    2. Configuration de l’ordinateur\Modèles d’administration\Composants Windows\Services Bureau à distance\Hôte de la session Bureau à distance\Environnement de session à distance\Supprimer l’élément « Déconnecter » de la boite de dialogue Arrêt

Réseau (VPN)

Cette étape consiste à vous assurer que votre réseau permettra à vos utilisateurs de rejoindre les postes de travail dans votre intranet, par exemple à l’aide d’une connexion sécurisée VPN.

Documentation pour les utilisateurs

Vous pouvez vous inspirer de la documentation à l'intention de nos utilisateurs : Laboratoire d'informatique virtuel.

IsThereAnyFreeDesktop – Édition UdeM

Cette page contient quelques remarques supplémentaires et spécifiques pour une implantation à l’UdeM : 🔒 IsThereAnyFreeDesktop – Édition UdeM (accès réservé aux membres de CORELAB et des TI).

Nous remercier?

Ce projet vous a été utile et vous souhaitez nous remercier? Contribuez aux Bourses aux étudiants de l'EBSI ou au fonds des Amis de l'EBSI. Merci à l’avance!

Remerciements

Merci aux différentes personnes qui ont apporté des corrections de bogues et idées à intégrer au projet : Simon Lefrançois (FAS, géographie), Djamel Hadjeres (Faculté de médecine), etc.

Téléchargement et notes de mise à jour

  • v2.5 (20200529)
    • La page de la liste des postes se rafraîchit toutes les 30 secondes.

    • Autres simplifications du code.

    • Suppression des liens « Mac » et « PC » pour un seul et unique lien « Se connecter » utilisant le fichier RDP.

  • 2.4 (20200506)
    • Ajout d’une colonne « reserve » dans la base de données, permettant de réserver un poste à l’usage exclusif d’une personne; si le poste est réservé, il ne sera visible qu’à la personne concernée ou aux administrateurs (nécessite un processus d’authentification, comme dans la version UdeM).

    • Le code HTML a été déplacé dans un fichier à part (pour répondre à un besoin interne).

  • 2.3 (20200415)
    • Fichier RDP (pour Windows) généré côté client par JavaScript et non plus côté serveur par PHP.

    • Ajout d’une colonne « commentaire ».

    • Quelques correctifs et améliorations.
  • 2.2 (20200327)
    • Première version publique
  • 2.1 (20200326)
    • Correction de quelque bogues
  • 2 (20200326)
    • La liste des postes offre maintenant un lien permettant d’ouvrir directement le client RDP (Windows ou Mac)
  • 1 (20200325)
    • Première version en place à l'EBSI
  • Aucune étiquette