buluma.logrotate

Rola Ansible logrotate

Zainstaluj i skonfiguruj logrotate na swoim systemie.

GitHub Wersja Problemy Prośby o włączenie Pobrania
github Wersja Problemy Prośby Rola Ansible

Przykładowy Playbook

Ten przykład pochodzi z molecule/default/converge.yml i jest testowany przy każdym pushu, prośbie o włączenie i wydaniu.

---
- name: Zbieżność
  hosts: all
  become: true
  gather_facts: true

  vars:
    logrotate_frequency: daily
    logrotate_keep: 7
    logrotate_compress: true
    logrotate_entries:
      - name: example
        path: "/var/log/example/*.log"
      - name: example-frequency
        path: "/var/log/example-frequency/*.log"
        frequency: weekly
      - name: example-keep
        path: "/var/log/example-keep/*.log"
        keep: 14
      - name: example-compress
        path: "/var/log/example-compress/*.log"
        compress: true
      - name: example-copylog
        path: "/var/log/example-copylog/*.log"
        copylog: true
      - name: example-copytruncate
        path: "/var/log/example-copytruncate/*.log"
        copytruncate: true
      - name: example-delaycompress
        path: "/var/log/example-delaycompress/*.log"
        delaycompress: true
      - name: example-script
        path: "/var/log/example-script/*.log"
        postrotate: killall -HUP some_process_name
      - name: btmp
        path: /var/log/btmp
        missingok: true
        frequency: monthly
        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: monthly
        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: weekly
        create: true
      - name: example-sharedscripts
        path: "/var/log/example-sharedscripts/*.log"
        sharedscripts: true
      - name: example-dateyesterday
        state: present
        path: "/var/log/example-dateyesterday/*.log"
        dateyesterday: true
      - name: example-absent
        state: absent
      # Liczby ujemne działają w niektórych dystrybucjach: `error: example-negative:10 bad rotation count '-1'\`
      # - name: example-negative
      #   path: "/var/log/example-keep-negative/*.log"
      #   keep: -1

  roles:
    - role: buluma.logrotate

Maszyna musi być przygotowana. W CI realizuje to molecule/default/prepare.yml:

---
- name: Przygotowanie
  hosts: all
  become: true
  gather_facts: false

  roles:
    - role: buluma.bootstrap
    - role: buluma.cron

  post_tasks:
    - name: Utwórz katalog logów
      ansible.builtin.file:
        path: "{{ item }}"
        state: directory
        mode: "0755"
      loop:
        - /var/log/example
        - /var/log/example-frequency
        - /var/log/example-keep
        - /var/log/example-compress
        - /var/log/example-copylog
        - /var/log/example-copytruncate
        - /var/log/example-delaycompress
        - /var/log/example-script
        - /var/log/example-sharedscripts
        - /var/log/example-dateyesterday

    - name: Utwórz plik logu
      ansible.builtin.copy:
        dest: "{{ item }}"
        content: "example"
        mode: "0644"
      loop:
        - /var/log/example/app.log
        - /var/log/example-frequency/app.log
        - /var/log/example-keep/app.log
        - /var/log/example-compress/app.log
        - /var/log/example-copylog/app.log
        - /var/log/example-copytruncate/app.log
        - /var/log/example-delaycompress/app.log
        - /var/log/example-script/app.log
        - /var/log/example-sharedscripts/app.log
        - /var/log/example-dateyesterday/app.log
        - /var/log/btmp
        - /var/log/wtmp
        - /var/log/hawkey.log

Zobacz także pełne wyjaśnienie i przykład dotyczące użycia tych ról.

Zmienne roli

Domyślne wartości zmiennych są ustawione w defaults/main.yml:

---
# plik domyślny dla logrotate

# Jak często rotować logi, codziennie, co tydzień lub co miesiąc.
logrotate_frequency: weekly

# Ile plików zachować.
logrotate_keep: 4

# Czy rotowane logi powinny być kompresowane?
logrotate_compress: true

# Użyj rozszerzenia daty w nazwach plików logów
logrotate_dateext: false

# Użytkownik/Gruppa dla obróconych plików logów (Ładowane przez zmienne specyficzne dla systemu, jeśli są dostępne, lub można ustawić ręcznie)
logrotate_user: "{{ _logrotate_user[ansible_distribution] | default(_logrotate_user['default']) }}"
logrotate_group: "{{ _logrotate_group[ansible_distribution] | default(_logrotate_group['default']) }}"

# Ustaw stan usługi
logrotate_service_state: "started"
logrotate_service_enabled: true

Wymagania

Stan używanych ról

Poniższe role są używane do przygotowania systemu. Możesz przygotować swój system w inny sposób.

Wymaganie GitHub Wersja
buluma.bootstrap Ansible Molecule Wersja
buluma.cron Ansible Molecule Wersja
buluma.epel Ansible Molecule Wersja

Kontekst

Ta rola jest częścią wielu kompatybilnych ról. Zapoznaj się z dokumentacją tych ról w celu uzyskania dalszych informacji.

Oto przegląd pokrewnych ról:

dependencies

Kompatybilność

Ta rola była testowana na następujących obrazach kontenerów:

kontener tagi
Alpine wszystkie
EL 8, 9
Debian wszystkie
Fedora wszystkie
opensuse wszystkie
Ubuntu wszystkie
Kali wszystkie

Minimalna wymagana wersja Ansible to 2.12, testy przeprowadzono na:

  • Wersji poprzedniej.
  • Wersji bieżącej.
  • Wersji deweloperskiej.

Jeśli znajdziesz problemy, zgłoś je na GitHubie

Dziennik zmian

Historia roli

Licencja

Apache-2.0

Informacje o autorze

Shadow Walker

O projekcie

Install and configure logrotate on your system.

Zainstaluj
ansible-galaxy install buluma.logrotate
Licencja
apache-2.0
Pobrania
67.4k
Właściciel
DevOps Engineer