| |
| {% set client = salt['grains.filter_by']({ |
| 'Arch': { |
| 'pkgs': ['collectd'], |
| 'service': 'collectd', |
| 'defaults_file': '/etc/default/collectd', |
| 'config_file': '/etc/collectd.conf', |
| 'config_dir': '/etc/collectd.d', |
| 'read_interval': 60, |
| 'file_logging': True, |
| 'syslog_logging': True, |
| 'use_fqdn': True, |
| 'automatic_starting': True, |
| }, |
| 'Debian': { |
| 'pkgs': ['collectd-core', 'snmp', 'python-yaml', 'libpython2.7', 'python-simplejson'], |
| 'service': 'collectd', |
| 'defaults_file': '/etc/default/collectd', |
| 'config_file': '/etc/collectd/collectd.conf', |
| 'config_dir': '/etc/collectd/conf.d', |
| 'read_interval': 60, |
| 'file_logging': True, |
| 'syslog_logging': True, |
| 'use_fqdn': True, |
| 'automatic_starting': True, |
| }, |
| 'RedHat': { |
| 'pkgs': ['collectd', 'collectd-ping', 'collectd-netlink', 'net-snmp', 'PyYAML'], |
| 'service': 'collectd', |
| 'defaults_file': '/etc/sysconfig/collectd', |
| 'config_file': '/etc/collectd.conf', |
| 'config_dir': '/etc/collectd.d', |
| 'read_interval': 60, |
| 'file_logging': True, |
| 'syslog_logging': True, |
| 'use_fqdn': True, |
| 'automatic_starting': True, |
| }, |
| }, merge=salt['pillar.get']('collectd:client')) %} |
| |
| {% set remote_client = salt['grains.filter_by']({ |
| 'default': { |
| 'service': 'remote_collectd', |
| 'defaults_file': '/etc/default/remote_collectd', |
| 'config_file': '/etc/remote_collectd/collectd.conf', |
| 'config_dir': '/etc/remote_collectd/conf.d', |
| 'read_interval': 60, |
| 'file_logging': True, |
| 'syslog_logging': False, |
| 'use_fqdn': True, |
| 'automatic_starting': True, |
| } |
| }, merge=salt['pillar.get']('collectd:remote_client')) %} |
| |
| {%- set service_grains = {'collectd': {'remote_plugin': {}, 'local_plugin': {}}} %} |
| {%- for service_name, service in pillar.items() %} |
| {%- if service.get('_support', {}).get('collectd', {}).get('enabled', False) %} |
| {%- set grains_fragment_file = service_name+'/meta/collectd.yml' %} |
| {%- macro load_grains_file() %}{% include grains_fragment_file ignore missing %}{% endmacro %} |
| {%- set grains_yaml = load_grains_file()|load_yaml %} |
| {%- if grains_yaml is mapping %} |
| {%- set service_grains = salt['grains.filter_by']({'default': service_grains}, merge={'collectd': grains_yaml}) %} |
| {%- endif %} |
| {%- endif %} |
| {%- endfor %} |