vrb is meant to bring the ease of use of VMware’s PowerCLI to unix/ruby people by way of exposing a friendlier set of actions and information than just using rbvmomi on its own.
I am not a ruby developer, I just play one on Github. I am a systems/virtualization/devops engineer with much more of a scripting background. Besides the obvious goal of creating vrb to make my own life easier at work, I am also using this project to attempt to elevate my understanding of ruby (and frankly, OOP in general).
Patience and grace are requested, as well as your contributions.
>> vc = Vrb::Vcenter.new(vcenter_name, username, password)
=> Vrb::Vcenter(vcenter_name)
>> vc.list_datacenters
=> ['Seattle', 'Chicago', 'London']
>> dc = vc.get_datacenter('Seattle')
=> Vrb::Datacenter(Seattle)
>> cl = dc.get_cluster 'Prod'
=> Vrb::Cluster(Prod)
>> host = cl.get_host 'host1.domain.tld'
=> Vrb::Host(host1.domain.tld)
>> vm = host.get_vm 'myvm'
=> Vrb::VM(myvm)
>> vm.os
=> 'CentOS 4/5/6'
>> vm.ip
=> '10.0.1.2'
-
Friendly names everywhere you look (or inspect)
-
Clone a VM using an existing vCenter customization specification! Even pass IPs!
-
Change network labels on an existing VM
-
If you’re already using fog, Vrb::Vcenter.new will recognize and pick up your ~/.fog file
-
Mix and match Vrb and RbVmomi methods! Just call .mob on any Vrb object to get direct access to the RbVmomi managed object reference
-
Access a VM direct from vCenter without traversing the hierarchy:
vc.get_vm_by_path('Seattle/vm/Folder1/myvm' -
View hard to get to data like vNIC information as simple ivars
-
vNIC-related actions currently only support the VMware vDS. Sorry, that’s mostly what I use at work. Support for sVS networks will be added eventually.
-
VM NIC information needs cleanup
-
Add more info to cluster/host/vm objects. some ideas:
-
HA/DRS state
-
active alarms
-
-
Add more common actions. some ideas:
-
maintenance mode
-
power on/off
-