Add rsyslog role
This commit is contained in:
parent
c5d36282db
commit
33e83dd740
30
roles/rsyslog/defaults/main.yaml
Normal file
30
roles/rsyslog/defaults/main.yaml
Normal file
@ -0,0 +1,30 @@
|
||||
---
|
||||
rsyslog_package_name: rsyslog
|
||||
rsyslog_package_state: present
|
||||
|
||||
rsyslog_service_name: rsyslog
|
||||
rsyslog_service_state: started
|
||||
rsyslog_service_enabled: true
|
||||
|
||||
rsyslog_module_imuxsock_enabled: true
|
||||
rsyslog_module_immark_enabled: true
|
||||
rsyslog_module_imudp_enabled: true
|
||||
rsyslog_module_imtcp_enabled: true
|
||||
|
||||
rsyslog_load_modules:
|
||||
- name: imuxsock
|
||||
- name: immark
|
||||
- name: imklog
|
||||
params:
|
||||
permitnonkernelfacility: "on"
|
||||
|
||||
rsyslog_work_directory: /var/spool/rsyslog
|
||||
rsyslog_include_config: /etc/rsyslog.d/*.conf
|
||||
|
||||
#rsyslog_action_file_default_template: RSYSLOG_TraditionalFileFormat
|
||||
rsyslog_repeated_msg_reduction: "on"
|
||||
|
||||
rsyslog_default_rules_state: file
|
||||
rsyslog_default_rules: []
|
||||
rsyslog_rules: []
|
||||
rsyslog_archival_format_enabled: false
|
8
roles/rsyslog/handlers/main.yaml
Normal file
8
roles/rsyslog/handlers/main.yaml
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
- name: restart rsyslog
|
||||
service:
|
||||
name: "{{ rsyslog_service_name }}"
|
||||
state: restarted
|
||||
when: rsyslog_service_enabled
|
||||
|
||||
# vim:ft=yaml.ansible:
|
42
roles/rsyslog/tasks/archival.yaml
Normal file
42
roles/rsyslog/tasks/archival.yaml
Normal file
@ -0,0 +1,42 @@
|
||||
---
|
||||
- name: disable default rules
|
||||
set_fact:
|
||||
rsyslog_default_rules_state: absent
|
||||
when: rsyslog_archival_format_enabled
|
||||
|
||||
- name: check status of /var/log/syslog
|
||||
stat:
|
||||
path: /var/log/syslog
|
||||
register: st
|
||||
|
||||
- name: delete files
|
||||
file:
|
||||
path: "{{ item }}"
|
||||
state: "{{ rsyslog_archival_format_enabled | ternary('absent', 'file') }}"
|
||||
when: rsyslog_archival_format_enabled and st.stat.exists and st.stat.isreg
|
||||
with_items:
|
||||
- /var/log/syslog
|
||||
|
||||
- name: configure archival format
|
||||
template:
|
||||
src: archival.conf.j2
|
||||
dest: /etc/rsyslog.d/10-archival.conf
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
notify: restart rsyslog
|
||||
when: rsyslog_archival_format_enabled
|
||||
|
||||
- name: manage archive rules
|
||||
file:
|
||||
path: /etc/rsyslog.d/10-archival.conf
|
||||
state: "{{ rsyslog_archival_format_enabled | ternary('file', 'absent') }}"
|
||||
|
||||
- name: compress log cron job
|
||||
cron:
|
||||
name: compress syslog
|
||||
minute: "0"
|
||||
hour: "1"
|
||||
user: root
|
||||
job: find /var/log/syslog/ -type f ! -name "*$(date +%Y%m%d)*.log" -name "*.log" -exec xz {} \;
|
||||
state: "{{ rsyslog_archival_format_enabled | ternary('present', 'absent') }}"
|
44
roles/rsyslog/tasks/main.yaml
Normal file
44
roles/rsyslog/tasks/main.yaml
Normal file
@ -0,0 +1,44 @@
|
||||
- name: gather OS specific variables
|
||||
include_vars: "{{ item }}"
|
||||
with_first_found:
|
||||
- "{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yaml"
|
||||
- "{{ ansible_distribution }}.yaml"
|
||||
- "{{ ansible_os_family }}.yaml"
|
||||
|
||||
- name: install package
|
||||
package:
|
||||
name: "{{ rsyslog_package_name }}"
|
||||
state: "{{ rsyslog_package_state }}"
|
||||
|
||||
- name: configure
|
||||
template:
|
||||
src: rsyslog.conf.j2
|
||||
dest: /etc/rsyslog.conf
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
notify: restart rsyslog
|
||||
|
||||
- name: configure archival format
|
||||
include: archival.yaml
|
||||
|
||||
- name: configure default rules
|
||||
template:
|
||||
src: default.conf.j2
|
||||
dest: /etc/rsyslog.d/50-default.conf
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
notify: restart rsyslog
|
||||
when: rsyslog_default_rules_state == "file"
|
||||
|
||||
- name: manage default rules
|
||||
file:
|
||||
path: /etc/rsyslog.d/50-default.conf
|
||||
state: "{{ rsyslog_default_rules_state }}"
|
||||
|
||||
- name: manage service
|
||||
service:
|
||||
name: "{{ rsyslog_service_name }}"
|
||||
state: "{{ rsyslog_service_state }}"
|
||||
enabled: "{{ rsyslog_service_enabled }}"
|
27
roles/rsyslog/templates/archival.conf.j2
Normal file
27
roles/rsyslog/templates/archival.conf.j2
Normal file
@ -0,0 +1,27 @@
|
||||
# {{ ansible_managed }}
|
||||
|
||||
template(
|
||||
name="FilePerDay"
|
||||
type="list"
|
||||
) {
|
||||
constant(value="/var/log/syslog/")
|
||||
property(name="hostname")
|
||||
constant(value="/")
|
||||
property(name="syslogfacility-text")
|
||||
constant(value="/")
|
||||
property(name="timereported" dateformat="year")
|
||||
property(name="timereported" dateformat="month")
|
||||
constant(value="/")
|
||||
property(name="timereported" dateformat="year")
|
||||
property(name="timereported" dateformat="month")
|
||||
property(name="timereported" dateformat="day")
|
||||
constant(value="-")
|
||||
property(name="syslogfacility-text")
|
||||
constant(value=".log")
|
||||
}
|
||||
|
||||
*.* action(
|
||||
type="omfile"
|
||||
dynafile="FilePerDay"
|
||||
template="RSYSLOG_FileFormat"
|
||||
)
|
5
roles/rsyslog/templates/default.conf.j2
Normal file
5
roles/rsyslog/templates/default.conf.j2
Normal file
@ -0,0 +1,5 @@
|
||||
# {{ ansible_managed }}
|
||||
|
||||
{% for rule in rsyslog_default_rules %}
|
||||
{{ rule }}
|
||||
{% endfor %}
|
47
roles/rsyslog/templates/rsyslog.conf.j2
Normal file
47
roles/rsyslog/templates/rsyslog.conf.j2
Normal file
@ -0,0 +1,47 @@
|
||||
# {{ ansible_managed }}
|
||||
|
||||
{% for module in rsyslog_load_modules | default([]) %}
|
||||
{% if module.enabled | default(true) %}
|
||||
module(
|
||||
load="{{ module.name }}"
|
||||
{% if module.params is defined and module.params is mapping %}
|
||||
{% for k, v in module.params.items() | default({}) %}
|
||||
{{ k }}="{{ v }}"
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
)
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% if rsyslog_action_file_default_template is defined %}
|
||||
$ActionFileDefaultTemplate {{ rsyslog_action_file_default_template }}
|
||||
{% endif %}
|
||||
|
||||
{% if rsyslog_repeated_msg_reduction is defined %}
|
||||
$RepeatedMsgReduction {{ rsyslog_repeated_msg_reduction }}
|
||||
{% endif %}
|
||||
|
||||
{% if rsyslog_file_owner is defined %}
|
||||
$FileOwner {{ rsyslog_file_owner }}
|
||||
{% endif %}
|
||||
{% if rsyslog_file_group is defined %}
|
||||
$FileGroup {{ rsyslog_file_group }}
|
||||
{% endif %}
|
||||
{% if rsyslog_file_create_mode is defined %}
|
||||
$FileCreateMode {{ rsyslog_file_create_mode }}
|
||||
{% endif %}
|
||||
{% if rsyslog_dir_create_mode is defined %}
|
||||
$DirCreateMode {{ rsyslog_dir_create_mode }}
|
||||
{% endif %}
|
||||
{% if rsyslog_umask is defined %}
|
||||
$Umask {{ rsyslog_umask }}
|
||||
{% endif %}
|
||||
{% if rsyslog_priv_drop_to_user is defined %}
|
||||
$PrivDropToUser {{ rsyslog_priv_drop_to_user }}
|
||||
{% endif %}
|
||||
{% if rsyslog_priv_drop_to_group is defined %}
|
||||
$PrivDropToGroup {{ rsyslog_priv_drop_to_group }}
|
||||
{% endif %}
|
||||
|
||||
$WorkDirectory {{ rsyslog_work_directory }}
|
||||
$IncludeConfig {{ rsyslog_include_config }}
|
5
roles/rsyslog/templates/rules.conf.j2
Normal file
5
roles/rsyslog/templates/rules.conf.j2
Normal file
@ -0,0 +1,5 @@
|
||||
# {{ ansible_managed }}
|
||||
|
||||
{% for rule in rsyslog_rules %}
|
||||
{{ rule }}
|
||||
{% endfor %}
|
16
roles/rsyslog/vars/Debian.yaml
Normal file
16
roles/rsyslog/vars/Debian.yaml
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
rsyslog_file_owner: syslog
|
||||
rsyslog_file_group: adm
|
||||
rsyslog_file_create_mode: "0644"
|
||||
rsyslog_dir_create_mode: "0755"
|
||||
rsyslog_umask: "0022"
|
||||
rsyslog_priv_drop_to_user: syslog
|
||||
rsyslog_priv_drop_to_group: syslog
|
||||
|
||||
rsyslog_default_rules:
|
||||
- "auth,authpriv.* /var/log/auth.log"
|
||||
- "*.*;auth,authpriv.none -/var/log/syslog"
|
||||
- "kern.* -/var/log/kern.log"
|
||||
- "mail.* -/var/log/mail.log"
|
||||
- "mail.err /var/log/mail.err"
|
||||
- "*.emerg :omusrmsg:*"
|
Loading…
Reference in New Issue
Block a user