diff --git a/logrotate/jobs.sls b/logrotate/jobs.sls new file mode 100644 index 0000000..e11483d --- /dev/null +++ b/logrotate/jobs.sls @@ -0,0 +1,34 @@ +# vim: sts=2 ts=2 sw=2 et ai +{% from "logrotate/map.jinja" import logrotate with context %} +{% set jobs = salt['pillar.get']('logrotate:jobs') %} + +include: + - logrotate + +logrotate_directory: + file.directory: + - name: {{ logrotate.include_dir }} + - user: {{ salt['pillar.get']('logrotate:config:user', logrotate.user) }} + - group: {{ salt['pillar.get']('logrotate:config:group', logrotate.group) }} + - mode: 755 + - makedirs: True + - require: + - pkg: logrotate + +{% for key,value in jobs.iteritems() %} +{{key}}: + file.managed: + - name: {{ logrotate.include_dir }}/{{ key.split("/")[-1] }} + - source: salt://logrotate/templates/job.tmpl + - template: jinja + - user: {{ salt['pillar.get']('logrotate:config:user', logrotate.user) }} + - group: {{ salt['pillar.get']('logrotate:config:group', logrotate.group) }} + - mode: {{ salt['pillar.get']('logrotate:config:mode', '644') }} + - require: + - pkg: logrotate + - watch_in: + - service: {{ logrotate.service }} + - context: + path: {{ key }} + data: {{ value }} +{%- endfor -%} diff --git a/logrotate/templates/job.tmpl b/logrotate/templates/job.tmpl new file mode 100644 index 0000000..feb806d --- /dev/null +++ b/logrotate/templates/job.tmpl @@ -0,0 +1,6 @@ +# vim: sw=2 sts=2 ts=2 sw et +{{ path }} { + {% for item in data %} + {{ item }} + {%- endfor %} +} diff --git a/pillar.example b/pillar.example index 5cd0bce..7ff551d 100644 --- a/pillar.example +++ b/pillar.example @@ -1,5 +1,14 @@ +# vim: sts=2 ts=2 sw=2 et ai logrotate: - - lookup: - pkg: 'logrotate' - service: 'crond' + pkg: 'logrotate' + service: 'crond' + jobs: + "/tmp/var/log/mysql/error": + - "weekly" + - "missingok" + - "rotate 52" + - "compress" + - "delaycompress" + - "notifempty" + - "create 640 root adm" + - "sharedscripts"