1
0
Fork 0
mirror of synced 2024-11-18 06:55:34 -05:00
formula-logrotate/logrotate/templates/logrotate.conf.tmpl
Imran Iqbal 57c88a8140
fix: make necessary modifications to get working on salt-ssh
* https://freenode.logbot.info/saltstack-formulas/20200506#c3811885-c3812572
* Avoid `defaults.merge`
* Send template values by `context`, to avoid:

```python
      ID: logrotate-config
Function: file.managed
    Name: /etc/logrotate.conf
  Result: False
 Comment: An exception occurred in this state: Traceback (most recent call last):
            File "/var/tmp/.root_08c4d3_salt/pyall/salt/utils/templates.py", line 394, in render_jinja_tmpl
              output = template.render(**decoded_context)
            File "/var/tmp/.root_08c4d3_salt/pyall/jinja2/environment.py", line 1008, in render
              return self.environment.handle_exception(exc_info, True)
            File "/var/tmp/.root_08c4d3_salt/pyall/jinja2/environment.py", line 780, in handle_exception
              reraise(exc_type, exc_value, tb)
            File "/var/tmp/.root_08c4d3_salt/pyall/jinja2/_compat.py", line 37, in reraise
              raise value.with_traceback(tb)
            File "<template>", line 1, in top-level template code
            File "/var/tmp/.root_08c4d3_salt/pyall/salt/utils/jinja.py", line 193, in get_source
              raise TemplateNotFound(template)
          jinja2.exceptions.TemplateNotFound: logrotate/map.jinja

          During handling of the above exception, another exception occurred:

          Traceback (most recent call last):
            File "/var/tmp/.root_08c4d3_salt/pyall/salt/state.py", line 1981, in call
              **cdata['kwargs'])
            File "/var/tmp/.root_08c4d3_salt/pyall/salt/loader.py", line 1977, in wrapper
              return f(*args, **kwargs)
            File "/var/tmp/.root_08c4d3_salt/pyall/salt/states/file.py", line 3037, in managed
              **kwargs
            File "/var/tmp/.root_08c4d3_salt/pyall/salt/modules/file.py", line 4846, in check_managed_changes
              **kwargs)
            File "/var/tmp/.root_08c4d3_salt/pyall/salt/modules/file.py", line 4287, in get_managed
              **kwargs)
            File "/var/tmp/.root_08c4d3_salt/pyall/salt/utils/templates.py", line 169, in render_tmpl
              output = render_str(tmplstr, context, tmplpath)
            File "/var/tmp/.root_08c4d3_salt/pyall/salt/utils/templates.py", line 443, in render_jinja_tmpl
              trace=tracestr)
          salt.exceptions.SaltRenderError: Jinja error: logrotate/map.jinja
          Traceback (most recent call last):
            File "/var/tmp/.root_08c4d3_salt/pyall/salt/utils/templates.py", line 394, in render_jinja_tmpl
              output = template.render(**decoded_context)
            File "/var/tmp/.root_08c4d3_salt/pyall/jinja2/environment.py", line 1008, in render
              return self.environment.handle_exception(exc_info, True)
            File "/var/tmp/.root_08c4d3_salt/pyall/jinja2/environment.py", line 780, in handle_exception
              reraise(exc_type, exc_value, tb)
            File "/var/tmp/.root_08c4d3_salt/pyall/jinja2/_compat.py", line 37, in reraise
              raise value.with_traceback(tb)
            File "<template>", line 1, in top-level template code
            File "/var/tmp/.root_08c4d3_salt/pyall/salt/utils/jinja.py", line 193, in get_source
              raise TemplateNotFound(template)
          jinja2.exceptions.TemplateNotFound: logrotate/map.jinja

          ; line 1

          ---
          {%- from "logrotate/map.jinja" import logrotate with context -%}    <======================
          {%- set config = salt['pillar.get']('logrotate:default_config', logrotate.default_config) -%}

          {%- set processed_parameters = [] -%}

          {%- macro set_parameter(parameter, default=None) -%}
          [...]
```
2020-05-06 15:42:57 +01:00

69 lines
1.7 KiB
Cheetah

{%- set config = salt['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