buluma.logrotate

Ansible-Rolle logrotate

Installieren und konfigurieren Sie logrotate auf Ihrem System.

GitHub Version Issues Pull Requests Downloads
github Version Issues PullRequests Ansible Role

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

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 Ansible Molecule Version
buluma.cron Ansible Molecule Version
buluma.epel Ansible Molecule Version

Kontext

Diese Rolle ist Teil vieler kompatibler Rollen. Siehe die Dokumentation dieser Rollen für weitere Informationen.

Hier ist eine Übersicht über verwandte Rollen:

Abhängigkeiten

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

Historie der Rolle

Lizenz

Apache-2.0

Autoreninformationen

Shadow Walker

Über das Projekt

Install and configure logrotate on your system.

Installieren
ansible-galaxy install buluma.logrotate
GitHub Repository
Lizenz
apache-2.0
Downloads
67.4k
Besitzer
DevOps Engineer