Les guerres d'un Responsable Informatique

Vous êtes passionnés comme moi de machines basse-consommation, ARM, Atom : rendez visite à mon partenaire !

SDK Ruby pour VMware vSphere API

lundi 28 mars 2011 à 09:30 | Virtualisation
Ruby API pour VMware

VMware propose depuis longtemps maintenant, les SDK Java et Perl pour l'API de VMware vSphere. Rich Lane a développé un SDK Ruby pour interagir avec l'API de VMware vSphere 4.1 !

RbVmomi est une interface Ruby pour l'API vSphere. Comme les SDK Perl ou Java, ce SDK Ruby peut être utilisé pour piloter des serveurs ESXi et des serveurs VirtualCenters.

La gem Ruby correspondant à ce SDK pour VMware s'appelle RbVmomi. Pour l'installer dans son système de développement Ruby, cette commande suffit:

gem install rbvmomi
Passons à un exemple simple d'utilisation, la mise en marche d'une VM dans un datacenter :

require 'rbvmomi' vim = RbVmomi::VIM.connect host: 'foo', user: 'bar', password: 'baz' dc = vim.serviceInstance.find_datacenter("mydatacenter") or fail "datacenter not found" vm = dc.find_vm("myvm") or fail "VM not found" vm.PowerOnVM_Task.wait_for_completion

Un exemple de clonage de VM :

#!/usr/bin/env ruby require 'trollop' require 'rbvmomi' require 'rbvmomi/trollop' VIM = RbVmomi::VIM opts = Trollop.options do banner <<-EOS Clone a VM. Usage: clone_vm.rb [options] VIM connection options: EOS rbvmomi_connection_opts text <<-EOS VM location options: EOS rbvmomi_datacenter_opt text <<-EOS Other options: EOS end Trollop.die("must specify host") unless opts[:host] ARGV.size == 2 or abort "must specify VM source name and VM target name" vm_source = ARGV[0] vm_target = ARGV[1] vim = VIM.connect opts dc = vim.serviceInstance.find_datacenter(opts[:datacenter]) or abort "datacenter not found" vm = dc.find_vm(vm_source) or abort "VM not found" spec = VIM.VirtualMachineCloneSpec(:location => VIM.VirtualMachineRelocateSpec, :powerOn => false, :template => false) vm.CloneVM_Task(:folder => vm.parent, :name => vm_target, :spec => spec).wait_for_completion

Note : comme l'indique son auteur, ce projet est un projet développé par un employé de VMware et non officiellement supporté par VMware !

Vous pouvez trouver des informations complémentaires, des exemples de code, dans le dépôt GitHUB de l'auteur.

A propos de Vincent RABAH

Directeur des systemes d'information

Je suis DSI depuis 10 ans. Spécialiste en systèmes d'information et réseaux.
Expert en management, GreenIT et virtualisation de serveurs. Vous pouvez consulter l'ensemble de mon parcours.

I do speak English even if my blog is written in French ... Feel free to leave comments, I'll answer you !


Partagez cet article :



Fil des commentaires de cet article

1 commentaire(s) Commentaires »

  1. Un petit plus pour la communauté ruby !

Laisser un Commentaire

Quelle est la dernière lettre du mot azeuy ? :