RVC : Ruby vSphere Console part 1

Il y a quelques jours Rich LANE de VMwware publiait sur le site communautaire VMware Communities une annonce concernant une Console vSphere en Ruby. Les sources du projet sont disponibles sur GitHub. Je ne résiste pas à l’occasion de faire le tour du propriétaire en votre compagnie.

Dans un premier temps l’installation ;)
 Je suis actuellement sous Ubuntu 11.04 et j’utilise RVM pour tout ce qui est relatif à Ruby. Pour mémoire RVM permet d’utiliser plusieurs versions de Ruby (Ruby 1.8.7, Ruby 1.9.2, JRuby ….) mais aussi de créer des Gemsets ou des paquets de Gems pour se faciliter la vie, éviter les collisations entre Gems et organiser son travail. RVM c’est du bonheur :)

Pour test RVC j’ai utilisé  Ruby 1.9.2 et j’ai créé un gemset spécifique appelé « vmware ».

:~$ ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [i686-linux]
~$ rvm gemset create vmware
'vmware' gemset created (/home/yguilloux/.rvm/gems/ruby-1.9.2-p180@vmware).
~$ rvm gemset list

gemsets for ruby-1.9.2-p180 (found in /home/yguilloux/.rvm/gems/ruby-1.9.2-p180)
global
nagios
=> vmware

L’installation de RVC est simplissime

~$ gem install rvc
~$ gem list

*** LOCAL GEMS ***

backports (2.1.0)
builder (3.0.0)
ffi (1.0.7)
highline (1.6.1)
nokogiri (1.4.4)
rake (0.8.7)
rbvmomi (1.2.3)
rvc (1.3.6)
trollop (1.16.2)
zip (2.0.2)

On remarquera que l’installation de RVC provoque l’installation de tout un tas de dépendances. La plus importante est rbvmomi. Rbvmomi est la bibliothèque Ruby qui attaque l’API vSphere. Avec rbvmomi on peut éteindre un VM en Ruby de façon programmative. Toutes les opérations possibles avec l’API Java le sont alors en Ruby via Rbvmomi. Mais cela est une autre histoire …

Connectons-nous à un vCenter via RVC

rvc "DOMAINE\administrateur"@adresse_ip_vcenter
SSL certificate verification failed. Connect anyway (y/n)? y
password:
0 CRPF-DC (datacenter)
/adresse_ip_vcenter>

La syntaxe de la commande ressemble à celle de SSH. On protège le backsplash de la syntaxe classique « DOMAINE\UTILISATEUR » avec des guillemets. Après une vérif SSL et un échec (Il faut que je m’occupe de ces certificats ;) on arrive sur le pseudo-système de fichier que propose RVC. En effet tous les objets vSphere sont présentés comme les fichiers/dossiers d’un pseudo système de fichier. Ainsi on a :

/adresse_ip_vcenter> cd CRPF-DC/
/adresse_ip_vcenter/CRPF-DC> ls
0 host/
1 network/
2 datastore/
3 vm/
/adresse_ip_vcenter/CRPF-DC> cd vm
/adresse_ip_vcenter/CRPF-DC/vm> ls
0 VCENTER: poweredOn
1 vFS: poweredOff
2 GST-AUTOCOM.COS: poweredOff
3 vCITRIX: poweredOn
4 vACTIVE DIRECTORY: poweredOn
5 EON: poweredOn
6 VGLPI: poweredOn
7 vEXCHANGE: poweredOn
/adresse_ip_vcenter/CRPF-DC/vm>

On navigue dans l’arborescence via les classiques « ls » et « cd ». Les pilliers de vSphere sont présents, le datacenter, les hôtes ESX/ESXi via le répertoire hosts, les réseaux et les vSwitchs via le répertoire network, les datastore et les VMs évidemment !
Dans le prochain billet je détaillerais tout ce qu’offre RVC en termes d’opérations sur les VMs. Toutefois un petit bonus pour la fin : une connexion VNC vers une VM .
Rien de bien compliqué.

/adresse_ip_vcenter/CRPF-DC/vm> vnc.view vCITRIX
VNC already enabled
spawning /usr/bin/vinagre
/adresse_ip_vcenter/0:5921 password: 8SWNOjzE
/adresse_ip_vcenter/CRPF-DC/vm

Un simple vnc.view suivis du nom de la vm suffit. Mon client VNC est vinagre sous UBUNTU . RVC le lance pour moi puis me propose le mot de passe de connexion.

RVC & VNC


J’ai délaissé ce Blog

Une bonne résolution de rentrée … Animer ce blog !


Test avec ScreenR

Il y a déjà plusieurs j’ai découvert Screenr. Maintenant voici un petit test pour incorporer une vidéo Screenr sur ce Blog:


Après Rails … Django

Après une initiation à Rails et un mashup Rails/GoogleMaps pour la DDASS77, je reviens à mes premiers amours Python et donc le framework Django pour le développement Web.  J’ai beaucoup appris avec Rails: le paradigme MVC, AJAX, la programmation par test, DRY (Dont Repeat Yourself) et REST.

Au delà des « buzzwords » et des « geekeries » ,  cette expérience m’a fait appréhender l’esprit du développement Web moderne. Et pour un RSI l’important est d’abstraire toute compétence concrète acquise dans un contexte pour l’appliquer dans un autre: du Benchmarking somme toute.  Je suis de plus en plus  » DRY »  au quotidien  ne serait ce que  pour mon « reporting ».

Toutefois cette expérience n’est pas qu’une réussite :

  1. mon mashup Rails/GoogleMaps n’est pas utilisé faute d’une personne pour animer le réseau qu’il était sensé irriguer.
  2. Je n’ai pas réussi à utiliser Ruby et Rails de façon satisfaisante en dehors du champ du développement Web . Même si j’ai réussi à greffer une moulinette Ruby pour mes stats Qualité à notre outils de Helpdesk GLPI,  mes tentatives concernant LDAP,  SSH et l’admin-sys en général sont plutôt décevantes.

Alors s’il faut plutôt chercher l’origine de ces demi-succès dans mon inexpérience en Ruby et certaines lacunes théoriques, j’y voie aussi une origine liée à l’écologie autour de Rails.  Le succès de Ruby est fortement lié au succès de Rails.  Sans Rails  et son rayonnement, Ruby aurait conservé encore longtemps son caractère confidentiel.  Et pour les script d’administration système cela se  ressent. Même s’il existe des projets pur Ruby innovant dans le domaine l’administration système,  Puppet et Capistrano par exemple.  Même si ces projets démontrent  les fortes capacités de Ruby en matière de scripting pour l’admin-sys, le développement  de scripts  pour mon activité d’admin-sys  a été laborieux.

Concernant  LDAP  par exemple il y a foison de modules disponibles,  mais aucun ne semble pleinement abouti.   ActiveLDAP , par exemple, mimique le fonctionnement d’ActiveRecord dans le contexte d’une connexion à un annuaire LDAP, j’ai trouvé sa documentation confuse et verbeuse. Elle semble avoir  évolué récemment;  la situation s’est peut-être améliorée.

Concernant SSH il existe deux versions concurrentes(?) du projet Net::SSH la V1.X et la V2.x.  Paradoxalement la version 2 « semble » offrir moins de possibilité  que la 1.x. :( Même si la documentation est  longue et fournie rien n’est explicite. Plus généralement peu de blogs ou de tutos de qualité sur le sujet de Ruby et l’adminsys sont disponibles.  Par rapport à l’abondance et la qualité des blogs,  docs et autre tutos que l’on trouve à propos de Rails, les ressources à propose de l’admin sys apparaissent bien maigres.

Rails semble agir  comme un trou noir.  Son pouvoir d’attraction, sa trop forte dominance  nuisent à l’aura et  au développement des autres projets Ruby. Faut-il voir dans la fusion de Rails avec Merb , l’autre framework Web en ruby,  un bien ? Ou à l’instar de certaines « fusions/acquisitions »   y voir une preuve de la  » sur dominance » du framework ?

Python lui s’était déjà imposé  longtemps avant Django .  Quand Django apparaît en 2005,  une écologie riche pré-existe dans le monde Python que se soit dans le domaine du développement Web avec Zope et Plone, mais aussi dans le champ de l’adminsys , du développement de client « lourd » avec PyQt et du développement réseau avec Twisted.  Django lui  n’est pas seul Pylons et Turbogears sont de très sérieux concurrents.

C’est  pour moi ce qui fait toute la différence , cela se ressent dans les documentations des projets et cela motive mon passage à Python/Django.


Crash boum RAID 5 et Apt-get install samba !

J’imaginais mon blog plein de pensées de haute volée sur le BPM le SOA , la gestion des Processus dans le cadre d’une démarche qualité, l’urbanisation de notre SI . Et voilà qu’un contrôleur SCSI se rappelle à mon bon souvenir. Qu’un array tombe. Qu’une Etch se plante. Que mes utilisateurs et donc moi même Responsable du Système d’Information et plus prosaïquement de l’Informatique, suis dans la pannade complète …
Et là Debian vient à mon secours avec le « simple is beautiful » incarné.

Apt-get install samba les amis !


Docasu

Je consulte souvent , bien qu’irrégulièrement, le forum francophone Alfresco.  Un soir de surf je suis tombé sur un post présentant une interface Ajax remplaçant le client web livré en standard avec Alfresco. Ce petit bijou s’appelle Docasu . Docasu est développé par Optaros la société qui emploie Jeff POTTS dont le blog ecmarchitect.com est une référence dans le monde Alfresco. Jeff a aussi commit le « Afresco Developer Guide » . Joli bouquin de 500 pages trônant sur ma table de nuit.

Je vais traiter dans une serie de billets mes expérimentations avec Docasu et en particulier sa traduction en français.

docasu


Un premier mot

Pourquoi ce blog ?
Au delà du nombrilisme propre à la bloggosphère. Exposer, expliciter le quotidien, mon quotidien permet certainement de mieux le comprendre. Et quand il s’agit de son quotidien professionnel c’est le moyen de lui donner une forme.


Suivre

Recevez les nouvelles publications par mail.