Feature 1/path testing #2
49
defaults/main.yml
Normal file
49
defaults/main.yml
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
---
|
||||||
|
# List of global options. If this is empty the default options of the
|
||||||
|
# distribution are used.
|
||||||
|
logrotate_options: []
|
||||||
|
|
||||||
|
# Path to the include files
|
||||||
|
logrotate_include_dir: /etc/logrotate.d
|
||||||
|
|
||||||
|
# package name to install logrotate.
|
||||||
|
logrotate_package: logrotate
|
||||||
|
|
||||||
|
# Enable hourly rotation with cron.
|
||||||
|
logrotate_use_hourly_rotation: false
|
||||||
|
|
||||||
|
# logroate for wtmp
|
||||||
|
logrotate_wtmp:
|
||||||
|
logs:
|
||||||
|
- /var/log/wtmp
|
||||||
|
options:
|
||||||
|
- missingok
|
||||||
|
- monthly
|
||||||
|
- create 0664 root utmp
|
||||||
|
- rotate 1
|
||||||
|
|
||||||
|
# logroate for btmp
|
||||||
|
logrotate_btmp:
|
||||||
|
logs:
|
||||||
|
- /var/log/btmp
|
||||||
|
options:
|
||||||
|
- missingok
|
||||||
|
- monthly
|
||||||
|
- create 0660 root utmp
|
||||||
|
- rotate 1
|
||||||
|
|
||||||
|
# More log files can be added that will log rotate.
|
||||||
|
# An example of multiple log rotate applications with available settings:
|
||||||
|
# logrotate_applications:
|
||||||
|
# - name: name-your-log-rotate-application
|
||||||
|
# definitions:
|
||||||
|
# - logs:
|
||||||
|
# - /var/log/apt/term.log
|
||||||
|
# - /var/log/apt/history.log
|
||||||
|
# options:
|
||||||
|
# - rotate 12
|
||||||
|
# - monthly
|
||||||
|
# - missingok
|
||||||
|
# - notifempty
|
||||||
|
# - compress
|
||||||
|
logrotate_applications: []
|
32
meta/main.yml
Normal file
32
meta/main.yml
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
---
|
||||||
|
galaxy_info:
|
||||||
|
author: 'stationgroup'
|
||||||
|
description: |
|
||||||
|
Ansible role for installings and configuring lograte on Linux, deploying a list of defaults only if the
|
||||||
|
logfiles are present on the system.
|
||||||
|
license: MIT
|
||||||
|
min_ansible_version: 2.8
|
||||||
|
platforms:
|
||||||
|
- name: EL
|
||||||
|
versions:
|
||||||
|
- 6
|
||||||
|
- 7
|
||||||
|
- name: Fedora
|
||||||
|
versions:
|
||||||
|
- 29
|
||||||
|
- name: Ubuntu
|
||||||
|
versions:
|
||||||
|
- bionic
|
||||||
|
- cosmic
|
||||||
|
- disco
|
||||||
|
- name: Debian
|
||||||
|
versions:
|
||||||
|
- jessie
|
||||||
|
- stretch
|
||||||
|
- buster
|
||||||
|
|
||||||
|
galaxy_tags:
|
||||||
|
- system
|
||||||
|
- logrotate
|
||||||
|
- log
|
||||||
|
- rotate
|
63
tasks/main.yml
Normal file
63
tasks/main.yml
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
---
|
||||||
|
- name: add OS specific variables
|
||||||
|
include_vars: '{{ loop_vars }}'
|
||||||
|
with_first_found:
|
||||||
|
- files:
|
||||||
|
- '{{ distribution }}-{{ distribution_version }}.yml'
|
||||||
|
- '{{ distribution }}-{{ distribution_major_version }}.yml'
|
||||||
|
- '{{ distribution }}.yml'
|
||||||
|
- '{{ ansible_os_family }}.yml'
|
||||||
|
- '{{ ansible_system }}.yml'
|
||||||
|
- 'defaults.yml'
|
||||||
|
paths:
|
||||||
|
- 'vars'
|
||||||
|
loop_control:
|
||||||
|
loop_var: loop_vars
|
||||||
|
vars:
|
||||||
|
distribution: '{{ ansible_distribution }}'
|
||||||
|
distribution_version: '{{ ansible_distribution_version }}'
|
||||||
|
distribution_major_version: '{{ ansible_distribution_major_version }}'
|
||||||
|
tags:
|
||||||
|
- configuration
|
||||||
|
- packages
|
||||||
|
|
||||||
|
- name: 'install logrotate packages'
|
||||||
|
become: true
|
||||||
|
package:
|
||||||
|
name: '{{ logrotate_package }}'
|
||||||
|
state: present
|
||||||
|
register: register_install_package
|
||||||
|
until: register_install_package is succeeded
|
||||||
|
retries: 3
|
||||||
|
tags:
|
||||||
|
- packages
|
||||||
|
|
||||||
|
- name: 'create logrotate configuration file'
|
||||||
|
become: true
|
||||||
|
template:
|
||||||
|
src: 'etc/logrotate.conf.j2'
|
||||||
|
dest: '/etc/logrotate.conf'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
tags:
|
||||||
|
- configuration
|
||||||
|
|
||||||
|
- name: 'create logrotate application configuration files'
|
||||||
|
become: true
|
||||||
|
template:
|
||||||
|
src: 'etc/logrotate.d/application.j2'
|
||||||
|
dest: '/etc/logrotate.d/{{ item.name }}'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
with_items:
|
||||||
|
- '{{ logrotate_applications }}'
|
||||||
|
tags:
|
||||||
|
- configuration
|
||||||
|
|
||||||
|
- name: Symlink for hourly rotation
|
||||||
|
file:
|
||||||
|
path: "/etc/cron.hourly/logrotate"
|
||||||
|
src: "/etc/cron.daily/logrotate"
|
||||||
|
state: "{{ 'link' if logrotate_use_hourly_rotation else 'absent' }}"
|
30
templates/etc/logrotate.conf.j2
Normal file
30
templates/etc/logrotate.conf.j2
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
{{ ansible_managed | comment }}
|
||||||
|
|
||||||
|
# see "man logrotate" for details
|
||||||
|
{% if logrotate_options | length > 0 %}
|
||||||
|
{% for option in logrotate_options %}
|
||||||
|
{{ option }}
|
||||||
|
{% endfor %}
|
||||||
|
{% else %}
|
||||||
|
{% for option in logrotate_distribution_options | default([]) %}
|
||||||
|
{{ option }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
# packages drop log rotation information into this directory
|
||||||
|
include {{ logrotate_include_dir }}
|
||||||
|
|
||||||
|
# no packages own wtmp, or btmp -- we'll rotate them here
|
||||||
|
{{ logrotate_wtmp.logs | join(" ") }} {
|
||||||
|
{% for option in logrotate_wtmp.options %}
|
||||||
|
{{ option }}
|
||||||
|
{% endfor %}
|
||||||
|
}
|
||||||
|
|
||||||
|
{{ logrotate_btmp.logs | join(" ") }} {
|
||||||
|
{% for option in logrotate_btmp.options %}
|
||||||
|
{{ option }}
|
||||||
|
{% endfor %}
|
||||||
|
}
|
||||||
|
|
||||||
|
# system-specific logs may be configured here
|
37
templates/etc/logrotate.d/application.j2
Normal file
37
templates/etc/logrotate.d/application.j2
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
{{ ansible_managed | comment }}
|
||||||
|
|
||||||
|
{% for definition in item.definitions %}
|
||||||
|
{{ definition.logs | join(" ") }} {
|
||||||
|
{% for option in definition.options %}
|
||||||
|
{{ option }}
|
||||||
|
{% endfor %}
|
||||||
|
{% if definition.postrotate|default([]) %}
|
||||||
|
postrotate
|
||||||
|
{% for line in definition.postrotate %}
|
||||||
|
{{ line }}
|
||||||
|
{% endfor %}
|
||||||
|
endscript
|
||||||
|
{% endif %}
|
||||||
|
{% if definition.preremove|default([]) %}
|
||||||
|
preremove
|
||||||
|
{% for line in definition.preremove %}
|
||||||
|
{{ line }}
|
||||||
|
{% endfor %}
|
||||||
|
endscript
|
||||||
|
{% endif %}
|
||||||
|
{% if definition.lastaction|default([]) %}
|
||||||
|
lastaction
|
||||||
|
{% for line in definition.lastaction %}
|
||||||
|
{{ line }}
|
||||||
|
{% endfor %}
|
||||||
|
endscript
|
||||||
|
{% endif %}
|
||||||
|
{% if definition.firstaction|default([]) %}
|
||||||
|
firstaction
|
||||||
|
{% for line in definition.firstaction %}
|
||||||
|
{{ line }}
|
||||||
|
{% endfor %}
|
||||||
|
endscript
|
||||||
|
{% endif %}
|
||||||
|
}
|
||||||
|
{% endfor %}
|
9
vars/CentOS.yml
Normal file
9
vars/CentOS.yml
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
---
|
||||||
|
# vars file for arillso.logrotate
|
||||||
|
|
||||||
|
# List of global options for the different systems.
|
||||||
|
logrotate_distribution_options:
|
||||||
|
- weekly
|
||||||
|
- rotate 4
|
||||||
|
- create
|
||||||
|
- dateext
|
9
vars/Debian.yml
Normal file
9
vars/Debian.yml
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
---
|
||||||
|
# vars file for arillso.logrotate
|
||||||
|
|
||||||
|
# List of global options for the different systems.
|
||||||
|
logrotate_distribution_options:
|
||||||
|
- weekly
|
||||||
|
- rotate 4
|
||||||
|
- create
|
||||||
|
- dateext
|
9
vars/RedHat.yml
Normal file
9
vars/RedHat.yml
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
---
|
||||||
|
# vars file for arillso.logrotate
|
||||||
|
|
||||||
|
# List of global options for the different systems.
|
||||||
|
logrotate_distribution_options:
|
||||||
|
- weekly
|
||||||
|
- rotate 4
|
||||||
|
- create
|
||||||
|
- dateext
|
10
vars/Ubuntu.yml
Normal file
10
vars/Ubuntu.yml
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
---
|
||||||
|
# vars file for arillso.logrotate
|
||||||
|
|
||||||
|
# List of global options for the different systems.
|
||||||
|
logrotate_distribution_options:
|
||||||
|
- weekly
|
||||||
|
- rotate 4
|
||||||
|
- create
|
||||||
|
- dateext
|
||||||
|
- su root syslog
|
Loading…
Reference in a new issue