diff --git a/ansible/roles/cinder/handlers/main.yml b/ansible/roles/cinder/handlers/main.yml
index 8a2d2dde06..08122965a4 100644
--- a/ansible/roles/cinder/handlers/main.yml
+++ b/ansible/roles/cinder/handlers/main.yml
@@ -78,6 +78,7 @@
       or policy_overwriting.changed | bool
       or cinder_volume_container.changed | bool
       or ( ceph_conf is not none and ceph_conf.changed | bool )
+      or ( cinder_volume_ceph_keyring is defined and cinder_volume_ceph_keyring.changed | bool )
 
 - name: Restart cinder-backup container
   vars:
@@ -106,3 +107,4 @@
       or policy_overwriting.changed | bool
       or cinder_backup_container.changed | bool
       or ( ceph_conf is not none and ceph_conf.changed | bool )
+      or ( cinder_backup_ceph_keyring is defined and cinder_backup_ceph_keyring.changed | bool )
diff --git a/ansible/roles/cinder/tasks/external_ceph.yml b/ansible/roles/cinder/tasks/external_ceph.yml
index 66b735d0fc..f60614974e 100644
--- a/ansible/roles/cinder/tasks/external_ceph.yml
+++ b/ansible/roles/cinder/tasks/external_ceph.yml
@@ -26,6 +26,7 @@
     dest: "{{ node_config_directory }}/cinder-volume/"
     mode: "0660"
   become: true
+  register: cinder_volume_ceph_keyring
   with_fileglob:
     - "{{ node_custom_config }}/cinder/cinder-volume/ceph.client*"
   when:
@@ -41,6 +42,7 @@
     dest: "{{ node_config_directory }}/cinder-backup/"
     mode: "0660"
   become: true
+  register: cinder_backup_ceph_keyring
   with_fileglob:
     - "{{ node_custom_config }}/cinder/cinder-backup/ceph.client*"
   when:
diff --git a/ansible/roles/glance/handlers/main.yml b/ansible/roles/glance/handlers/main.yml
index f4a53179be..c6fad22423 100644
--- a/ansible/roles/glance/handlers/main.yml
+++ b/ansible/roles/glance/handlers/main.yml
@@ -27,3 +27,4 @@
       or policy_overwriting.changed | bool
       or glance_api_container.changed | bool
       or glance_upgrading | bool
+      or ( glance_api_ceph_files is defined and glance_api_ceph_files.changed | bool )
diff --git a/ansible/roles/glance/tasks/external_ceph.yml b/ansible/roles/glance/tasks/external_ceph.yml
index 33b20731b8..4bf6f8f87d 100644
--- a/ansible/roles/glance/tasks/external_ceph.yml
+++ b/ansible/roles/glance/tasks/external_ceph.yml
@@ -5,6 +5,7 @@
     dest: "{{ node_config_directory }}/glance-api/"
     mode: "0660"
   become: true
+  register: glance_api_ceph_files
   when: inventory_hostname in groups['glance-api']
   with_fileglob:
     - "{{ node_custom_config }}/glance/ceph*"
diff --git a/ansible/roles/nova/handlers/main.yml b/ansible/roles/nova/handlers/main.yml
index b46d00fc55..ad73838e9a 100644
--- a/ansible/roles/nova/handlers/main.yml
+++ b/ansible/roles/nova/handlers/main.yml
@@ -79,6 +79,9 @@
       or nova_libvirt_confs.changed | bool
       or nova_libvirt_container.changed | bool
       or ( ceph_conf is not none and ceph_conf.changed | bool )
+      or ( nova_ceph_keyring is defined and nova_ceph_keyring.changed | bool )
+      or ( libvirt_secrets_xml is defined and libvirt_secrets_xml.changed | bool )
+      or ( libvirt_secrets_key is defined and libvirt_secrets_key.changed | bool )
 
 - name: Restart nova-scheduler container
   vars:
@@ -267,6 +270,7 @@
       or nova_compute_release_file | bool
       or nova_compute_container.changed | bool
       or ( ceph_conf is not none and ceph_conf.changed | bool )
+      or ( nova_ceph_keyring is defined and nova_ceph_keyring.changed | bool )
 
 - name: Restart nova-compute-ironic container
   vars:
diff --git a/ansible/roles/nova/tasks/external_ceph.yml b/ansible/roles/nova/tasks/external_ceph.yml
index 6d5663fa39..20698e9aa3 100644
--- a/ansible/roles/nova/tasks/external_ceph.yml
+++ b/ansible/roles/nova/tasks/external_ceph.yml
@@ -34,6 +34,7 @@
     dest: "{{ node_config_directory }}/{{ item }}/"
     mode: "0660"
   become: true
+  register: nova_ceph_keyring
   with_items:
     - nova-compute
     - nova-libvirt
@@ -67,6 +68,7 @@
     dest: "{{ node_config_directory }}/nova-libvirt/secrets/{{ item.uuid }}.xml"
     mode: "0600"
   become: true
+  register: libvirt_secrets_xml
   when:
     - inventory_hostname in groups['compute']
     - item.enabled | bool
@@ -102,6 +104,7 @@
     dest: "{{ node_config_directory }}/nova-libvirt/secrets/{{ item.uuid }}.base64"
     mode: "0600"
   become: true
+  register: libvirt_secrets_key
   when:
     - inventory_hostname in groups['compute']
     - item.enabled | bool