diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml
index 007ae583ae..4be4bfaae9 100644
--- a/ansible/group_vars/all.yml
+++ b/ansible/group_vars/all.yml
@@ -526,6 +526,8 @@ octavia_amp_flavor_id:
 # must provide separate disks than those for the OSDs
 ceph_enable_cache: "no"
 
+external_ceph_cephx_enabled: "yes"
+
 # Ceph is not able to determine the size of a cache pool automatically,
 # so the configuration on the absolute size is required here, otherwise the flush/evict will not work.
 ceph_target_max_bytes: ""
diff --git a/ansible/roles/cinder/tasks/external_ceph.yml b/ansible/roles/cinder/tasks/external_ceph.yml
index 45fe480ee5..25b522cb63 100644
--- a/ansible/roles/cinder/tasks/external_ceph.yml
+++ b/ansible/roles/cinder/tasks/external_ceph.yml
@@ -27,6 +27,7 @@
     dest: "{{ node_config_directory }}/cinder-volume/"
   with_fileglob:
     - "{{ node_custom_config }}/cinder/cinder-volume/ceph.client*"
+  when: external_ceph_cephx_enabled | bool
 
 - name: Copy over Ceph keyring files for cinder-backup
   copy:
@@ -34,3 +35,4 @@
     dest: "{{ node_config_directory }}/cinder-backup/"
   with_fileglob:
     - "{{ node_custom_config }}/cinder/cinder-volume/ceph.client*"
+  when: external_ceph_cephx_enabled | bool
diff --git a/etc/kolla/globals.yml b/etc/kolla/globals.yml
index ca5c780073..04d8107e91 100644
--- a/etc/kolla/globals.yml
+++ b/etc/kolla/globals.yml
@@ -202,6 +202,9 @@ kolla_internal_vip_address: "10.10.10.254"
 # must provide separate disks than those for the OSDs
 #ceph_enable_cache: "no"
 
+# Set to no if using external Ceph without cephx.
+#external_ceph_cephx_enabled: "yes"
+
 # Ceph is not able to determine the size of a cache pool automatically,
 # so the configuration on the absolute size is required here, otherwise the flush/evict will not work.
 #ceph_target_max_bytes: ""