Monthly Archives: October 2015

Since VMware Integrated OpenStack is DefCore-compliant, our users can easily leverage popular community tools, such as Vagrant, to work with our distribution. In this article, we will discuss how to prepare your development environment for using Vagrant with OpenStack, and we will deploy a single instance. In our next installment, we will discuss a multi-instance deployment.

If you are not familiar with Vagrant, it is a HashiCorp solution for quickly building repeatable development according to instructions contained in a simple text file known as the Vagrantfile. The Vagrantfile specifies how you want to configure a template VM (also known as a “box”) with multiple customization options including shell scripts, Puppet manifests, Chef recipes, Ansible playbooks, etc.

For the examples below, I used the Vagrant OpenStack plugin developed by Edmund Haselwanter and the team at Cloudbau. However, there are others that you can try if you don’t like the way this plugin works.

An important prerequisite for working with the OpenStack plugin is to register a signed certificate with your VIO installation. This is due to the Vagrant plugins currently being unable to process the OS_CACERT environment variable for self-signed certificates.

Next, install Vagrant on your desktop if you have not done so already. After installing vagrant, we need to install the OpenStack plugin using the following syntax:

vagrant plugin install vagrant-openstack-plugin

We then specify a box that will be a placeholder for the images in our OpenStack cloud:

Vagrant typically looks for boxes on your local machine. When working with an OpenStack cloud, though, we specify an image in the cloud instead of a local box as you will see and example of this in the sample Vagrantfile below. So, this placeholder box is only here to satisfy Vagrant syntax requirements.

Finally, we are ready to use Vagrant with OpenStack. Let’s create a new directory on your local desktop. Change to that directory and type the following command:

vagrant init openstack

This will generate a sample Vagrantfile definition. We will pretty much remove all the contents from that file and replace it with content similar to the following (explanations are included as comments with the “#”) prefix:

puts "\nHave you sourced your OpenStack creds today???\n" # A helpful reminder to source your OpenStack tenant's credentials file
Vagrant.configure("2") do |config|
config.vm.box = "openstack" # specify the placeholder box
config.ssh.private_key_path = "~/.ssh/id_rsa" # replace with the path to your own private key that you use with OpenStack
config.vm.provider :openstack do |os|
os.endpoint = "#{ENV['OS_AUTH_URL']}/tokens" # Get the environment variable for the authentication URL.
os.username = "#{ENV['OS_USERNAME']}" # Get the environment variable for the username.
os.tenant_name = "#{ENV['OS_TENANT_NAME']}" # Get the environment variable for the OpenStack tenant name.
os.api_key = "#{ENV['OS_PASSWORD']}" # Get the environment variable for the OpenStack password.
os.flavor = /m1.small/ # Specify either an exact string for the flavor or a regex.
os.image = /ubuntu/ # Specify either an exact string for the image or a regex.
os.keypair_name = "demo-keypair" # Replace with your keypair name. You can use nova keypair-list to get it
os.ssh_username = "ubuntu" # The username that Vagrant will use to login to the instance and customize it.
os.networks = ["demo-network"] # You can specify one or more networks enclosed in quotes and comma-separated.
os.floating_ip = :auto # Indicate a specific Floating IP or use the :auto keyword.
os.floating_ip_pool = "EXTNET" # Specify the name of your external network.
end
end

Before we proceed, make sure to load your OpenStack credentials as environment variables, and confirm this was done with a sample CLI command like nova list. Now, we are ready to use Vagrant for the first time to bring up an OpenStack instance:

vagrant up --provider=openstack

You should see some output at the command line. After the line about rsyncing files to your instance, it will be available for use by using the following command:

vagrant ssh

When you are done with the instance, you can use the following command to get rid of it:

vagrant destroy

Try Vagrant with VMware Integrated OpenStack today, and let us know how it worked out for you!

The VMware Integrated OpenStack team is excited to attend the Tokyo Summit and to share what we have been contributing to the community as well as the work we’ve done in our distribution. We will discuss what’s new with VMware Integrated OpenStack version 2.0 and our work with the Liberty release. We look forward to seeing you in Tokyo at the VMware booth!

Here is a list of the summit sessions where you can hear more from our team members:

The OpenStack block storage service (Cinder) allows users to attach volumes to their instances. VMware Integrated OpenStack simplifies storage management tasks so that users can be productive much quicker.

One way that we simplify management is by allocating storage to Nova compute clusters using VMware vSphere data stores. The VMware vCenter VMDK driver can utilize Virtual SAN (VSAN), VMware File System (VMFS), and Network File System (NFS) data stores. This significantly reduces the amount of information that the OpenStack administrator needs to specify in the nova, cinder, and glance configuration files. The administrator simply specifies the VMDK driver and the data store names.

VMware Integrated OpenStack provides a further simplification to storage management: wizard-driven storage allocation within the VMware vSphere Web Client! See Figure 1 for an example.

Figure 1: OpenStack Storage Allocation

This allows administrators to automate the necessary changes to the OpenStack configuration files mentioned earlier and removes potential sources of error in the deployment.

Storage policies are applied normally to VMware vSphere data stores by administrators. Then, administrators create custom volume types in OpenStack that correspond to the vSphere storage policies. When OpenStack users create their cinder volumes, they specify an extra specification with the desired volume type, and VMware vSphere will create the volume on the appropriate data store according to the policy.

The following video provides a detailed walkthrough of using the OpenStack block storage service.

OpenStack Foundation Logo for Distributions that are Certified DefCore

The VMware Integrated OpenStack team is proud to announce that our latest release is compliant with the DefCore 2015.07 standard, making it one of the first commercial distributions to do so! You can see the test results hosted on the RefStack site.

As we mentioned in the “How Open is VMware Integrated OpenStack” post, VMware is dedicated to giving end users a standard OpenStack experience on top of the data center infrastructure that IT operations staff trust and rely on. For that reason, we are proactive in cooperating with the community’s efforts to minimize distribution fragmentation, and DefCore testing is integral to our software development lifecycle.

This is exciting news to head into the Tokyo OpenStack Summit with, and we look forward to speaking with our customers, partners, and community contributors at the event. See you there!