Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Bootstrapping Cloudify on Devstack

DZone's Guide to

Bootstrapping Cloudify on Devstack

· Cloud Zone ·
Free Resource

Discover a centralized approach to monitor your virtual infrastructure, on-premise IT environment, and cloud infrastructure – all on a single platform.

[This article was written by Yoram Weinreb.]
Cloudify 3.0 is a major milestone for Gigaspaces. It tightens our integration with Openstack and steers the product architecture to closely match the OpenStack architecture stack. There are several ways to get started with Cloudify 3.0 on OpenStack:
  • You can use an OpenStack public cloud such as HP Cloud
  • You can use your own OpenStack private cloud
  • There is also an option to download a Vagrant box that will let you bootstrap Cloudify inside a single VM.
  • Finally, there is an option to run Devstack and use it as your own private cloud for bootstrapping Cloudify 3.0.

Setting up and running Devstack is pretty straight forward and you can use the official quick guide as your reference.

You need to ensure that the computer running Devstack has enough resources for the Devstack + 3 additional VMs running inside it (16GB RAM is highly recommended, but 8 GB should work too).


Bootstrap Cloudify 3.0 with DevStack. Easy as pie. Try it out.  Go

Add an Ubuntu image (12.04 LTS is recommended) from the Ubuntu official cloud images to your new DevStack environment. Once Devstack is installed, I recommend signing into its web UI and spawning a small Ubuntu instance as a validation that the installation was indeed successful.

Next, go to the Cloudify download page, and choose the relevant Debian package (either 32 or 64 bit). Install the package: dpkg –I ./ cloudify-cli_3.0.0-ga-b6_amd64.deb Then we will need to configure Cloudify to use its Openstack plugin for bootstrapping. It is recommended to do it in a dedicated folder: mkdir cloudify_work cd Cloudify_work cfy init openstack Follow the steps in the Cloudify Quick Start OpenStack Tutorial. Devstack defaults for the cloudify-config.yaml:
##Credential section:
 
keystone:
 
username: admin
 
password: password
 
tenant_name: password
 
auth_url: h t t p : : / / [YOUR-DEVSTACK-IP]:5000/v2.0
 
##Networking section:
 
networking:
 
subnet:
 
#Choose here an IP of a DNS server accessiable from your devstack machine.
 
dns_nameservers: [‘8.8.8.8’]
 
ext_network:
 
#choose your Openstack public network name. The DevStack default is “public”
 
name: public
 
##Compute section:
 
compute:
 
management_server:
 
instance:
 
# flavor and image ids are also environment specific and will have to be overridden. Image id is the image id that you generated when you added the Ubuntu image to Devstack.
 
flavor: 2
 
image: ####-####-####-####
Next we will follow quick start guide steps. To verify the the bootstrapping succeeded after you ran the cty bootstrap command, you may run cfy status and get the IP of the Cloudify management node and a list of the running services on it. Before executing the blueprint upload step in the guide,there are a couple of environment changes to the blueprint.yaml to match our Devstack environment:
types:
    vm_host:
-	server:
    image:[The Ubuntu image id we used for bootstrapping]
    flavor: 2
blueprint:
-	name: floatingip
type: cloudify.openstack.floatingip
properties:
    floatingip:
        floating_network_name: public

Once you are done with the steps in the quick guide, you can view the node-cellar deployment also from you Devstack horizon UI. You will see there the two VMs that were provisioned in addition to the Cloudify management VM.

Cloudify UI There we are, Node-cellar is deployed and you can use it as a reference to building and running your own blueprints.

Learn how to auto-discover your containers and monitor their performance, capture Docker host and container metrics to allocate host resources, and provision containers.

Topics:

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}