blob: 87d51e9eb3a1c95170fb40f166df849992fad84a [file] [log] [blame]
{%- from "sensu/map.jinja" import client with context %}
{%- if client.enabled %}
include:
- sensu._common
sensu_client_packages:
pkg.installed:
- names: {{ client.pkgs }}
- require_in:
- file: /etc/sensu
/etc/sensu/plugins:
file.recurse:
- clean: true
- source: salt://sensu/files/checks
- user: sensu
- group: sensu
- file_mode: 755
- dir_mode: 755
- makedirs: true
- require:
- file: /srv/sensu
{%- for plugin_name, plugin in client.plugin.iteritems() %}
{%- if plugin.enabled %}
{%- if plugin_name == 'sensu_community_plugins' %}
sensu_client_community_plugins:
pkg.installed:
- names: ruby-sensu-plugin
{%- endif %}
{%- if plugin_name == 'monitoring_for_openstack' %}
sensu_monitoring_os_packages:
pkg.installed:
- name: monitoring-for-openstack
{%- endif %}
{%- if plugin_name == 'network_monitoring' %}
sensu_monitoring_network_packages:
pkg.installed:
- name: libnet-snmp-perl
{%- endif %}
{%- endif %}
{%- endfor %}
sensu_client_checks_grains_dir:
file.directory:
- name: /etc/salt/grains.d
- mode: 700
- makedirs: true
- user: root
{%- set service_grains = {'sensu': {'check': {}}} %}
{%- for service_name, service in pillar.items() %}
{%- if service.get('_support', {}).get('sensu', {}).get('enabled', False) %}
{%- set grains_fragment_file = service_name+'/meta/sensu.yml' %}
{%- macro load_grains_file() %}{% include grains_fragment_file %}{% endmacro %}
{%- set grains_yaml = load_grains_file()|load_yaml %}
{%- set _dummy = service_grains.sensu.check.update(grains_yaml.check) %}
{%- endif %}
{%- endfor %}
sensu_client_checks_grains:
file.managed:
- name: /etc/salt/grains.d/sensu
- source: salt://sensu/files/sensu.grain
- template: jinja
- mode: 600
- defaults:
service_grains: {{ service_grains|yaml }}
- require:
- pkg: sensu_client_packages
- file: sensu_client_checks_grains_dir
/etc/sensu/conf.d/rabbitmq.json:
file.managed:
- source: salt://sensu/files/rabbitmq.json
- template: jinja
- mode: 644
- require:
- file: /etc/sensu
- watch_in:
- service: service_sensu_client
/etc/sensu/conf.d/client.json:
file.managed:
- source: salt://sensu/files/client.json
- template: jinja
- mode: 644
- require:
- file: /etc/sensu
- watch_in:
- service: service_sensu_client
service_sensu_client:
service.running:
- name: sensu-client
- enable: true
- require:
- pkg: sensu_client_packages
/etc/sudoers.d/90-sensu-user:
file.managed:
- source: salt://sensu/files/sudoer
- user: root
- group: root
- mode: 440
{%- endif %}