Skip to content

Instantly share code, notes, and snippets.

@viq
Created May 9, 2014 17:12
Show Gist options
  • Save viq/75ff6293e12dd0c4ec26 to your computer and use it in GitHub Desktop.
Save viq/75ff6293e12dd0c4ec26 to your computer and use it in GitHub Desktop.
include:
- redis
- base.example-ca
logstash-reqs:
pkg.installed:
- pkgs:
- {{ salt['pillar.get']('packages:jre7') }}
user.present:
- name: logstash
- fullname: Logstash User
- shell: /sbin/nologin
- gid_from_name: True
- home: /opt/logstash
- system: True
patterns-dir:
file.directory:
- name: /etc/logstash/conf.d/patterns
- user: root
- mode: 755
- require:
- pkg: logstash
patterns-cisco:
file:
- managed
- name: /etc/logstash/conf.d/patterns/cisco.conf
- source: salt://logstash/patterns-cisco.conf
- require:
- file: patterns-dir
- watch_in:
- service: logstash
patterns-syslog:
file:
- managed
- name: /etc/logstash/conf.d/patterns/syslog.conf
- source: salt://logstash/patterns-syslog.conf
- require:
- file: patterns-dir
- watch_in:
- service: logstash
syslog-cert:
file:
- managed
- name: /etc/logstash/{{ grains['id'] }}.crt
- user: root
- group: logstash
- mode: 644
- contents_pillar: syslog_certs:ssl_cert
- require:
- sls: base.zwsa-ca
- pkg: logstash
- watch_in:
- service: logstash
syslog-key:
file:
- managed
- name: /etc/logstash/{{ grains['id'] }}.key
- user: root
- group: logstash
- mode: 640
- contents_pillar: syslog_certs:ssl_key
- require:
- sls: base.zwsa-ca
- pkg: logstash
- watch_in:
- service: logstash
logstash:
pkgrepo.managed:
- humanname: LogStash repository for {{ salt['pillar.get']('logstash:ls_ver') }}.x packages
{% if grains['os_family'] == 'RedHat' %}
- name: logstash-{{ salt['pillar.get']('logstash:ls_ver') }}
- baseurl: http://packages.elasticsearch.org/logstash/{{ salt['pillar.get']('logstash:ls_ver') }}/centos
- gpgcheck: 1
- gpgkey: http://packages.elasticsearch.org/GPG-KEY-elasticsearch
{% elif grains['os_family'] == 'Debian' %}
- name: deb http://packages.elasticsearch.org/logstash/{{ salt['pillar.get']('logstash:ls_ver') }}/debian stable main
- key_url: http://packages.elasticsearch.org/GPG-KEY-elasticsearch
{% endif %}
pkg.latest:
- names:
- logstash
- logstash-contrib
- require:
- pkg: logstash-reqs
- pkgrepo: logstash
service:
- running
- enable: True
- require:
- pkg: logstash
- watch:
- pkg: logstash
- file: sysconfig-logstash_indexer
- file: {{ salt['pillar.get']('logstash:indexer_name') }}
{{ salt['pillar.get']('logstash:indexer_name') }}:
file:
- managed
- name: {{ salt['pillar.get']('logstash:indexer_conf_dir') }}/{{ salt['pillar.get']('logstash:indexer_conf') }}
- source: salt://logstash/{{ salt['pillar.get']('logstash:indexer_conf') }}
- template: jinja
- require:
- pkg: logstash
{{ salt['pillar.get']('logstash:shipper_name') }}:
file:
- managed
- name: {{ salt['pillar.get']('logstash:shipper_conf_dir') }}/{{ salt['pillar.get']('logstash:shipper_conf') }}
- source: salt://logstash/{{ salt['pillar.get']('logstash:shipper_conf') }}
- template: jinja
- require:
- pkg: logstash
sysconfig-logstash_shipper:
file:
- managed
- name: /etc/sysconfig/logstash-shipper
- user: root
- mode: 644
- source: salt://logstash/logstash-sysconfig
- template: jinja
- context:
conf_dir: {{ salt['pillar.get']('logstash:shipper_conf_dir') }}
- require:
- pkg: logstash
sysconfig-logstash_indexer:
file:
- managed
- name: /etc/sysconfig/logstash
- user: root
- mode: 644
- source: salt://logstash/logstash-sysconfig
- template: jinja
- context:
conf_dir: {{ salt['pillar.get']('logstash:indexer_conf_dir') }}
- require:
- pkg: logstash
init-logstash_shipper:
file.symlink:
- name: /etc/init.d/logstash-shipper
- target: /etc/init.d/logstash
- require:
- pkg: logstash
{% if grains['os_family'] == 'RedHat' %}
cmd.wait:
- cwd: /
- user: root
- name: /sbin/chkconfig --add logstash-shipper
- watch:
- file: init-logstash_shipper
{% endif %}
shipper:
service:
- running
- enable: True
- name: logstash-shipper
- require:
- cmd: init-logstash_shipper
- watch:
- pkg: logstash
- file: sysconfig-logstash_shipper
- file: {{ salt['pillar.get']('logstash:shipper_name') }}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment