Factorize minion grains generation
diff --git a/salt/files/minion.conf b/salt/files/minion.conf
index f1b9de5..810158a 100644
--- a/salt/files/minion.conf
+++ b/salt/files/minion.conf
@@ -22,24 +22,24 @@
 
 id: {{ system.name }}.{{ system.domain }}
 
+{%- set excluded_keys = ('master', 'system', 'public_keys', 'private_keys', 'known_hosts', '__reclass__', '_secret', '_param') %}
+
 grains:
   {%- if minion.get('manage_roles', True) %}
   roles:
   {%- for key, value in pillar.items() %}
-  {%- if key != 'master' and key != 'system' and key != 'public_keys' and key != 'private_keys' and key != 'known_hosts' and key != '__reclass__'  and key != '_secret' and key != '_param' %}
+  {%- if key not in excluded_keys  %}
   {%- for subkey, subvalue in value.iteritems() %}
-  {%- if subvalue.enabled is defined %}
-  {%- if subvalue.enabled %}
+  {%- if subvalue.enabled is defined and subvalue.enabled %}
   - {{key}}.{{ subkey }}
   {%- endif %}
-  {%- endif %}
   {%- endfor %}
   {%- endif %}
   {%- endfor %}
   {%- endif %}
   services:
   {%- for key, value in pillar.items() %}
-  {%- if key != 'master' and key != 'system' and key != 'public_keys' and key != 'private_keys' and key != 'known_hosts' and key != '__reclass__'  and key != '_secret' and key != '_param' %}
+  {%- if key not in excluded_keys %}
   - {{key}}
   {%- endif %}
   {%- endfor %}