summaryrefslogtreecommitdiffstats
path: root/src/ansiblelint/rules/avoid_implicit.md
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-13 12:06:49 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-13 12:06:49 +0000
commit2fe34b6444502079dc0b84365ce82dbc92de308e (patch)
tree8fedcab52bbbc3db6c5aa909a88a7a7b81685018 /src/ansiblelint/rules/avoid_implicit.md
parentInitial commit. (diff)
downloadansible-lint-2fe34b6444502079dc0b84365ce82dbc92de308e.tar.xz
ansible-lint-2fe34b6444502079dc0b84365ce82dbc92de308e.zip
Adding upstream version 6.17.2.upstream/6.17.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/ansiblelint/rules/avoid_implicit.md')
-rw-r--r--src/ansiblelint/rules/avoid_implicit.md37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/ansiblelint/rules/avoid_implicit.md b/src/ansiblelint/rules/avoid_implicit.md
new file mode 100644
index 0000000..4c3d781
--- /dev/null
+++ b/src/ansiblelint/rules/avoid_implicit.md
@@ -0,0 +1,37 @@
+# avoid-implicit
+
+This rule identifies the use of dangerous implicit behaviors, often also
+undocumented.
+
+This rule will produce the following type of error messages:
+
+- `avoid-implicit[copy-content]` is not a string as [copy](https://docs.ansible.com/ansible/latest/collections/ansible/builtin/copy_module.html#synopsis)
+ modules also accept these, but without documenting them.
+
+## Problematic Code
+
+```yaml
+---
+- name: Example playbook
+ hosts: localhost
+ tasks:
+ - name: Write file content
+ ansible.builtin.copy:
+ content: { "foo": "bar" } # <-- should use explicit jinja template
+ dest: /tmp/foo.txt
+```
+
+## Correct Code
+
+```yaml
+---
+- name: Example playbook
+ hosts: localhost
+ tasks:
+ - name: Write file content
+ vars:
+ content: { "foo": "bar" }
+ ansible.builtin.copy:
+ content: "{{ content | to_json }}" # explicit better than implicit!
+ dest: /tmp/foo.txt
+```