[Openstack] Introducing Warm, a tool to setup environment from Yaml

Sahid Ferdjaoui sahid.ferdjaoui at cloudwatt.com
Mon Nov 25 10:29:05 UTC 2013


Hello all,

It's my first message on the ML so maybe I have to introduce myself. My name is 
Sahid Ferdjaoui, I'm working at Cloudwatt and I'm really happy to be part of 
this great community.

I wanted share with you a tool to setup environments from templates. It exposes 
APIs on Yaml and I hope it could be useful for some of us.

      The sources code is on GitHub: https://github.com/sahid/warm

The code is not completely mature and you can find inconsistencies, feel free to 
give me any feedbacks.

As examples I have pushed templates; One to setup a multi-nodes OpenStack using 
devstack, could be useful for developers and an other to setup a WordPress with 
dedicated webserver, database and proxy.

     The template on GitHub: https://github.com/sahid/warm-templates
    
First of all we need to install Warm. We can do that with the command pip. 
(It needs some deps so don't forget to check the README before to launch the 
install. https://github.com/sahid/warm/blob/master/README)
$> sudo pip install warm

You can check if Warm is correctly installed 
$> warm -v
0.1.25

We will try to setup a WordPress:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

$> git clone https://github.com/sahid/warm-templates
$> cd warm-templates/wordpress

Warm can read OS_* env, if not defined it checks in the template to get credentials.
Please read config.yaml.sample for more information:
  https://github.com/sahid/warm/blob/master/templates/config.yaml.sample

Is good to read stack.yaml and userdata/* to maybe update these files for 
your OpenStack. It's in Yaml and Bash/CloudInit so really easy to understand.

Now we can deploy our environment...
$> warm stack.yaml

    Note: Warm doesn't recreate resources already exists and mixes names/ids.

We can use 'nova console-log' to verify if all run well.
$> nova console-log {proxy, mysql, web}

If all sounds good we have to add a public ip, yes Warm is not able yet
to configure floating ip.
$> nova add-floating-ip proxy <addr>

Now just go to the <addr> to play with WordPress.


Please feel free to send me any comments, bugs or requests. I will be happy to work 
on these. 

PS: Warm is not really documented but the code is simple, if you want to find 
what is currently supported just go to components/__init__.py, 'whitelist' is a 
good variable to look at to find supported options for a component.

Thanks for your time,
s.




More information about the Openstack mailing list