--- - name: logrotate | Configure all main Proxmox logs vars: proxmox_logrotate_files: - /etc/logrotate.conf - /etc/logrotate.d/pve - /etc/logrotate.d/pve-firewall loop: "{{ proxmox_logrotate_files }}" loop_control: loop_var: item block: - name: Check if {{ item }} exists ansible.builtin.stat: path: "{{ item }}" register: logrotate_file - name: Configure {{ item }} block: - name: Backup {{ item }} once ansible.builtin.copy: src: "{{ item }}" dest: "{{ item }}.original" remote_src: true args: creates: "{{ item }}.original" - name: Ensure daily rotation ansible.builtin.replace: path: "{{ item }}" regexp: '^\s*weekly' replace: 'daily' notify: logrotate reload - name: Set rotate (number of retained logs) ansible.builtin.lineinfile: path: "{{ item }}" regexp: '^(\s*rotate\s+).*' line: ' rotate {{ proxmox_logrotate_rotate }}' state: present insertafter: '^\s*daily' notify: logrotate reload - name: Ensure maxsize is set ansible.builtin.lineinfile: path: "{{ item }}" regexp: '^(\s*maxsize\s+).*' line: ' maxsize {{ proxmox_logrotate_maxsize }}' state: present insertafter: '^\s*rotate' notify: logrotate reload - name: Ensure Compress ansible.builtin.lineinfile: path: "{{ item }}" regexp: '^\s*compress\b' line: ' compress' state: present insertafter: '^\s*maxsize' notify: logrotate reload - name: Ensure delaycompress ansible.builtin.lineinfile: path: "{{ item }}" regexp: '^\s*delaycompress\b' line: ' delaycompress' state: present insertafter: '^\s*compress' notify: logrotate reload when: logrotate_file.stat.exists # only for logrotate.conf - name: Uncomment dateext if commented ansible.builtin.replace: path: /etc/logrotate.conf regexp: '^\s*#\s*(dateext)\b' replace: '\1' notify: logrotate reload - name: Uncomment compress if commented ansible.builtin.replace: path: /etc/logrotate.conf regexp: '^\s*#\s*(compress)\b' replace: '\1' notify: logrotate reload - name: Ensure missingok is present ansible.builtin.lineinfile: path: /etc/logrotate.conf regexp: '^\s*missingok\b' line: 'missingok' state: present insertafter: EOF notify: logrotate reload - name: Ensure notifempty is present ansible.builtin.lineinfile: path: /etc/logrotate.conf regexp: '^\s*notifempty\b' line: 'notifempty' state: present insertafter: EOF notify: logrotate reload