diff --git a/ansible/playbooks/validate.yml b/ansible/playbooks/validate.yml index 59f72ba..90e9cac 100644 --- a/ansible/playbooks/validate.yml +++ b/ansible/playbooks/validate.yml @@ -3,13 +3,46 @@ hosts: rsyslog_servers gather_facts: false + vars: + validate_dir: /tmp/rsyslog-validate + validate_conf: /tmp/rsyslog-validate/rsyslog.conf + tasks: - - name: Validate rsyslog main configuration - command: rsyslogd -N1 -f "{{ rsyslog_main_config }}" - register: validate_main - failed_when: validate_main.rc != 0 + - 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