Explorar el Código

Add support for default logrotate options

tags/v0.9.0
Gilles Dartiguelongue hace 7 años
padre
commit
98e6f6a909
Se han modificado 8 ficheros con 108 adiciones y 142 borrados
  1. +1
    -1
      logrotate/config.sls
  2. +5
    -0
      logrotate/defaults.yaml
  3. +0
    -38
      logrotate/files/Arch/logrotate.conf
  4. +0
    -38
      logrotate/files/Debian/logrotate.conf
  5. +0
    -35
      logrotate/files/RedHat/logrotate.conf
  6. +0
    -26
      logrotate/files/Suse/logrotate.conf
  7. +32
    -4
      logrotate/map.jinja
  8. +70
    -0
      logrotate/templates/logrotate.conf.tmpl

+ 1
- 1
logrotate/config.sls Ver fichero

@@ -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) }}

+ 5
- 0
logrotate/defaults.yaml Ver fichero

@@ -8,4 +8,9 @@ logrotate:
user: root
group: root
service: cron
login_records_jobs: True
default_config:
weekly: True
rotate: 4
create: True


+ 0
- 38
logrotate/files/Arch/logrotate.conf Ver fichero

@@ -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
}

+ 0
- 38
logrotate/files/Debian/logrotate.conf Ver fichero

@@ -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

+ 0
- 35
logrotate/files/RedHat/logrotate.conf Ver fichero

@@ -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.

+ 0
- 26
logrotate/files/Suse/logrotate.conf Ver fichero

@@ -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

+ 32
- 4
logrotate/map.jinja Ver fichero

@@ -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',

+ 70
- 0
logrotate/templates/logrotate.conf.tmpl Ver fichero

@@ -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

Cargando…
Cancelar
Guardar