Please welcome vagrant-vcloudair, a new Vagrant provider in our family, this time it’s a dedicated plugin for vCloud Air (formerly known as vCloud Hybrid Service).

But wait a minute… why is it different from the old vagrant-vcloud provider that we all know and love?

Well, for starters, it has a new name ;-) but more importantly, I made significant changes in the plugin to support natively the vCloud Air API Extension, no more fiddling around with endpoints, now you can consume vCloud Air capacities as it was intended.

Vagrant provider for vCloud Air supports the new vmware_ovf format for Vagrant Boxes, which is kind of a big deal as it is now supported through ALL our Vagrant plugins, enabling 100% portability (read more about it here), I raised the compatibility level for the plugin to Vagrant 1.6+, and hardened the code with better error checking and internationalization (PRs for other languages are welcome), I can safely state that this plugin code is production ready.

To install the provider on your machine just issue vagrant plugin install vagrant-vcloudair, detailed documentation on how to use the plugin is available on the project page over at GitHub.

But vCloud Air is not the only one that deserved some love, I have a new release of vagrant-vcenter that features parallel mode and support for vmware_ovf, as well as a new vagrant-vcloud release that enables support to vmware_ovf (box portability is kind of a big deal you know).

Not content, I updated my packer post-processor for VMware OVF to enable output of vmware_ovf boxes, as usual you can find it over at Github, I also updated our Vagrantcloud page with new boxes (including a new CentOS 7) as well as our Packer templates that can be found over at Github.

If you’re using these plugins please find a second to star the project on Github and file an issue if you encounter one.

Happy Vagrant!

VMworld is almost upon us (less than 3 weeks but who’s counting?) and the guys at #vBrownbag just published the Tech Talk schedule!

Tech Talks are ten-minute presentations delivered by community members at an industry conference, they’re fast and to the point, the #vBrownBag crew has been running these for quite some time and this marks my first appeareance on it.

I will have three tech talks during the week, here’s my schedule:

Tuesday 26th 4:30pm - A day in the life of Vagrant: DevOps and VMware together at last

Tuesday 26th 5:15pm - Pack your Stuff, Vagrant! A DevOps approach to template creation

Wednesday 27th 4:30pm - Open Source DevOps and vCloud Hybrid Service, an approach

The tech talks will be held in the hang space there will be plenty of seats available and Go SDDC stickers! :)

See you at VMworld!

I’ve been catching up on my massive RSS backlog during my vacation (that is the result of frequent traveling and having a little girl at home) and stumbled upon Massimo great post on Docker: Docker on vCHS (with 2 API Calls).

Massimo explains in great detail how to get a container running on Docker in vCHS, with several examples of doing it manually, through the web UI and with API calls; I will admit I just played around with Docker a couple of times, not because it’s not worth attention, but because a day is made of 24 hours and some of them are meant for sleeping ;-)

Anyway, this tweet from Jake Robinson made me realize that with Vagrant and our VMware providers, Docker support is literally a vagrant up away ;-)

So before making a post on this, I wanted to test it out myself (dogfooding is key), to do so I tested the same container that Massimo used in his post (tutum/wordpress) and leveraged the docker provisioner that is included in Vagrant 1.6+.

Let’s look at the Vagrantfile syntax (vagrant-vcenter version):

As you can see, in the upper part we define the nodes we want to have (this relates to the number of docker hosts we want to deploy), the box is a very simple Ubuntu 14.04 LTS box coming from our Vagrant Cloud account.

The second part is devoted to the vagrant-vcenter provider configuration, nothing special here, just make sure to use linked_clones to make the provisioning phase faster.

The third part is the most interesting for our Docker trials, the do loop cycles through the nodes hash and set up the box and hostname, then delves into the docker provisioning, first of all, Vagrant pulls Docker from the internet and installs it in the box it just deployed, and then goes through deploying and starting the containers specified in the docker nested loop, in our case it pulls tutum/wordpress and runs it with the /run.sh command and maps the port 80 from the container to the hosting VM on the same port.

Once we issue a vagrant up --provider=vcenter, Vagrant will pull the gosddc/trusty64 box from Vagrant Cloud, upload it to the datastore specified, and create a new VM, that will be provisioned with Docker and the container specified, and will ensure that the container is running before exiting.

A vagrant ssh will then connect us to the Docker host and show us the IP that the machine has, we can also run a docker ps to ensure that the container is actually running.

docker run screenshot

The container is up and running! we can now connect to the webpage and see the familiar Wordpress install page ;-).

wordpress running in a container

Obviously, this can be used with our vagrant-vcloud provider too, both on vCloud Hybrid Service (vCHS) or on every (well-configured) vCloud Director powered Cloud!

Enjoy Docking!