Parcourir la source

initial upload

master
Scott Coil il y a 10 ans
Parent
révision
db5f8586dc
7 fichiers modifiés avec 186 ajouts et 2 suppressions
  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 Voir le fichier

@@ -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 Voir le fichier

@@ -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 Voir le fichier

@@ -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 Voir le fichier

@@ -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 Voir le fichier

@@ -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 Voir le fichier

@@ -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 Voir le fichier

@@ -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')) %}

Chargement…
Annuler
Enregistrer