summaryrefslogtreecommitdiffstats
path: root/src/ansiblelint/rules/ignore_errors.md
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 16:04:56 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 16:04:56 +0000
commitd964cec5e6aa807b75c7a4e7cdc5f11e54b2eda2 (patch)
tree794bc3738a00b5e599f06d1f2f6d79048d87ff8e /src/ansiblelint/rules/ignore_errors.md
parentInitial commit. (diff)
downloadansible-lint-d964cec5e6aa807b75c7a4e7cdc5f11e54b2eda2.tar.xz
ansible-lint-d964cec5e6aa807b75c7a4e7cdc5f11e54b2eda2.zip
Adding upstream version 6.13.1.upstream/6.13.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/ansiblelint/rules/ignore_errors.md')
-rw-r--r--src/ansiblelint/rules/ignore_errors.md61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/ansiblelint/rules/ignore_errors.md b/src/ansiblelint/rules/ignore_errors.md
new file mode 100644
index 0000000..cb17774
--- /dev/null
+++ b/src/ansiblelint/rules/ignore_errors.md
@@ -0,0 +1,61 @@
+# ignore-errors
+
+This rule checks that playbooks do not use the `ignore_errors` directive to ignore all errors.
+Ignoring all errors in a playbook hides actual failures, incorrectly mark tasks as failed, and result in unexpected side effects and behavior.
+
+Instead of using the `ignore_errors: true` directive, you should do the following:
+
+- Ignore errors only when using the `{{ ansible_check_mode }}` variable.
+- Use `register` to register errors.
+- Use `failed_when:` and specify acceptable error conditions.
+
+## Problematic Code
+
+```yaml
+---
+- name: Example playbook
+ hosts: all
+ tasks:
+ - name: Run apt-get update
+ ansible.builtin.command: apt-get update
+ ignore_errors: true # <- Ignores all errors, including important failures.
+```
+
+## Correct Code
+
+```yaml
+---
+- name: Example playbook
+ hosts: all
+ tasks:
+ - name: Run apt-get update
+ ansible.builtin.command: apt-get update
+ ignore_errors: "{{ ansible_check_mode }}" # <- Ignores errors in check mode.
+```
+
+```yaml
+---
+- name: Example playbook
+ hosts: all
+ tasks:
+ - name: Run apt-get update
+ ansible.builtin.command: apt-get update
+ ignore_errors: true
+ register: ignore_errors_register # <- Stores errors and failures for evaluation.
+```
+
+```yaml
+---
+- name: Example playbook
+ hosts: all
+ tasks:
+ - name: Disable apport
+ become: "yes"
+ lineinfile:
+ line: "enabled=0"
+ dest: /etc/default/apport
+ mode: 0644
+ state: present
+ register: default_apport
+ failed_when: default_apport.rc !=0 and not default_apport.rc == 257 # <- Defines conditions that constitute a failure.
+```