diff --git a/xos/synchronizers/onboarding/onboarding_synchronizer_config b/xos/synchronizers/onboarding/onboarding_synchronizer_config
index d80ff2d..e2b92fd 100644
--- a/xos/synchronizers/onboarding/onboarding_synchronizer_config
+++ b/xos/synchronizers/onboarding/onboarding_synchronizer_config
@@ -25,10 +25,13 @@
 name=onboarding
 dependency_graph=/opt/xos/synchronizers/onboarding/model-deps
 steps_dir=/opt/xos/synchronizers/onboarding/steps
+sys_dir=/opt/xos/synchronizers/onboarding/sys
 deleters_dir=/opt/xos/synchronizers/onboarding/deleters
 log_file=console
 driver=None
 backoff_disabled=True
+pretend=False
+save_ansible_output=True
 
 [feefie]
 client_id='vicci_dev_central'
diff --git a/xos/synchronizers/onboarding/steps/sync_xos.py b/xos/synchronizers/onboarding/steps/sync_xos.py
index 4c0fe7b..095fae8 100644
--- a/xos/synchronizers/onboarding/steps/sync_xos.py
+++ b/xos/synchronizers/onboarding/steps/sync_xos.py
@@ -6,6 +6,7 @@
 from synchronizers.base.syncstep import SyncStep
 from core.models import XOS
 from xos.logger import Logger, logging
+from synchronizers.base.ansible import run_template
 
 # xosbuilder will be in steps/..
 parentdir = os.path.join(os.path.dirname(__file__),"..")
@@ -19,14 +20,22 @@
     provides=[XOS]
     observes=XOS
     requested_interval=0
+    playbook = "sync_xos.yaml"
 
     def __init__(self, **args):
         SyncStep.__init__(self, **args)
         XOSBuilder.__init__(self)
 
-    def sync_record(self, scr):
-        logger.info("Sync'ing XOS %s" % scr)
-        self.build_xos()
+    def sync_record(self, xos):
+        logger.info("Sync'ing XOS %s" % xos)
+
+        dockerfiles = [self.create_ui_dockerfile()]
+        tenant_fields = {"dockerfiles": dockerfiles,
+                         "build_dir": self.build_dir,
+                         "ansible_tag": xos.__class__.__name__ + "_" + str(xos.id)}
+
+        path="XOS"
+        res = run_template(self.playbook, tenant_fields, path=path)
 
     def delete_record(self, m):
         pass
diff --git a/xos/synchronizers/onboarding/xosbuilder.py b/xos/synchronizers/onboarding/xosbuilder.py
index 7d4c7e5..f85e252 100644
--- a/xos/synchronizers/onboarding/xosbuilder.py
+++ b/xos/synchronizers/onboarding/xosbuilder.py
@@ -106,7 +106,8 @@
 
         file(os.path.join(self.build_dir, dockerfile_fn), "w").write("\n".join(dockerfile)+"\n")
 
-        return [dockerfile_fn]
+        return {"dockerfile_fn": dockerfile_fn,
+                "docker_image_name": "xosproject/xos-ui"}
 
     def create_synchronizer_dockerfile(self, controller):
         lines = self.get_controller_docker_lines(controller, self.SYNC_KINDS)
@@ -118,20 +119,15 @@
         dockerfile = dockerfile + lines
         file(os.path.join(self.build_dir, dockerfile_fn), "w").writelines(dockerfile)
 
-        return [dockerfile_fn]
+        return {"dockerfile_fn": dockerfile_fn,
+                "docker_image_name": "xosproject/xos-synchronizer-%s" % controller.name}
 
-    def run_docker(self, dockerfile_fn):
-        pass
-
-    def build_xos(self):
-        dockerfiles=[]
-        dockerfiles = dockerfiles + self.create_ui_dockerfile()
-
-        for controller in ServiceController.objects.all():
-            dockerfiles = dockerfiles + self.create_synchronizer_dockerfile(controller)
-
-        for dockerfile in dockerfiles:
-            self.run_docker(dockerfile)
+#    def build_xos(self):
+#        dockerfiles=[]
+#        dockerfiles.append(self.create_ui_dockerfile())
+#
+#        for controller in ServiceController.objects.all():
+#            dockerfiles.append(self.create_synchronizer_dockerfile(controller))
 
 
 
