buluma.logrotate

Rôle Ansible logrotate

Installez et configurez logrotate sur votre système.

GitHub Version Problèmes Demandes de tirage Téléchargements
github Version Issues PullRequests Ansible Role

Exemple de Playbook

Cet exemple est tiré de molecule/default/converge.yml et est testé à chaque poussée, demande de tirage et publication.

---
- name: Converger
  hosts: all
  become: true
  gather_facts: true

  vars:
    logrotate_frequency: daily
    logrotate_keep: 7
    logrotate_compress: true
    logrotate_entries:
      - name: exemple
        path: "/var/log/exemple/*.log"
      - name: exemple-fréquence
        path: "/var/log/exemple-fréquence/*.log"
        frequency: weekly
      - name: exemple-garder
        path: "/var/log/exemple-garder/*.log"
        keep: 14
      - name: exemple-comprimer
        path: "/var/log/exemple-comprimer/*.log"
        compress: true
      - name: exemple-copierlog
        path: "/var/log/exemple-copierlog/*.log"
        copylog: true
      - name: exemple-copietruncate
        path: "/var/log/exemple-copietruncate/*.log"
        copytruncate: true
      - name: exemple-délayercomprimer
        path: "/var/log/exemple-délayercomprimer/*.log"
        delaycompress: true
      - name: exemple-script
        path: "/var/log/exemple-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: exemple-scriptspartagés
        path: "/var/log/exemple-scriptspartagés/*.log"
        sharedscripts: true
      - name: exemple-datehier
        state: present
        path: "/var/log/exemple-datehier/*.log"
        dateyesterday: true
      - name: exemple-absent
        state: absent
      # Les nombres négatifs fonctionnent sur certaines distributions : `erreur : exemple-négatif:10 mauvais compte de rotation '-1'\`
      # - name: exemple-négatif
      #   path: "/var/log/exemple-garder-négatif/*.log"
      #   keep: -1

  roles:
    - role: buluma.logrotate

La machine doit être préparée. Dans CI, cela se fait avec molecule/default/prepare.yml :

---
- name: Préparer
  hosts: all
  become: true
  gather_facts: false

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

  post_tasks:
    - name: Créer le répertoire de log
      ansible.builtin.file:
        path: "{{ item }}"
        state: directory
        mode: "0755"
      loop:
        - /var/log/exemple
        - /var/log/exemple-fréquence
        - /var/log/exemple-garder
        - /var/log/exemple-comprimer
        - /var/log/exemple-copierlog
        - /var/log/exemple-copietruncate
        - /var/log/exemple-délayercomprimer
        - /var/log/exemple-script
        - /var/log/exemple-scriptspartagés
        - /var/log/exemple-datehier

    - name: Créer le fichier de log
      ansible.builtin.copy:
        dest: "{{ item }}"
        content: "exemple"
        mode: "0644"
      loop:
        - /var/log/exemple/app.log
        - /var/log/exemple-fréquence/app.log
        - /var/log/exemple-garder/app.log
        - /var/log/exemple-comprimer/app.log
        - /var/log/exemple-copierlog/app.log
        - /var/log/exemple-copietruncate/app.log
        - /var/log/exemple-délayercomprimer/app.log
        - /var/log/exemple-script/app.log
        - /var/log/exemple-scriptspartagés/app.log
        - /var/log/exemple-datehier/app.log
        - /var/log/btmp
        - /var/log/wtmp
        - /var/log/hawkey.log

Voir aussi une explication complète et un exemple sur comment utiliser ces rôles.

Variables du rôle

Les valeurs par défaut des variables sont définies dans defaults/main.yml :

---
# fichier par défaut pour logrotate

# À quelle fréquence faire pivoter les logs, soit quotidiennement, hebdomadairement ou mensuellement.
logrotate_frequency: weekly

# Combien de fichiers conserver.
logrotate_keep: 4

# Les logs tournés doivent-ils être compressés ?
logrotate_compress: true

# Utiliser une extension de date dans les noms de fichiers de log
logrotate_dateext: false

# Utilisateur/Groupe pour les fichiers de log tournés (chargé par des variables spécifiques au système d'exploitation si trouvées, ou peut être défini manuellement)
logrotate_user: "{{ _logrotate_user[ansible_distribution] | default(_logrotate_user['default']) }}"
logrotate_group: "{{ _logrotate_group[ansible_distribution] | default(_logrotate_group['default']) }}"

# Définir l'état du service
logrotate_service_state: "started"
logrotate_service_enabled: true

Exigences

État des rôles utilisés

Les rôles suivants sont utilisés pour préparer un système. Vous pouvez préparer votre système d'une autre manière.

Exigence GitHub Version
buluma.bootstrap Ansible Molecule Version
buluma.cron Ansible Molecule Version
buluma.epel Ansible Molecule Version

Contexte

Ce rôle fait partie de nombreux rôles compatibles. Consultez la documentation de ces rôles pour plus d'informations.

Voici un aperçu des rôles connexes :

dépendances

Compatibilité

Ce rôle a été testé sur ces images de conteneurs :

conteneur tags
Alpine tous
EL 8, 9
Debian tous
Fedora tous
opensuse tous
Ubuntu tous
Kali tous

La version minimale d'Ansible requise est 2.12, des tests ont été effectués sur :

  • La version précédente.
  • La version actuelle.
  • La version de développement.

Si vous rencontrez des problèmes, veuillez les signaler sur GitHub

Journal des modifications

Historique du rôle

Licence

Apache-2.0

Informations sur l'auteur

Shadow Walker

À propos du projet

Install and configure logrotate on your system.

Installer
ansible-galaxy install buluma.logrotate
Licence
apache-2.0
Téléchargements
67.4k
Propriétaire
DevOps Engineer