Ansible-lint: Difference between revisions

From DWIKI
Tony (talk | contribs)
mNo edit summary
Tag: wikieditor
Tony (talk | contribs)
Tag: wikieditor
 
(One intermediate revision by the same user not shown)
Line 10: Line 10:
  when: not (foo == 1 and bar == 0)  
  when: not (foo == 1 and bar == 0)  


==Error messages==
===WARNING  Overriding detected file kind 'yaml' with 'playbook' for given positional argument===
Create '''~/.ansible-lint''' with
---
kinds:
  - playbook: "**/*.{yml,yaml}"
===The field 'hosts' has an invalid value, which includes an undefined variable.. 'target' is undefined===
Add default value:
- hosts: "{{ target | default('dummy') }}"
(some docs suggest default('localhost') but that looks like asking for trouble)


==Use shell only when shell functionality is required==
==Use shell only when shell functionality is required==

Latest revision as of 12:49, 12 May 2026

FAQ

Don't compare to empty string

  • Use `when: var | length > 0` instead of `when: var != ""`.
  • Use `when: var | length == 0` instead of `when: var == ""`.

Don't compare to literal True/False

Instead of

when: (foo == 1 and bar == 0) == false

use

when: not (foo == 1 and bar == 0) 

Error messages

WARNING Overriding detected file kind 'yaml' with 'playbook' for given positional argument

Create ~/.ansible-lint with

---
kinds:
  - playbook: "**/*.{yml,yaml}"

The field 'hosts' has an invalid value, which includes an undefined variable.. 'target' is undefined

Add default value:

- hosts: "Template:Target"

(some docs suggest default('localhost') but that looks like asking for trouble)

Use shell only when shell functionality is required

Instead of

shell:

try

command:

Commands should not change things if nothing needs doing

Sometimes fixed by adding

changed_when: false


Lines should be no longer than 160 chars

ignore for now?


Shells that use pipes should set the pipefail option

shell: |
  set -o pipefail
  your command
args:
  executable: /bin/bash

Ansible and APT

HOWTO

Override needrestart

-name: install something
 ansible.builtin.apt:
   ...
 environment:
   - NEEDRESTART_MODE: automatically

FAQ

Package installs should not use latest

??