Bläddra i källkod

initial upload

tags/v0.2.0
Scott Coil 10 år sedan
förälder
incheckning
db5f8586dc
7 ändrade filer med 186 tillägg och 2 borttagningar
  1. +14
    -0
      LICENSE
  2. +28
    -2
      README.md
  3. +54
    -0
      pillar.example
  4. +16
    -0
      syslog_ng/config.sls
  5. +48
    -0
      syslog_ng/files/syslog-ng.conf
  6. +12
    -0
      syslog_ng/init.sls
  7. +14
    -0
      syslog_ng/map.jinja

+ 14
- 0
LICENSE Visa fil

@@ -0,0 +1,14 @@
Copyright (c) 2013-2014 Salt Stack Formulas

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.


+ 28
- 2
README.md Visa fil

@@ -1,2 +1,28 @@
syslog-ng-formula
=================
=========
syslog-ng
=========

Install and configure the syslog-ng service.

.. note::

See the full `Salt Formulas installation and usage instructions
<http://docs.saltstack.com/en/latest/topics/development/conventions/formulas.html>`_.

Available states
================

.. contents::
:local:

``syslog_ng``
-------

Install the ``sylog-ng`` package.

``syslog_ng.config``
-----------

Install and configure the ``syslog-ng`` package.

note: if the first character of a string is '=' the string is treated as a literal (not ecapsulated in quotes)

+ 54
- 0
pillar.example Visa fil

@@ -0,0 +1,54 @@
syslog_ng:
options:
- threaded: yes
- use_dns: no
- use_fqdn: yes
- keep_hostname: yes
- chain_hostnames: no
- check_hostname: no
source:
- s_internal:
- internal: null
- s_local:
- unix-stream: /dev/log
- file:
- /proc/kmsg
- program_override: kernel
destination:
- df_messages:
- file:
- /var/log/messages
- df_secure:
- file: /var/log/secure
- df_console:
- usertty: root
- dp_devnull:
- program: /bin/cat >/dev/null
- dr_central:
- syslog: my-remote.example.com
filter:
- f_messages:
- level: =info..emerg
- f_secure:
- facility: =authpriv
- f_emerg:
- level: =emerg
- facility: =uucp, news
log:
-
- source: =s_internal
- source: =s_local
- destination: =dr_central
-
- source: =s_local
- filter: =f_emerg
- destination: =df_console
-
- source: =s_local
- filter: =f_secure
- destination: =df_secure
- flags: =final
-
- source: =s_local
- filter: =f_messages
- destination: =df_messages

+ 16
- 0
syslog_ng/config.sls Visa fil

@@ -0,0 +1,16 @@
{% from "syslog_ng/map.jinja" import syslog_ng with context %}

include:
- syslog_ng

syslog_ng.conf:
file.managed:
- name: {{ syslog_ng.syslog_ng_config }}
- source: {{ syslog_ng.syslog_ng_config_src }}
- template: mako
- user: root
- group: root
- mode: 644
- watch_in:
- service: syslog_ng

+ 48
- 0
syslog_ng/files/syslog-ng.conf Visa fil

@@ -0,0 +1,48 @@
<% syslog_config = pillar.get('syslog_ng', {}) %>\
<%!
def rule_builder(rule):
if rule is None:
return ''
elif type(rule) is bool:
return {True: 'yes', False: 'no'}[rule]
elif type(rule) is int:
return rule
elif type(rule) is list:
return ' '.join([rule_builder(v) for v in rule])
elif type(rule) is dict:
return ' '.join([ '%s(%s)' % (k,rule_builder(v)) for k, v in rule.items()])
else:
if rule[0] == '=':
return rule[1:]
return '"%s"' % rule
%>\
@version: 3.3

@module tfjson

options {
% for rule in syslog_config.get('options', []):
${ rule_builder(rule) };
% endfor
};

% for obj in ('source', 'destination', 'filter', 'parser', 'rewrite', 'template'):
% for params in syslog_config.get(obj, []):
% for name, rules in params.items():
${ obj } ${ name } {
% for rule in rules:
${ rule_builder(rule) };
% endfor
};

% endfor
% endfor

% endfor
% for loggers in syslog_config.get('log', []):
log {
% for rule in loggers:
${ rule_builder(rule) };
% endfor
};
% endfor

+ 12
- 0
syslog_ng/init.sls Visa fil

@@ -0,0 +1,12 @@
{% from "syslog_ng/map.jinja" import syslog_ng with context %}

syslog_ng:
pkg.installed:
- name: {{ syslog_ng.package }}

service.running:
- enable: True
- name: {{ syslog_ng.service }}
- watch:
- pkg: syslog_ng


+ 14
- 0
syslog_ng/map.jinja Visa fil

@@ -0,0 +1,14 @@
{% set syslog_ng = salt['grains.filter_by']({
'Debian': {
'package': 'syslog-ng',
'service': 'syslog-ng',
'syslog_ng_config': '/etc/syslog-ng/syslog-ng.conf',
'syslog_ng_config_src': 'salt://syslog_ng/files/syslog-ng.conf',
},
'RedHat': {
'package': 'syslog-ng',
'service': 'syslog-ng',
'syslog_ng_config': '/etc/syslog-ng/syslog-ng.conf',
'syslog_ng_config_src': 'salt://syslog_ng/files/syslog-ng.conf',
},
}, merge=salt['pillar.get']('syslog_ng:lookup')) %}

Laddar…
Avbryt
Spara