Ansible中rsyslog的Logrotate
我试图使用Ansible更改rsyslog logrotate配置,但在运行任务时:Ansible中rsyslog的Logrotate,ansible,syslog,rsyslog,logrotate,Ansible,Syslog,Rsyslog,Logrotate,我试图使用Ansible更改rsyslog logrotate配置,但在运行任务时: - name: Setup logrotate.d scripts template: src: logrotate.d.j2 dest: "{{ logrotate_conf_dir }}{{ item.name }}" with_items: "{{ logrotate_scripts }}" when: logrotate_scripts is defined 这将添加此类配
- name: Setup logrotate.d scripts
template:
src: logrotate.d.j2
dest: "{{ logrotate_conf_dir }}{{ item.name }}"
with_items: "{{ logrotate_scripts }}"
when: logrotate_scripts is defined
这将添加此类配置:
logrotate_scripts:
- name: rsyslog
path:
- "/var/log/syslog.log"
- "/var/log/daemon.log"
- "/var/log/kern.log"
- "/var/log/mail.log"
- "/var/log/user.log"
- "/var/log/lpr.log"
- "/var/log/auth.log"
- "/var/log/cron.log"
- "/var/log/debug"
- "/var/log/messages"
options:
- daily
- missingok
- maxsize 100M
- rotate 14
- compress
- compresscmd /bin/bzip2
- compressoptions -4
- compressext .bz2
- notifempty
我得到了错误的格式:
['/var/log/syslog.log', '/var/log/daemon.log', '/var/log/kern.log', '/var/log/mail.log', '/var/log/user.log', '/var/log/lpr.log', '/var/log/auth.log', '/var/log/cron.log', '/var/log/debug', '/var/log/messages'] {
daily
missingok
maxsize 100M
rotate 14
compress
compresscmd /bin/bzip2
compressoptions -4
compressext .bz2
notifempty
}
这是我用于所有logrotate脚本nginx、php等的模板,但对于rsyslog来说,它不能正常工作
{{ item.path }} {
{% if item.options is defined -%}
{% for option in item.options -%}
{{ option }}
{% endfor -%}
{% endif %}
{%- if item.scripts is defined -%}
{%- for name, script in item.scripts.iteritems() -%}
{{ name }}
{{ script }}
endscript
{% endfor -%}
{% endif -%}
}
我应该如何正确地传递路径列表以获得这种效果
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
{
daily
missingok
maxsize 100M
rotate 14
compress
compresscmd /bin/bzip2
compressoptions -4
compressext .bz2
notifempty
}
您没有共享模板文件,但您可能希望其中包含类似的内容:
{% for path in item.path %}
path
{% endfor %}
获取路径列表
除非您正在编辑多个文件,否则使用像这样的项目似乎是错误的。使用LINEINFLE根据您的设置定制标准logrotate配置可能更好