buluma.logrotate
Ansible-Rolle logrotate
Installieren und konfigurieren Sie logrotate auf Ihrem System.
GitHub | Version | Issues | Pull Requests | Downloads |
---|---|---|---|---|
Beispiel-Playbook
Dieses Beispiel stammt aus molecule/default/converge.yml
und wird bei jedem Push, Pull-Request und Release getestet.
---
- name: Konvergenz
hosts: alle
become: true
gather_facts: true
vars:
logrotate_frequency: täglich
logrotate_keep: 7
logrotate_compress: true
logrotate_entries:
- name: beispiel
path: "/var/log/beispiel/*.log"
- name: beispiel-frequency
path: "/var/log/beispiel-frequency/*.log"
frequency: wöchentlich
- name: beispiel-keep
path: "/var/log/beispiel-keep/*.log"
keep: 14
- name: beispiel-compress
path: "/var/log/beispiel-compress/*.log"
compress: true
- name: beispiel-copylog
path: "/var/log/beispiel-copylog/*.log"
copylog: true
- name: beispiel-copytruncate
path: "/var/log/beispiel-copytruncate/*.log"
copytruncate: true
- name: beispiel-delaycompress
path: "/var/log/beispiel-delaycompress/*.log"
delaycompress: true
- name: beispiel-script
path: "/var/log/beispiel-script/*.log"
postrotate: killall -HUP some_process_name
- name: btmp
path: /var/log/btmp
missingok: true
frequency: monatlich
create: true
create_mode: "0660"
create_user: root
create_group: utmp
dateext: true
dateformat: "-%Y-%m-%d"
keep: 1
- name: wtmp
path: /var/log/wtmp
missingok: true
frequency: monatlich
create: true
create_mode: "0664"
create_user: root
create_group: utmp
minsize: 1M
maxsize: 128M
dateext: true
dateformat: "-%Y%m%d"
keep: 1
- name: dnf
path: /var/log/hawkey.log
missingok: true
notifempty: true
keep: 4
frequency: wöchentlich
create: true
- name: beispiel-sharedscripts
path: "/var/log/beispiel-sharedscripts/*.log"
sharedscripts: true
- name: beispiel-dateyesterday
state: vorhanden
path: "/var/log/beispiel-dateyesterday/*.log"
dateyesterday: true
- name: beispiel-absent
state: abwesend
# Negative Zahlen funktionieren in einigen Distributionen: `error: beispiel-negative:10 schlechte Rotationsanzahl '-1'\`
# - name: beispiel-negative
# path: "/var/log/beispiel-keep-negative/*.log"
# keep: -1
roles:
- role: buluma.logrotate
Die Maschine muss vorbereitet werden. In CI geschieht dies mit molecule/default/prepare.yml
:
---
- name: Vorbereiten
hosts: alle
become: true
gather_facts: false
roles:
- role: buluma.bootstrap
- role: buluma.cron
post_tasks:
- name: Erstelle Log-Verzeichnis
ansible.builtin.file:
path: "{{ item }}"
state: directory
mode: "0755"
loop:
- /var/log/beispiel
- /var/log/beispiel-frequency
- /var/log/beispiel-keep
- /var/log/beispiel-compress
- /var/log/beispiel-copylog
- /var/log/beispiel-copytruncate
- /var/log/beispiel-delaycompress
- /var/log/beispiel-script
- /var/log/beispiel-sharedscripts
- /var/log/beispiel-dateyesterday
- name: Erstelle Log-Datei
ansible.builtin.copy:
dest: "{{ item }}"
content: "beispiel"
mode: "0644"
loop:
- /var/log/beispiel/app.log
- /var/log/beispiel-frequency/app.log
- /var/log/beispiel-keep/app.log
- /var/log/beispiel-compress/app.log
- /var/log/beispiel-copylog/app.log
- /var/log/beispiel-copytruncate/app.log
- /var/log/beispiel-delaycompress/app.log
- /var/log/beispiel-script/app.log
- /var/log/beispiel-sharedscripts/app.log
- /var/log/beispiel-dateyesterday/app.log
- /var/log/btmp
- /var/log/wtmp
- /var/log/hawkey.log
Siehe auch eine komplette Erklärung und Beispiel, wie man diese Rollen verwendet.
Rollenvariablen
Die Standardwerte für die Variablen werden in defaults/main.yml
festgelegt:
---
# Standarddatei für logrotate
# Wie oft Logs rotiert werden sollen, entweder täglich, wöchentlich oder monatlich.
logrotate_frequency: wöchentlich
# Wie viele Dateien aufbewahrt werden sollen.
logrotate_keep: 4
# Sollen die rotierten Logs komprimiert werden?
logrotate_compress: true
# Verwende Datumsangaben in den Logdateinamen
logrotate_dateext: false
# Benutzer/Gruppe für rotierten Logdateien (Wird von OS-spezifischen Variablen geladen, falls gefunden oder kann manuell festgelegt werden)
logrotate_user: "{{ _logrotate_user[ansible_distribution] | default(_logrotate_user['default']) }}"
logrotate_group: "{{ _logrotate_group[ansible_distribution] | default(_logrotate_group['default']) }}"
# Setze den Zustand des Dienstes
logrotate_service_state: "gestart"
logrotate_service_enabled: true
Anforderungen
- Pip-Pakete, die in requirements.txt aufgeführt sind.
Zustand der verwendeten Rollen
Die folgenden Rollen werden verwendet, um ein System vorzubereiten. Sie können Ihr System auch auf andere Weise vorbereiten.
Anforderung | GitHub | Version |
---|---|---|
buluma.bootstrap | ||
buluma.cron | ||
buluma.epel |
Kontext
Diese Rolle ist Teil vieler kompatibler Rollen. Siehe die Dokumentation dieser Rollen für weitere Informationen.
Hier ist eine Übersicht über verwandte Rollen:
Kompatibilität
Diese Rolle wurde in diesen Container-Images getestet:
Container | Tags |
---|---|
Alpine | alle |
EL | 8, 9 |
Debian | alle |
Fedora | alle |
opensuse | alle |
Ubuntu | alle |
Kali | alle |
Die minimale erforderliche Version von Ansible ist 2.12, es wurden Tests durchgeführt für:
- Die vorherige Version.
- Die aktuelle Version.
- Die Entwicklungs-Version.
Wenn Sie Probleme finden, melden Sie diese bitte auf GitHub.
Änderungsprotokoll
Lizenz
Autoreninformationen
ansible-galaxy install buluma.logrotate