Add support for default logrotate options
This commit is contained in:
parent
0846ae41e3
commit
98e6f6a909
8 changed files with 109 additions and 143 deletions
|
@ -6,7 +6,7 @@ include:
|
||||||
logrotate-config:
|
logrotate-config:
|
||||||
file.managed:
|
file.managed:
|
||||||
- name: {{ logrotate.conf_file }}
|
- name: {{ logrotate.conf_file }}
|
||||||
- source: salt://logrotate/files/{{ salt['grains.get']('os_family') }}/logrotate.conf
|
- source: salt://logrotate/templates/logrotate.conf.tmpl
|
||||||
- template: jinja
|
- template: jinja
|
||||||
- user: {{ salt['pillar.get']('logrotate:config:user', logrotate.user) }}
|
- user: {{ salt['pillar.get']('logrotate:config:user', logrotate.user) }}
|
||||||
- group: {{ salt['pillar.get']('logrotate:config:group', logrotate.group) }}
|
- group: {{ salt['pillar.get']('logrotate:config:group', logrotate.group) }}
|
||||||
|
|
|
@ -8,4 +8,9 @@ logrotate:
|
||||||
user: root
|
user: root
|
||||||
group: root
|
group: root
|
||||||
service: cron
|
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 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# vim: ft=jinja
|
# vim: ft=jinja
|
||||||
|
|
||||||
|
{% import_yaml 'logrotate/defaults.yaml' as default_settings %}
|
||||||
|
|
||||||
{% set os_family_map = salt['grains.filter_by']({
|
{% set os_family_map = salt['grains.filter_by']({
|
||||||
'RedHat': {
|
|
||||||
'service': 'crond',
|
|
||||||
},
|
|
||||||
'Arch': {
|
'Arch': {
|
||||||
'service': 'logrotate.timer',
|
'service': 'logrotate.timer',
|
||||||
|
'default_config': {
|
||||||
|
'tabooext': '+ .pacorig .pacnew .pacsave',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'RedHat': {
|
||||||
|
'service': 'crond',
|
||||||
|
'default_config': {
|
||||||
|
'dateext': True,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'Suse': {
|
||||||
|
'login_records_jobs': False,
|
||||||
|
'default_config': {
|
||||||
|
'dateext': True,
|
||||||
|
'compresscmd': '/usr/bin/xz',
|
||||||
|
'uncompresscmd': '/usr/bin/xzdec',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
grain="os_family",
|
grain="os_family",
|
||||||
merge=salt['pillar.get']('logrotate:lookup'))
|
merge=salt['pillar.get']('logrotate:lookup')) or {}
|
||||||
|
%}
|
||||||
|
|
||||||
{% do default_settings.logrotate.update(os_family_map) %}
|
{% 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_map) %}
|
||||||
|
|
||||||
{% set logrotate = salt['pillar.get'](
|
{% set logrotate = salt['pillar.get'](
|
||||||
'logrotate',
|
'logrotate',
|
||||||
|
|
70
logrotate/templates/logrotate.conf.tmpl
Normal file
70
logrotate/templates/logrotate.conf.tmpl
Normal file
|
@ -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
|
Loading…
Reference in a new issue