@@ -6,7 +6,7 @@ include: | |||
logrotate-config: | |||
file.managed: | |||
- name: {{ logrotate.conf_file }} | |||
- source: salt://logrotate/files/{{ salt['grains.get']('os_family') }}/logrotate.conf | |||
- source: salt://logrotate/templates/logrotate.conf.tmpl | |||
- template: jinja | |||
- user: {{ salt['pillar.get']('logrotate:config:user', logrotate.user) }} | |||
- group: {{ salt['pillar.get']('logrotate:config:group', logrotate.group) }} |
@@ -8,4 +8,9 @@ logrotate: | |||
user: root | |||
group: root | |||
service: cron | |||
login_records_jobs: True | |||
default_config: | |||
weekly: True | |||
rotate: 4 | |||
create: True | |||
@@ -1,38 +0,0 @@ | |||
# see "man logrotate" for details | |||
# rotate log files weekly | |||
weekly | |||
# keep 4 weeks worth of backlogs | |||
rotate 4 | |||
# restrict maximum size of log files | |||
#size 20M | |||
# create new (empty) log files after rotating old ones | |||
create | |||
# uncomment this if you want your log files compressed | |||
#compress | |||
# Logs are moved into directory for rotation | |||
# olddir /var/log/archive | |||
# Ignore pacman saved files | |||
tabooext + .pacorig .pacnew .pacsave | |||
# Arch packages drop log rotation information into this directory | |||
include /etc/logrotate.d | |||
/var/log/wtmp { | |||
monthly | |||
create 0664 root utmp | |||
minsize 1M | |||
rotate 1 | |||
} | |||
/var/log/btmp { | |||
missingok | |||
monthly | |||
create 0600 root utmp | |||
rotate 1 | |||
} |
@@ -1,38 +0,0 @@ | |||
# see "man logrotate" for details | |||
# rotate log files weekly | |||
weekly | |||
{% if grains['os'] == "Ubuntu" %} | |||
# use the syslog group by default, since this is the owning group | |||
# of /var/log/syslog. | |||
su root syslog | |||
{% endif %} | |||
# keep 4 weeks worth of backlogs | |||
rotate 4 | |||
# create new (empty) log files after rotating old ones | |||
create | |||
# uncomment this if you want your log files compressed | |||
#compress | |||
# packages drop log rotation information into this directory | |||
include /etc/logrotate.d | |||
# no packages own wtmp, or btmp -- we'll rotate them here | |||
/var/log/wtmp { | |||
missingok | |||
monthly | |||
create 0664 root utmp | |||
rotate 1 | |||
} | |||
/var/log/btmp { | |||
missingok | |||
monthly | |||
create 0660 root utmp | |||
rotate 1 | |||
} | |||
# system-specific logs may be configured here |
@@ -1,35 +0,0 @@ | |||
# see "man logrotate" for details | |||
# rotate log files weekly | |||
weekly | |||
# keep 4 weeks worth of backlogs | |||
rotate 4 | |||
# create new (empty) log files after rotating old ones | |||
create | |||
# use date as a suffix of the rotated file | |||
dateext | |||
# uncomment this if you want your log files compressed | |||
#compress | |||
# RPM packages drop log rotation information into this directory | |||
include /etc/logrotate.d | |||
# no packages own wtmp and btmp -- we'll rotate them here | |||
/var/log/wtmp { | |||
monthly | |||
create 0664 root utmp | |||
minsize 1M | |||
rotate 1 | |||
} | |||
/var/log/btmp { | |||
missingok | |||
monthly | |||
create 0600 root utmp | |||
rotate 1 | |||
} | |||
# system-specific logs may be also be configured here. |
@@ -1,26 +0,0 @@ | |||
# see "man logrotate" for details | |||
# rotate log files weekly | |||
weekly | |||
# keep 4 weeks worth of backlogs | |||
rotate 4 | |||
# create new (empty) log files after rotating old ones | |||
create | |||
# use date as a suffix of the rotated file | |||
dateext | |||
# uncomment this if you want your log files compressed | |||
#compress | |||
# comment these to switch compression to use gzip or another | |||
# compression scheme | |||
compresscmd /usr/bin/xz | |||
uncompresscmd /usr/bin/xzdec | |||
# former versions had to have the compressext set accordingly | |||
#compressext .xz | |||
# RPM packages drop log rotation information into this directory | |||
include /etc/logrotate.d |
@@ -1,18 +1,46 @@ | |||
# -*- coding: utf-8 -*- | |||
# vim: ft=jinja | |||
{% import_yaml 'logrotate/defaults.yaml' as default_settings %} | |||
{% set os_family_map = salt['grains.filter_by']({ | |||
'Arch': { | |||
'service': 'logrotate.timer', | |||
'default_config': { | |||
'tabooext': '+ .pacorig .pacnew .pacsave', | |||
}, | |||
}, | |||
'RedHat': { | |||
'service': 'crond', | |||
'default_config': { | |||
'dateext': True, | |||
}, | |||
}, | |||
'Arch': { | |||
'service': 'logrotate.timer', | |||
'Suse': { | |||
'login_records_jobs': False, | |||
'default_config': { | |||
'dateext': True, | |||
'compresscmd': '/usr/bin/xz', | |||
'uncompresscmd': '/usr/bin/xzdec', | |||
}, | |||
}, | |||
}, | |||
grain="os_family", | |||
merge=salt['pillar.get']('logrotate:lookup')) | |||
merge=salt['pillar.get']('logrotate:lookup')) or {} | |||
%} | |||
{% set os_map = salt['grains.filter_by']({ | |||
'Ubuntu': { | |||
'default_config': { | |||
'su': 'root syslog' | |||
}, | |||
}, | |||
}, | |||
grain="os", | |||
merge=os_family_map) or {} | |||
%} | |||
{% do default_settings.logrotate.update(os_family_map) %} | |||
{% do default_settings.logrotate.update(os_map) %} | |||
{% set logrotate = salt['pillar.get']( | |||
'logrotate', |
@@ -0,0 +1,70 @@ | |||
{%- from "logrotate/map.jinja" import logrotate with context -%} | |||
{%- set config = pillar.get('logrotate:default_config', logrotate.default_config) -%} | |||
{%- set processed_parameters = [] -%} | |||
{%- macro set_parameter(parameter, default=None) -%} | |||
{%- set value = config.get(parameter, default) -%} | |||
{%- if value is not none %} | |||
{%- if value is sameas true -%} | |||
{{ parameter }} | |||
{%- elif value is sameas false -%} | |||
no{{ parameter }} | |||
{%- elif value is string or value is number -%} | |||
{{ parameter }} {{ value }} | |||
{%- else -%} | |||
{{ value }} | |||
{%- endif %} | |||
{%- do processed_parameters.append(parameter) %} | |||
{%- endif %} | |||
{%- endmacro -%} | |||
# Managed by saltstack | |||
# | |||
# See "man logrotate" for details. | |||
# log files rotation period | |||
{% for period in ['hourly', 'daily', 'weekly', 'yearly'] -%} | |||
{{ set_parameter(period) }} | |||
{%- endfor %} | |||
# keep x periods worth of backlogs | |||
{{ set_parameter('rotate', 4) }} | |||
# create new (empty) log files after rotating old ones | |||
{{ set_parameter('create', True) }} | |||
# use date as a suffix of the rotated file | |||
{{ set_parameter('dateext', False) }} | |||
# change this if you want your log files compressed | |||
{{ set_parameter('compress', False) }} | |||
{#- Accept arbitrary parameters #} | |||
{%- for parameter in config %} | |||
{%- if parameter not in processed_parameters %} | |||
{{ set_parameter(parameter) }} | |||
{%- endif %} | |||
{%- endfor %} | |||
# packages drop log rotation information into this directory | |||
include {{ logrotate.include_dir }} | |||
{% if logrotate.login_records_jobs -%} | |||
# no packages own wtmp and btmp -- we'll rotate them here | |||
/var/log/wtmp { | |||
monthly | |||
create 0664 root utmp | |||
minsize 1M | |||
rotate 1 | |||
} | |||
/var/log/btmp { | |||
missingok | |||
monthly | |||
create 0600 root utmp | |||
rotate 1 | |||
} | |||
{%- endif %} | |||
# system-specific logs may be configured here |