diff --git a/ansible/roles/glance/defaults/main.yml b/ansible/roles/glance/defaults/main.yml
index 52d1d243e2..53ce07891c 100644
--- a/ansible/roles/glance/defaults/main.yml
+++ b/ansible/roles/glance/defaults/main.yml
@@ -75,6 +75,8 @@ glance_backends:
 
 glance_store_backends: "{{ glance_backends|selectattr('enabled', 'equalto', true)|list }}"
 
+glance_api_hosts: "{{ groups['glance-api']|first if glance_backend_file | bool and glance_file_datadir_volume == 'glance' else groups['glance-api'] }}"
+
 ####################
 # OpenStack
 ####################
diff --git a/ansible/roles/glance/handlers/main.yml b/ansible/roles/glance/handlers/main.yml
index c914190cb6..328494e8e9 100644
--- a/ansible/roles/glance/handlers/main.yml
+++ b/ansible/roles/glance/handlers/main.yml
@@ -15,14 +15,13 @@
     volumes: "{{ service.volumes }}"
   when:
     - action != "config"
-    - inventory_hostname in groups[service.group]
+    - inventory_hostname in glance_api_hosts
     - service.enabled | bool
     - config_json.changed | bool
       or glance_conf.changed | bool
       or policy_json.changed | bool
       or glance_api_container.changed | bool
 
-
 - name: Restart glance-registry container
   vars:
     service_name: "glance-registry"