diff --git a/xos/synchronizer/.DS_Store b/xos/synchronizer/.DS_Store
new file mode 100644
index 0000000..5008ddf
--- /dev/null
+++ b/xos/synchronizer/.DS_Store
Binary files differ
diff --git a/xos/synchronizer/manifest b/xos/synchronizer/manifest
new file mode 100644
index 0000000..a152727
--- /dev/null
+++ b/xos/synchronizer/manifest
@@ -0,0 +1,10 @@
+manifest
+model-deps
+run.sh
+steps/roles/create_index/tasks/main.yml
+steps/roles/create_index/templates/index.html.j2
+steps/roles/install_apache/tasks/main.yml
+steps/sync_vmmetenant.py
+steps/vmmetenant_playbook.yaml
+vmmeservice-synchronizer.py
+vmmeservice_config
diff --git a/xos/synchronizer/model-deps b/xos/synchronizer/model-deps
new file mode 100644
index 0000000..0967ef4
--- /dev/null
+++ b/xos/synchronizer/model-deps
@@ -0,0 +1 @@
+{}
diff --git a/xos/synchronizer/run.sh b/xos/synchronizer/run.sh
new file mode 100644
index 0000000..9806b68
--- /dev/null
+++ b/xos/synchronizer/run.sh
@@ -0,0 +1,2 @@
+export XOS_DIR=/opt/xos
+python vmmeservice-synchronizer.py  -C $XOS_DIR/synchronizers/vmmeservice/vmmeservice_config
diff --git a/xos/synchronizer/steps/roles/create_index/tasks/main.yml b/xos/synchronizer/steps/roles/create_index/tasks/main.yml
new file mode 100644
index 0000000..91c6029
--- /dev/null
+++ b/xos/synchronizer/steps/roles/create_index/tasks/main.yml
@@ -0,0 +1,7 @@
+---
+
+- name: Write index.html file to apache document root
+  template:
+    src=index.html.j2
+    dest=/var/www/html/index.html
+
diff --git a/xos/synchronizer/steps/roles/create_index/templates/index.html.j2 b/xos/synchronizer/steps/roles/create_index/templates/index.html.j2
new file mode 100644
index 0000000..5578920
--- /dev/null
+++ b/xos/synchronizer/steps/roles/create_index/templates/index.html.j2
@@ -0,0 +1,3 @@
+VMMEService
+ Tenant Message: "{{ tenant_message }}"
+
diff --git a/xos/synchronizer/steps/roles/install_apache/tasks/main.yml b/xos/synchronizer/steps/roles/install_apache/tasks/main.yml
new file mode 100644
index 0000000..d9a155c
--- /dev/null
+++ b/xos/synchronizer/steps/roles/install_apache/tasks/main.yml
@@ -0,0 +1,7 @@
+---
+
+- name: Install apache using apt
+  apt:
+    name=apache2
+    update_cache=yes
+
diff --git a/xos/synchronizer/steps/sync_vmmetenant.py b/xos/synchronizer/steps/sync_vmmetenant.py
new file mode 100644
index 0000000..19a2782
--- /dev/null
+++ b/xos/synchronizer/steps/sync_vmmetenant.py
@@ -0,0 +1,54 @@
+import os
+import sys
+from django.db.models import Q, F
+from services.vmmeservice.models import VMMEService, VMMETenant
+from synchronizers.base.SyncInstanceUsingAnsible import SyncInstanceUsingAnsible
+
+parentdir = os.path.join(os.path.dirname(__file__), "..")
+sys.path.insert(0, parentdir)
+
+class SyncVMMETenant(SyncInstanceUsingAnsible):
+
+    provides = [VMMETenant]
+
+    observes = VMMETenant
+
+    requested_interval = 0
+
+    template_name = "vmmetenant_playbook.yaml"
+
+    service_key_name = "/opt/xos/synchronizers/vmme/vmme_private_key"
+
+    def __init__(self, *args, **kwargs):
+        super(SyncVMMETenant, self).__init__(*args, **kwargs)
+
+    def fetch_pending(self, deleted):
+
+        if (not deleted):
+            objs = VMMETenant.get_tenant_objects().filter(
+                Q(enacted__lt=F('updated')) | Q(enacted=None), Q(lazy_blocked=False))
+        else:
+            # If this is a deletion we get all of the deleted tenants..
+            objs = VMMETenant.get_deleted_tenant_objects()
+
+        return objs
+
+    def get_vmmeservice(self, o):
+        if not o.provider_service:
+            return None
+
+        vmmeservice = VMMEService.get_service_objects().filter(id=o.provider_service.id)
+
+        if not vmmeservice:
+            return None
+
+        return vmmeservice[0]
+
+    # Gets the attributes that are used by the Ansible template but are not
+    # part of the set of default attributes.
+    def get_extra_attributes(self, o):
+        fields = {}
+        fields['tenant_message'] = o.tenant_message
+        #vmmeservice = self.get_vmmeservice(o)   #not needed cause there's no service message 
+        return fields
+
diff --git a/xos/synchronizer/steps/vmmetenant_playbook.yaml b/xos/synchronizer/steps/vmmetenant_playbook.yaml
new file mode 100644
index 0000000..74f07e0
--- /dev/null
+++ b/xos/synchronizer/steps/vmmetenant_playbook.yaml
@@ -0,0 +1,13 @@
+# vmme playbook
+
+- hosts: "{{ instance_name }}"
+  connection: ssh
+  user: ubuntu
+  sudo: yes
+  gather_facts: no
+  vars:
+    - tenant_message: "{{ tenant_message }}"
+
+  roles:
+    - install_apache
+    - create_index
\ No newline at end of file
diff --git a/xos/synchronizer/vmmeservice-synchronizer.py b/xos/synchronizer/vmmeservice-synchronizer.py
new file mode 100644
index 0000000..95f4081
--- /dev/null
+++ b/xos/synchronizer/vmmeservice-synchronizer.py
@@ -0,0 +1,13 @@
+#!/usr/bin/env python
+
+# This imports and runs ../../xos-observer.py
+# Runs the standard XOS observer
+
+import importlib
+import os
+import sys
+observer_path = os.path.join(os.path.dirname(
+    os.path.realpath(__file__)), "../../synchronizers/base")
+sys.path.append(observer_path)
+mod = importlib.import_module("xos-synchronizer")
+mod.main()
diff --git a/xos/synchronizer/vmmeservice_config b/xos/synchronizer/vmmeservice_config
new file mode 100644
index 0000000..d7360bc
--- /dev/null
+++ b/xos/synchronizer/vmmeservice_config
@@ -0,0 +1,24 @@
+# Required by XOS
+[db]
+name=xos
+user=postgres
+password=password
+host=localhost
+port=5432
+
+# Required by XOS
+[api]
+nova_enabled=True
+
+
+# Sets options for the synchronizer
+[observer]
+name=vmmeservice
+dependency_graph=/opt/xos/synchronizers/vmmeservice/model-deps
+steps_dir=/opt/xos/synchronizers/vmmeservice/steps
+sys_dir=/opt/xos/synchronizers/vmmeservice/sys
+logfile=/var/log/xos_backend.log
+pretend=False
+backoff_disabled=True
+save_ansible_output=True
+proxy_ssh=False
\ No newline at end of file
