diff --git a/xos/observers/vpn/steps/sync_vpntenant.yaml b/xos/observers/vpn/steps/sync_vpntenant.yaml
index 82193d0..83e5216 100644
--- a/xos/observers/vpn/steps/sync_vpntenant.yaml
+++ b/xos/observers/vpn/steps/sync_vpntenant.yaml
@@ -4,15 +4,17 @@
   connection: ssh
   user: ubuntu
   sudo: yes
+  vars:
+
   tasks:
-  - name: install apache
-    apt: name=apache2 state=present update_cache=yes
+  - name: install openvpn
+    apt: name=openvpn state=present update_cache=yes
 
-  - name: write message
-    shell: echo "{{ server_key }}" > /var/www/html/index.html
+  - name: write key
+    shell: printf "{{ server_key }}" > /opt/xos/observers/vpn/static.key
 
-  - name: stop apache
-    service: name=apache2 state=stopped
+  - name: write config
+    shell: printf "dev tun\nifconfig 10.8.0.1 10.8.0.2\nsecret /opt/xos/observers/vpn/static.key\nkeepalive 10 60\nping-timer-rem\npersist-tun\npersist-key" > /opt/xos/observers/vpn/server.conf
 
-  - name: start apache
-    service: name=apache2 state=started
+  - name: start openvpn
+    shell: openvpn /opt/xos/observers/vpn/server.conf
diff --git a/xos/vpn/admin.py b/xos/vpn/admin.py
index 4010e0f..4640de2 100644
--- a/xos/vpn/admin.py
+++ b/xos/vpn/admin.py
@@ -4,6 +4,7 @@
 from core.models import User
 from django import forms
 from django.contrib import admin
+from subprocess import Popen, PIPE
 from vpn.models import VPNService, VPNTenant, VPN_KIND
 
 class VPNServiceAdmin(ReadOnlyAwareAdmin):
@@ -45,8 +46,8 @@
     def __init__(self, *args, **kwargs):
         super(VPNTenantForm, self).__init__(*args, **kwargs)
         self.fields['kind'].widget.attrs['readonly'] = True
-        # Make the server_key read only
-        self.fields['server_key'].widget.attrs['readonly'] = True
+        # Make the server_key disabled
+        self.fields['server_key'].widget.attrs['disabled'] = True
 
         self.fields[
             'provider_service'].queryset = VPNService.get_service_objects().all()
@@ -60,14 +61,20 @@
         # If there is not an instance then we need to set initial values.
         if (not self.instance) or (not self.instance.pk):
             self.fields['creator'].initial = get_request().user
-            self.fields['server_key'].initial = "hello world!"
+            self.fields['server_key'].initial = generate_VPN_Key()
             if VPNService.get_service_objects().exists():
                 self.fields["provider_service"].initial = VPNService.get_service_objects().all()[0]
 
     def save(self, commit=True):
         self.instance.creator = self.cleaned_data.get("creator")
+        self.instance.servery_key = self.cleaned_data.get("sever_key")
         return super(VPNTenantForm, self).save(commit=commit)
 
+    def generate_VPN_Key():
+        proc = Popen("openvpn --genkey --secret /dev/stdout", shell=True, stdout=PIPE)
+        (stdout, stderr) = proc.communicate()
+        return stdout
+
     class Meta:
         model = VPNTenant
 
