- name: Test Ansible Lint Formatting hosts: localhost connection: local become: false gather_facts: false tasks: - name: Test Ansible Lint - Ignore Errors ansible.builtin.command: ansible-lint --nocolor -f json ignore_errors: true changed_when: false register: r_lint_output - name: Debug r_lint_output ansible.builtin.debug: verbosity: 1 var: r_lint_output['stdout'] - name: Capture ansible-lint warnings and errors ansible.builtin.set_fact: r_lint_warnings: "{{ r_lint_output['stdout'] | from_json | selectattr('level', 'equalto', 'warning') }}" r_lint_failures: "{{ r_lint_output['stdout'] | from_json | selectattr('level', 'equalto', 'error') }}" - name: Debug r_lint_warnings ansible.builtin.debug: msg: - "File: {{ item['location']['path'] }}" - "Level: {{ item['level'] }}" - "Severity: {{ item['severity'] }}" - "Description: {{ item['description'] }}" loop: "{{ r_lint_warnings }}" loop_control: label: "{{ item['location']['path'] }}" - name: Debug r_lint_failures ansible.builtin.debug: msg: - "File: {{ item['location']['path'] }}" - "Level: {{ item['level'] }}" - "Severity: {{ item['severity'] }}" - "Description: {{ item['description'] }}" loop: "{{ r_lint_failures }}" loop_control: label: "{{ item['location']['path'] }}"