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
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 rbvmomiPassons à 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
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 !
- Performance Best Practice vSphere 4.1
- VMware Workstation 8.0
- Sortie officielle de vSphere 5
- XenServer 5.6 Service Pack 2
- Nouvelle version de Veeam Backup & Restore
- VMware vSphere 5.0 disponible
- VMworld 2010 - épisode 2 vCloud API 1.0
- Sécuriser VMware vSphere 4.1
- Client vCenter pour iPad en version béta
- Préparer la transition vers ESXi avec vSphere 4.1
Vous pouvez lire également :
Partagez cet article :





Un petit plus pour la communauté ruby !