diff --git a/kb_build.sh b/kb_build.sh
index b89f663..68152f4 100644
--- a/kb_build.sh
+++ b/kb_build.sh
@@ -2,6 +2,14 @@
 
 # This script will build the kloudbuster VM image and the container image under the ./build directory
 
+# canned user/password for direct login
+export DIB_DEV_USER_USERNAME=kb
+export DIB_DEV_USER_PASSWORD=kb
+export DIB_DEV_USER_PWDLESS_SUDO=Y
+
+# Set the data sources to have ConfigDrive only
+export DIB_CLOUD_INIT_DATASOURCES="ConfigDrive"
+
 # Check we are in a virtual environment
 function check_in_venv {
   IN_VENV=$(python -c 'import sys; print hasattr(sys, "real_prefix")')
diff --git a/kb_dib/elements/kloudbuster/README.rst b/kb_dib/elements/kloudbuster/README.rst
index 2be0685..f3a7ec0 100644
--- a/kb_dib/elements/kloudbuster/README.rst
+++ b/kb_dib/elements/kloudbuster/README.rst
@@ -5,6 +5,12 @@ KloudBuster
 KloudBuster Image
 Contains all the packages and files needed to run a universal KloudBuster VM
 The same image can run using one of the following roles (Assigned from the user-data python program):
+
 - Server VM for a given traffic type (e.g. http server or tcp/udp server)
 - Client VM for a given traffic type (e.g. http client or tcp/udp client)
 - Redis server (only 1 instance in the client cloud)
+
+The default login on the VM is
+
+- username: kb
+- password: kb
diff --git a/kb_dib/elements/kloudbuster/post-install.d/02-kb-script b/kb_dib/elements/kloudbuster/post-install.d/02-kb-script
index 7c11bfb..c125701 100755
--- a/kb_dib/elements/kloudbuster/post-install.d/02-kb-script
+++ b/kb_dib/elements/kloudbuster/post-install.d/02-kb-script
@@ -51,6 +51,7 @@ sed -i 's/start-stop-daemon\ --start/ulimit\ \-n\ 102400\n\t\0/g' /etc/init.d/ng
 # Auto start the KloudBuster Agent, with user-data
 sed -i "s/^exit\s0/cd \/kb_test\n\0/g" /etc/rc.local
 sed -i "s/^exit\s0/if wget http\:\/\/169.254.169.254\/latest\/user-data; then \:; fi\n\0/g" /etc/rc.local
+sed -i 's/^exit\s0/echo `hostname -I` `hostname` >>\/etc\/hosts\n\0/g' /etc/rc.local
 sed -i "s/^exit\s0/python kb_vm_agent.py \&\n\0/g" /etc/rc.local
 
 # =================
diff --git a/kb_dib/elements/kloudbuster/static/kb_test/kb_vm_agent.py b/kb_dib/elements/kloudbuster/static/kb_test/kb_vm_agent.py
index 9b571de..117bec1 100644
--- a/kb_dib/elements/kloudbuster/static/kb_test/kb_vm_agent.py
+++ b/kb_dib/elements/kloudbuster/static/kb_test/kb_vm_agent.py
@@ -22,6 +22,7 @@ import struct
 import subprocess
 from subprocess import Popen
 import sys
+import syslog
 import threading
 import time
 import traceback
@@ -40,7 +41,10 @@ __version__ = '7'
 def exec_command(cmd, cwd=None):
     p = subprocess.Popen(cmd, cwd=cwd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
     (stdout, stderr) = p.communicate()
-
+    if p.returncode:
+        syslog.syslog("Command failed: " + cmd)
+        if stderr:
+            syslog.syslog(stderr)
     return p.returncode
 
 def refresh_clock(clocks, force_sync=False):
@@ -599,11 +603,13 @@ if __name__ == "__main__":
         cmd = ['python', 'setup.py', 'develop']
         rc = exec_command(cmd, cwd=cwd)
         if not rc:
+            syslog.syslog("Starting kloudbuster HTTP server")
             cmd = ['/usr/local/bin/pecan', 'serve', 'config.py']
             sys.exit(exec_command(cmd, cwd=cwd))
 
     if user_data.get('role') == 'KB-PROXY':
         agent = KBA_Proxy()
+        syslog.syslog("Starting kloudbuster proxy server")
         sys.exit(agent.start_redis_server())
     if user_data.get('role').endswith('Server'):
         agent = KBA_Server(user_data)
@@ -621,17 +627,20 @@ if __name__ == "__main__":
                                                user_data.get('multicast_ports'),
                                                user_data.get('multicast_listener_address_start'))
         if agent.config_nginx_server():
+            syslog.syslog("Starting kloudbuster nginx server")
             sys.exit(agent.start_nginx_server())
         else:
             sys.exit(1)
     elif user_data.get('role').endswith('Client'):
         if user_data['role'].startswith('HTTP'):
+            syslog.syslog("Starting kloudbuster HTTP client")
             agent = KBA_HTTP_Client(user_data)
         elif user_data['role'].startswith('Multicast'):
             KB_Instance.add_multicast_route()
             refresh_clock(user_data.get('ntp_clocks'), force_sync=True)
             agent = KBA_Multicast_Client(user_data)
         else:
+            syslog.syslog("Starting kloudbuster storage client")
             agent = KBA_Storage_Client(user_data)
         agent.setup_channels()
         agent.hello_thread = threading.Thread(target=agent.send_hello)