--- - name: Validate rsyslog configuration hosts: rsyslog_servers gather_facts: false vars: validate_dir: /tmp/rsyslog-validate validate_conf: /tmp/rsyslog-validate/rsyslog.conf tasks: - name: Create temp validation directory file: path: "{{ validate_dir }}/rsyslog.d" state: directory mode: "0700" - name: Copy main config to temp location copy: src: "{{ repo_root }}/files/rsyslog.conf" dest: "{{ validate_conf }}" remote_src: true - name: Copy rsyslog.d configs to temp location copy: src: "{{ repo_root }}/files/rsyslog.d/" dest: "{{ validate_dir }}/rsyslog.d/" remote_src: true - name: Update IncludeConfig path to point to temp dir replace: path: "{{ validate_conf }}" regexp: '^\$IncludeConfig\s+.*$' replace: '$IncludeConfig {{ validate_dir }}/rsyslog.d/*.conf' - name: Validate repo rsyslog configuration command: rsyslogd -N1 -f "{{ validate_conf }}" register: validate_result failed_when: validate_result.rc != 0 changed_when: false - name: Display validation result debug: msg: "✓ rsyslog configuration is valid" - name: Clean up temp validation directory file: path: "{{ validate_dir }}" state: absent