diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml
index e5ff91e3be1275541d6d84ebda4dd091025b24ae..3b5a1ae3ca8b3fdb0964119f54955d1f3187b798 100644
--- a/ansible/group_vars/all.yml
+++ b/ansible/group_vars/all.yml
@@ -282,6 +282,13 @@ cinder_volume_backend_name: "{{ 'cinder-volumes' if cinder_backend_iscsi | bool
 cinder_iscsi_helper: "{{ 'tgtadm' if cinder_backend_iscsi | bool else '' }}"
 cinder_iscsi_protocol: "{{ 'iscsi' if cinder_backend_iscsi | bool else '' }}"
 
+
+#######################
+# Nova options
+#######################
+nova_backend_ceph: "{{ enable_ceph }}"
+nova_backend: "{{ 'rbd' if nova_backend_ceph | bool else 'default' }}"
+
 ###################
 # Ceph options
 ###################
diff --git a/ansible/roles/nova/tasks/deploy.yml b/ansible/roles/nova/tasks/deploy.yml
index 13a5dba8febf978583903b782a8d96a2f172d5fb..21efc2b2e1e45e92be5b69f0210c02b3ee5e98bf 100644
--- a/ansible/roles/nova/tasks/deploy.yml
+++ b/ansible/roles/nova/tasks/deploy.yml
@@ -1,7 +1,7 @@
 ---
 - include: ceph.yml
   when:
-    - enable_ceph | bool
+    - enable_ceph | bool and nova_backend == "rbd"
     - inventory_hostname in groups['ceph-mon'] or
         inventory_hostname in groups['compute'] or
         inventory_hostname in groups['nova-api'] or
@@ -10,6 +10,11 @@
         inventory_hostname in groups['nova-novncproxy'] or
         inventory_hostname in groups['nova-scheduler']
 
+- include: external-ceph.yml
+  when:
+    - enable_ceph | bool == False and nova_backend == "rbd"
+    - inventory_hostname in groups['compute']
+
 - include: register.yml
   when: inventory_hostname in groups['nova-api']
 
diff --git a/ansible/roles/nova/tasks/external-ceph.yml b/ansible/roles/nova/tasks/external-ceph.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8743e77020c5e8c03108bb856cb8c633ce750235
--- /dev/null
+++ b/ansible/roles/nova/tasks/external-ceph.yml
@@ -0,0 +1,49 @@
+---
+- name: Ensuring config directory exists
+  file:
+    path: "{{ node_config_directory }}/{{ item }}"
+    state: "directory"
+  with_items:
+    - "nova-compute"
+    - "nova-libvirt/secrets"
+  when: inventory_hostname in groups['compute']
+
+- name: Find keyring files
+  local_action: find paths="{{ node_custom_config }}/nova/" patterns="^ceph\.client\..*?\.keyring$" use_regex=True
+  register: cephx_keyring_files
+
+- name: Copy over ceph keyring file
+  copy:
+    src: "{{ cephx_keyring_files.files[0].path }}"
+    dest: "{{ node_config_directory }}/{{item}}/"
+  with_items:
+    - nova-compute
+    - nova-libvirt
+  when: inventory_hostname in groups['compute']
+
+- name: Copy over ceph.conf
+  copy:
+    src: "{{ node_custom_config }}/nova/ceph.conf"
+    dest: "{{ node_config_directory }}/{{ item }}/"
+  with_items:
+    - nova-compute
+    - nova-libvirt
+  when: inventory_hostname in groups['compute']
+
+- name: Pushing secrets xml for libvirt
+  template:
+    src: "secret.xml.j2"
+    dest: "{{ node_config_directory }}/nova-libvirt/secrets/{{ rbd_secret_uuid }}.xml"
+    mode: "0600"
+  when: inventory_hostname in groups['compute']
+
+- name: Extract key from file
+  local_action: shell cat {{ cephx_keyring_files.files[0].path }} | grep -E 'key\s*=' | awk '{ print $3 }'
+  register: cephx_raw_key
+
+- name: Pushing secrets key for libvirt
+  copy:
+    content: "{{ cephx_raw_key.stdout }}"
+    dest: "{{ node_config_directory }}/nova-libvirt/secrets/{{ rbd_secret_uuid }}.base64"
+    mode: "0600"
+  when: inventory_hostname in groups['compute']
diff --git a/ansible/roles/nova/templates/nova-compute.json.j2 b/ansible/roles/nova/templates/nova-compute.json.j2
index f3a45f754437c26346154d7995096d42a76dadb3..a3fd495de049a625c1915c6ccf6ca663869d4345 100644
--- a/ansible/roles/nova/templates/nova-compute.json.j2
+++ b/ansible/roles/nova/templates/nova-compute.json.j2
@@ -6,18 +6,12 @@
             "dest": "/etc/nova/nova.conf",
             "owner": "nova",
             "perm": "0600"
-        }{% if enable_ceph | bool %},
+        }{% if nova_backend == "rbd" %},
         {
-            "source": "{{ container_config_directory }}/ceph.client.nova.keyring",
-            "dest": "/etc/ceph/ceph.client.nova.keyring",
+            "source": "{{ container_config_directory }}/ceph.*",
+            "dest": "/etc/ceph/",
             "owner": "nova",
-            "perm": "0600"
-        },
-        {
-            "source": "{{ container_config_directory }}/ceph.conf",
-            "dest": "/etc/ceph/ceph.conf",
-            "owner": "nova",
-            "perm": "0600"
+            "perm": "0700"
         }{% endif %}
     ]
 }
diff --git a/ansible/roles/nova/templates/nova-libvirt.json.j2 b/ansible/roles/nova/templates/nova-libvirt.json.j2
index dca7056b273b566331b11bf0d6d5e84c58c41bf6..aa19f7a396074f824b96c9413dd8ae32ae590f14 100644
--- a/ansible/roles/nova/templates/nova-libvirt.json.j2
+++ b/ansible/roles/nova/templates/nova-libvirt.json.j2
@@ -12,7 +12,7 @@
             "dest": "/etc/libvirt/qemu.conf",
             "owner": "root",
             "perm": "0644"
-        }{% if enable_ceph | bool %},
+        }{% if nova_backend == "rbd" %},
         {
             "source": "{{ container_config_directory }}/secrets",
             "dest": "/etc/libvirt/secrets",
diff --git a/ansible/roles/nova/templates/nova.conf.j2 b/ansible/roles/nova/templates/nova.conf.j2
index f1dd54955efc83d69f81d86e3a283e770f2459bf..792f8d0b5883f6782a3e080d172d2416061df430 100644
--- a/ansible/roles/nova/templates/nova.conf.j2
+++ b/ansible/roles/nova/templates/nova.conf.j2
@@ -161,15 +161,19 @@ memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansi
 
 [libvirt]
 connection_uri = "qemu+tcp://{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}/system"
-{% if enable_ceph | bool %}
+{% if enable_ceph | bool and nova_backend == "rbd" %}
 images_type = rbd
 images_rbd_pool = {{ ceph_nova_pool_name }}
 images_rbd_ceph_conf = /etc/ceph/ceph.conf
 rbd_user = nova
-rbd_secret_uuid = {{ rbd_secret_uuid }}
 disk_cachemodes="network=writeback"
 hw_disk_discard = unmap
 {% endif %}
+{% if nova_backend == "rbd" %}
+rbd_secret_uuid = {{ rbd_secret_uuid }}
+{% endif %}
+
+
 
 [upgrade_levels]
 compute = auto
diff --git a/doc/external-ceph-guide.rst b/doc/external-ceph-guide.rst
index b560ab218f7002a604ff380d6b940a4a0347330e..fcd1bdbabf68a66a0bebc3b6bd247203b2a0659a 100644
--- a/doc/external-ceph-guide.rst
+++ b/doc/external-ceph-guide.rst
@@ -14,7 +14,7 @@ Requirements
 * An existing installation of Ceph
 * Existing Ceph storage pools
 * Existing credentials in Ceph for OpenStack services to connect to Ceph
-(Glance, Cinder)
+(Glance, Cinder, Nova)
 
 Enabling External Ceph
 ======================
@@ -62,11 +62,9 @@ Step 1 is done by using Kolla's INI merge mechanism: Create a file in
   [glance_store]
   stores = rbd
   default_store = rbd
-  rbd_store_chunk_size = 8
   rbd_store_pool = images
   rbd_store_user = glance
   rbd_store_ceph_conf = /etc/ceph/ceph.conf
-  rados_connect_timeout = 0
 
   [image_format]
   container_formats = bare
@@ -151,3 +149,31 @@ cinder-volume and cinder-backup directories:
           key = AQAg5YRXpChaGRAAlTSCleesthCRmCYrfQVX1w==
 
 It is important that the files are named ceph.client*.
+
+Nova
+------
+
+In ``/etc/kolla/global.yml`` set
+
+::
+
+  nova_backend_ceph: "yes"
+
+Put ceph.conf and keyring file into ``/etc/kolla/config/nova``:
+
+::
+
+  $ ls /etc/kolla/config/nova
+  ceph.client.nova.keyring  ceph.conf
+
+Configure nova-compute to use Ceph as the ephemeral backend by creating ``/etc/kolla/config/nova/nova-compute.conf`` and adding the following contents:
+
+::
+
+  [libvirt]
+  images_rbd_pool=vms
+  images_type=rbd
+  images_rbd_ceph_conf=/etc/ceph/ceph.conf
+  rbd_user=nova
+
+NOTE: rbd_user might vary depending on your environment.
diff --git a/etc/kolla/globals.yml b/etc/kolla/globals.yml
index 6b1b192a5ce440c06ee06530e15a04708fb45727..b109b0d6ff542940529105e1b03accee956e9b5d 100644
--- a/etc/kolla/globals.yml
+++ b/etc/kolla/globals.yml
@@ -161,6 +161,12 @@ cinder_backend_ceph: "{{ enable_ceph }}"
 #cinder_volume_group:
 
 
+#######################
+# Nova options
+#######################
+nova_backend_ceph: "{{ enable_ceph }}"
+
+
 #######################################
 # Manila - Shared File Systems Options
 #######################################