From cfc24f6eadedfd67e136868c24a7792c60fd0733 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 21 Jan 2015 18:00:07 +0800 Subject: [PATCH] add support jobs --- logrotate/jobs.sls | 33 +++++++++++++++++++++++++++++++++ logrotate/map.jinja | 2 +- logrotate/templates/job.tmpl | 6 ++++++ pillar.example | 11 +++++++---- 4 files changed, 47 insertions(+), 5 deletions(-) create mode 100644 logrotate/jobs.sls create mode 100644 logrotate/templates/job.tmpl diff --git a/logrotate/jobs.sls b/logrotate/jobs.sls new file mode 100644 index 0000000..b9609d9 --- /dev/null +++ b/logrotate/jobs.sls @@ -0,0 +1,33 @@ +# vim: sts=2 ts=2 sw=2 et ai +{% from "logrotate/map.jinja" import logrotate with context %} + +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 logrotate.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/map.jinja b/logrotate/map.jinja index 683ae43..7a504cf 100644 --- a/logrotate/map.jinja +++ b/logrotate/map.jinja @@ -23,4 +23,4 @@ 'user' : 'root', 'group' : 'root', }, -}, merge=salt['pillar.get']('logrotate:lookup')) %} +}, merge=salt['pillar.get']('logrotate')) %} 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..6f3870e 100644 --- a/pillar.example +++ b/pillar.example @@ -1,5 +1,8 @@ +# vim: sts=2 ts=2 sw=2 et ai logrotate: - - lookup: - pkg: 'logrotate' - service: 'crond' + pkg: 'logrotate' + service: 'crond' + jobs: + "/home/www/billing.irknet.ru/logs/mysql_logs": + - "mounthly" + - "month"