Accueil | Rubriques | Essais de logiciels

Open Virtual Desktop (ulteo)

Ulteo est un système de connexion à des services de Desktop à distance. Un amalgame de concept comme NX, LTSP,  SSH, RDC, VNC...

En gros, ça démarre facilement en réseau local mais l'accès par l'Internet est difficile et la documentation n'est pas encore complète. Une prochaine version, semble-t-il, facilitera cet aspect du déploiment.

En général, les ports 80 et 443 sont déjà assignés à des machines sur un réseau. L'installation de Ulteo n'a pas prévu ce fait et demande l'utilisation de ces ports.

De plus, le port 443 est utilisé pour le SSH, et  proxypass n'y peut pas grand chose. Il faut alors se lancer dans un dédale de réaffectation des ports...

Bien que la documentation recommande d'installer le serveur de session et le serveur d'applications sur une même machine, il est peut-être mieux de faire le montage sur 2 machines afin de mieux assimiler les relations entre les deux et de pouvoir gérer les ports plus clairement.


 

Mes esssais ont été faits sur vmware.

Il y a 2 ou 3 machines à gérer:

  1. Session Manager (P-IV, 512MB, 20GB)
  2. Application Server (Dualcore, 1GB pour 20 usagers)
  3. Windows Server

La machine du "session manager" sert de frontale et redirige vers les applications disponibles dont on a autorisé l'accès.

La machine du "application server" fournit des postes de travail comme en NX avec OpenOffice et de l'espace disque.

Utilisation des ports:

  1. par session manager:
    • 80 (HTTP)
      • AppS <-> client 
      • AppS <-> SessionManager
  2. par application server :
    • 80 (HTTP)
      • AppS <-> client 
      • AppS <-> SessionManager
    • 443 (SSH tunnel)
      • AppS <-> client

L'utilisation

La connexion distance au "session manager"se fait en Java. Le rendu visuel, une fois connecté, n'a pas été très excitant. C'est un peu flou... je dirais.

Le temps-réponse est correct en réseau local. Mais le Desktop est très limité à la bureautique. Bien que suffisant pour naviguer, ça fait un peu netbook.

Je ne vois pas bien en quoi ce projet peut enrichir l'offre de services sur un réseau. J'imagine que le télétravail serait amélioré, ou encore que des postes de travail d'appoint seraient facilement accessibles... C'est pas clair!

 

Équipement requis selon la documentation:

Servers for OVD Application servers:
x86 servers w/ dualcore or quad CPU. 1GB or more RAM per 20 concurrent end-users.
Supported Host OS: Ubuntu 8.04.1, RHEL 5.2, Centos 5.2, Fedora 10 + generic Linux install.

Servers for Windows applications:
Windows 2003 Server+Terminal Services on any hardware.

Servers for OVD Session Manager:
any Pentium class x86 server w/512MB or more RAM.
Host OS: Ubuntu 8.04.1, RHEL 5.2, Centos 5.2, Fedora 10 + generic Linux install.

Client:
Sun Java 1.5/1.6 enabled browser:
Firefox 2+, Internet Explorer 6+, any platform.

User directory servers:
Active Directory on Windows Server, or LDAP server are currently supported.

Fileservers:
CIFS, WebDAV(*)

L'installation

Il manque trop d'information sur la logique ou le concept de ces machines. Mais du côté installation, c'est très bien documenté. Il faut toutefois savoir que de gros téléchargements se font à certains moments du montage (2 fois 520MB).

Voir la doc en ligne ici.

Le DNS doit être géré au préalable parce que les machines doivent s'appeler une l'autre. Sinon, suivre la méthode et les indications avec 127.0.0.1

Le montage le plus simple (en apparence) est de monter le gestionnaire de session sur la même machine que le serveur d'applications (ou vice versa!).

Le montage à partir du DVD.iso n'a pas fonctionné. Il se pourrait que ma machine virtuelle ait manqué de ressources. Il y a souvent des commentaires de déception sur le forum (fin avril 2009).

Dans /opt/ulteo/etc/ulteo-ovd.conf, changez :
SERVERNAME=127.0.0.1
SESSION_MANAGER_URL=http://127.0.0.1/sessionmanager

Parefeu

La documentation et le forum jettent une confusion totale pour ce qui est des ports à ouvrir. En principe, le serveur de sessions doit être accessible sur le port 80. On peut lire aussi que les ports 443 et 22 doivent être ouverts, mais on ne dit pas lequel des serveurs en a besoin.

Évidemment, dans le cas oû ces ports sont déjà assignés à des machines, l'ajout de ce projet devient difficile, voire impossible, pour un accès par le Net.

Le forum indique cette méthode pour gérer les ports:

Exemple avec le port 8080:

  1. changer les ports de Apache:
    • Listen 8080

      <IfModule mod_ssl.c>
          Listen 8443
      </IfModule>

  2. éditer "/opt/ulteo/usr/share/ulteo-ovd/functions.d/webservices.sh" en ajoutant le port 8080 dans la fonction "webservices_server_request":
    /etc/init.d/ulteolocal args="status=$1&fqdn=${SERVERNAME}&web_port=8080"
  3. Redémarrer avec /etc/init.d/ulteo-ovd restart
  4. Dans le session manager, configurer le port du serveur d'applis avec 8080
  5. Un reboot semble être nécessaire malgré tout (?)
webservices_server_request() {
    local args="status=$1&fqdn=${SERVERNAME}&web_port=8080"
    local request="${SESSION_MANAGER_URL}/webservices/server_status.php?${args}"

    log_INFO "webservices_server_request: doing $request"
    $webservices_wget $request -O /dev/null -o /dev/null
} 

 

Changer de port SSH

on Application Server :

modify the /opt/ulteo/etc/ssh/sshd_config to change the binded Port
(first line of the file) (for example add 6666)

on Session manager :

modify the file /usr/share/ulteo/sessionmanager/index.php at the end of file you have the applet parameter (starting with "<applet width="1" height="1">")
change
"<param name="ssh.port" value="443,993,995" />"
to
"<param name="ssh.port" value="443,993,995,6666" />

L'enregistrement des serveurs

Pour qu'un serveur d'applications soit pris en charge par le serveur de sessions, il faut "l'enregistrer" dans le système mais il n'y a pas de document sur ce processus. Qu'est-ce qui fait qu'une machine va apparaître ou pas dans la liste des serveurs "enregistrables"? Mystère!

Notes de montage sur un serveur Ubuntu...

# Session Manager   : LAMP
# Application Server: Desktops

# enable root
sudo su
passwd
su

# LAMP: http://doc.ubuntu-fr.org/lamp

apt-get install \
    apache2  \
    apache2-doc  \
    mysql-server  \
    php5  \
    libapache2-mod-php5  \
    php5-mysql

nano /etc/apache2/mods-enabled/php5.conf
    AddType application/x-httpd-php .php5

nano /etc/apache2/mods-enabled/dir.conf
    DirectoryIndex index.php5

nano /etc/apache2/apache2.conf
    ServerName www.monsite.tld

/etc/init.d/apache2 reload


# mysql: root passw = MIIDtzCADCBnTELMAkGA1UEBhMC
# reset passw: sudo dpkg-reconfigure mysql-server-5.0

mysql -u root -p

# db
create database ulteo_sm;
exit

# ==================
# Session Manager
# ==================

echo "deb http://archive.ulteo.com/ulteo/ovd ovd-polaris main" \
  >> /etc/apt/sources.list
apt-get update

# create admin account during this part
apt-get install ulteo-ovd-session-manager

# setup: adminulteo mot_de_passe
http://ulteo.server.net/sessionmanager

# ... download +500MB

# ==================
# Application Server
# ==================

# enable root
sudo su
passwd
su

echo "deb http://archive.ulteo.com/ulteo/ovd ovd-polaris main" \
  >> /etc/apt/sources.list
apt-get update
apt-get install ulteo-ovd

# FQDN
ulteo.server.net
or 127.0.0.1 if on same machine

# ... download +500MB

# after reboot:
/etc/init.d/ulteo-ovd restart

# restart anytime:
chroot /usr/share/ulteo /etc/init.d/ulteo-ovdd restart

Suite

Il me reste à refaire un nouveau montage en vue d'une mise en production et à incorporer une machine XP pour inclure le RDC dans les applications.

À suivre...