diff --git a/planetstack/openstack_observer/ansible.py b/planetstack/openstack_observer/ansible.py
new file mode 100755
index 0000000..5eec7d9
--- /dev/null
+++ b/planetstack/openstack_observer/ansible.py
@@ -0,0 +1,65 @@
+#!/usr/bin/python
+import jinja2
+import tempfile
+import os
+import json
+
+try:
+    step_dir = Config().observer_steps_dir
+except:
+    step_dir = '/opt/planetstack/observer/steps'
+
+os_template_loader = jinja2.FileSystemLoader( searchpath=step_dir)
+os_template_env = jinja2.Environment(loader=os_template_loader)
+
+def parse_output(msg):
+    lines = msg.splitlines()
+    results = []
+    print msg
+
+    for l in lines:
+	magic_str = 'ok: [127.0.0.1] => '
+	magic_str2 = 'changed: [127.0.0.1] => '
+        if (l.startswith(magic_str)):
+	    w = len(magic_str)
+	    str = l[w:]
+	    d = json.loads(str)
+	    results.append(d)
+	elif (l.startswith(magic_str2)):
+	    w = len(magic_str2)
+	    str = l[w:]
+	    d = json.loads(str)
+	    results.append(d)
+
+
+    return results
+	    
+def run_template(name, opts):
+    template = os_template_env.get_template(name)
+    buffer = template.render(opts)
+    
+    f = tempfile.NamedTemporaryFile(mode='w')
+    f.write(buffer)
+    f.flush()
+    
+    run = os.popen('/opt/planetstack/observer/run_ansible '+f.name)
+    msg = run.read()
+    status = run.close()
+
+    try:
+    	ok_results = parse_output(msg)
+    except ValueError,e:
+	print str(e)
+	raise e
+    return ok_results
+
+def main():
+	run_template('ansible/sync_user_deployments.yaml',{ "endpoint" : "http://172.31.38.128:5000/v2.0/",
+                 "name" : "Sapan Bhatia",
+                 "email": "gwsapan@gmail.com",
+                 "password": "foobar",
+                 "admin_user":"admin",
+                 "admin_password":"6a789bf69dd647e2",
+                 "admin_tenant":"admin",
+ 		 "tenant":"demo",
+                 "roles":['user','admin'] })
diff --git a/planetstack/openstack_observer/run_ansible b/planetstack/openstack_observer/run_ansible
new file mode 100755
index 0000000..5fab9df
--- /dev/null
+++ b/planetstack/openstack_observer/run_ansible
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+source /opt/ansible/hacking/env-setup
+ansible-playbook -v $@
diff --git a/planetstack/openstack_observer/steps/sliver.yaml b/planetstack/openstack_observer/steps/sliver.yaml
new file mode 100644
index 0000000..e630415
--- /dev/null
+++ b/planetstack/openstack_observer/steps/sliver.yaml
@@ -0,0 +1,17 @@
+---
+- hosts: 127.0.0.1
+  connection: local
+  tasks:
+  - nova_compute:
+       state: present
+       auth_url: http://172.31.38.128:5000/v2.0/
+       login_username: admin
+       login_password: 6a789bf69dd647e2
+       login_tenant_name: admin
+       name: gloopy
+       image_id: 3ee851df-b35a-41c5-8551-f681e7209095
+       key_name: boo
+       wait_for: 200
+       flavor_id: 3
+       nics:
+         - net-id: d1de537b-80dc-4c1b-aa5f-4a197b33b5f6
diff --git a/planetstack/openstack_observer/steps/sync_site_deployments.yaml b/planetstack/openstack_observer/steps/sync_site_deployments.yaml
new file mode 100644
index 0000000..4129802
--- /dev/null
+++ b/planetstack/openstack_observer/steps/sync_site_deployments.yaml
@@ -0,0 +1,5 @@
+---
+- hosts: 127.0.0.1
+  connection: local
+  tasks:
+  - keystone_user: endpoint={{ endpoint }} login_user={{ admin_user }} login_password={{ admin_password }} login_tenant_name={{ admin_tenant }} tenant={{ tenant }} tenant_description="{{ tenant_description }}"
diff --git a/planetstack/openstack_observer/steps/sync_slice_deployments.yaml b/planetstack/openstack_observer/steps/sync_slice_deployments.yaml
new file mode 100644
index 0000000..de1caf4
--- /dev/null
+++ b/planetstack/openstack_observer/steps/sync_slice_deployments.yaml
@@ -0,0 +1,8 @@
+---
+- hosts: 127.0.0.1
+  connection: local
+  tasks:
+  - keystone_user: endpoint={{ endpoint }} login_user={{ admin_user }} login_password={{ admin_password }} login_tenant_name={{ admin_tenant }} tenant={{ tenant }} tenant_description="{{ tenant_description }}"
+  {% for role in roles %}
+  - keystone_user: endpoint={{ endpoint}} login_user={{ admin_user }} login_password={{ admin_password }} login_tenant_name={{ admin_tenant }} user="{{ name }}" role={{ role }} tenant={{ tenant }}
+  {% endfor %}
diff --git a/planetstack/openstack_observer/steps/sync_slivers.yaml b/planetstack/openstack_observer/steps/sync_slivers.yaml
new file mode 100644
index 0000000..5f45d5c
--- /dev/null
+++ b/planetstack/openstack_observer/steps/sync_slivers.yaml
@@ -0,0 +1,36 @@
+---
+- hosts: 127.0.0.1
+  connection: local
+  tasks:
+  - nova_keypair:
+       state: present
+       auth_url: {{ endpoint }}
+       login_username: {{ admin_user }}
+       login_password: {{ admin_password }}
+       login_tenant_name: {{ admin_tenant }}
+       name: {{ key_name }}
+       public_key: "{{ key.public_key}}"
+       
+  - nova_compute:
+       state: present
+       auth_url: {{ endpoint }}
+       login_username: {{ admin_user }}
+       login_password: {{ admin_password }}
+       login_tenant_name: {{ admin_tenant }}
+       name: {{ name }}
+       image_id: {{ image_id }}
+       key_name: {{ key_name }}
+       wait_for: 200
+       flavor_id: {{ flavor_id }}
+       user_data: "{{ user_data }}"
+       nics:
+       {% for net in nics %}  
+         - net-id: {{ net }}
+       {% endfor %}
+
+       {% if meta %}
+       meta:
+       {% for k,v in meta.items() %}  
+         {{ k }} : "{{ v }}"
+       {% endfor %}
+       {% endif %}
diff --git a/planetstack/openstack_observer/steps/sync_user_deployments.yaml b/planetstack/openstack_observer/steps/sync_user_deployments.yaml
new file mode 100644
index 0000000..95cdba3
--- /dev/null
+++ b/planetstack/openstack_observer/steps/sync_user_deployments.yaml
@@ -0,0 +1,16 @@
+---
+- hosts: 127.0.0.1
+  connection: local
+  tasks:
+  - keystone_user: 
+       endpoint={{ endpoint }} 
+       user="{{ name }}" 
+       email={{ email }} 
+       password={{ password }} 
+       login_user={{ admin_user }} 
+       login_password={{ admin_password }} 
+       login_tenant_name={{ admin_tenant }} 
+       tenant={{ tenant }}
+  {% for role in roles %}
+  - keystone_user: endpoint={{ endpoint}} login_user={{ admin_user }} login_password={{ admin_password }} login_tenant_name={{ admin_tenant }} user="{{ name }}" role={{ role }} tenant={{ tenant }}
+  {% endfor %}
