From cfc24f6eadedfd67e136868c24a7792c60fd0733 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 21 Jan 2015 18:00:07 +0800 Subject: [PATCH 1/3] 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" From e730dc89896ea89d9475c044f11b1e63ad6585fb Mon Sep 17 00:00:00 2001 From: root Date: Thu, 22 Jan 2015 09:08:21 +0800 Subject: [PATCH 2/3] add return support lookup --- logrotate/jobs.sls | 3 ++- logrotate/map.jinja | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/logrotate/jobs.sls b/logrotate/jobs.sls index b9609d9..e11483d 100644 --- a/logrotate/jobs.sls +++ b/logrotate/jobs.sls @@ -1,5 +1,6 @@ # 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 @@ -14,7 +15,7 @@ logrotate_directory: - require: - pkg: logrotate -{% for key,value in logrotate.jobs.iteritems() %} +{% for key,value in jobs.iteritems() %} {{key}}: file.managed: - name: {{ logrotate.include_dir }}/{{ key.split("/")[-1] }} diff --git a/logrotate/map.jinja b/logrotate/map.jinja index 7a504cf..683ae43 100644 --- a/logrotate/map.jinja +++ b/logrotate/map.jinja @@ -23,4 +23,4 @@ 'user' : 'root', 'group' : 'root', }, -}, merge=salt['pillar.get']('logrotate')) %} +}, merge=salt['pillar.get']('logrotate:lookup')) %} From 41d9b697cb4888516bda8064aa626ec2d66cf354 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 22 Jan 2015 09:18:16 +0800 Subject: [PATCH 3/3] fix pillar.example --- pillar.example | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/pillar.example b/pillar.example index 6f3870e..7ff551d 100644 --- a/pillar.example +++ b/pillar.example @@ -3,6 +3,12 @@ logrotate: pkg: 'logrotate' service: 'crond' jobs: - "/home/www/billing.irknet.ru/logs/mysql_logs": - - "mounthly" - - "month" + "/tmp/var/log/mysql/error": + - "weekly" + - "missingok" + - "rotate 52" + - "compress" + - "delaycompress" + - "notifempty" + - "create 640 root adm" + - "sharedscripts"