Skip to content

Instantly share code, notes, and snippets.

@chusiang
Created September 26, 2022 08:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chusiang/27f3bf940eb66038ecdded012523f4e4 to your computer and use it in GitHub Desktop.
Save chusiang/27f3bf940eb66038ecdded012523f4e4 to your computer and use it in GitHub Desktop.
ansible-lint config of v4.0+
---
# .ansible-lint
# exclude_paths included in this file are parsed relative to this file's location
# and not relative to the CWD of execution. CLI arguments passed to the --exclude
# option will be parsed relative to the CWD of execution.
exclude_paths:
- .gitlab-ci.yml
- logs/
- roles/
- test/
# parseable: true
# quiet: true
# verbosity: 1
# Mock modules or roles in order to pass ansible-playbook --syntax-check
mock_modules:
- zuul_return
# note the foo.bar is invalid as being neither a module or a collection
- fake_namespace.fake_collection.fake_module
- fake_namespace.fake_collection.fake_module.fake_submodule
mock_roles:
- mocked_role
- author.role_name # old standalone galaxy role
- fake_namespace.fake_collection.fake_role # role within a collection
# Enable checking of loop variable prefixes in roles
loop_var_prefix: "{role}_"
# Enforce variable names to follow pattern below, in addition to Ansible own
# requirements, like avoiding python identifiers. To disable add `var-naming`
# to skip_list.
# var_naming_pattern: "^[a-z_][a-z0-9_]*$"
use_default_rules: true
# Load custom rules from this specific folder
# rulesdir:
# - ./rule/directory/
# This makes linter to fully ignore rules/tags listed below
skip_list:
- fqcn-builtins
- latest[git]
- role-name
- skip_this_tag
- yaml
# Any rule that has the 'opt-in' tag will not be loaded unless its 'id' is
# mentioned in the enable_list:
enable_list:
- empty-string-compare # opt-in
- no-log-password # opt-in
- no-same-owner # opt-in
# add yaml here if you want to avoid ignoring yaml checks when yamllint
# library is missing. Normally its absence just skips using that rule.
- yaml
# Report only a subset of tags and fully ignore any others
tags:
- skip_ansible_lint
# This makes the linter display but not fail for rules/tags listed below:
warn_list:
- skip_this_tag
- latest[git]
- experimental # experimental is included in the implicit list
# - role-name
#- yaml[document-start] # you can also use sub-rule matches
# Some rules can transform files to fix (or make it easier to fix) identified
# errors. `ansible-lint --write` will reformat YAML files and run these transforms.
# By default it will run all transforms (effectively `write_list: ["all"]`).
# You can disable running transforms by setting `write_list: ["none"]`.
# Or only enable a subset of rule transforms by listing rules/tags here.
# write_list:
# - all
# Offline mode disables installation of requirements.yml
offline: false
# Define required Ansible's variables to satisfy syntax check
extra_vars:
foo: bar
multiline_string_variable: |
line1
line2
complex_variable: ":{;\t$()"
# Uncomment to enforce action validation with tasks, usually is not
# needed as Ansible syntax check also covers it.
# skip_action_validation: false
# List of additional kind:pattern to be added at the top of the default
# match list, first match determines the file kind.
kinds:
# - playbook: "**/examples/*.{yml,yaml}"
- playbook: "*.{yml,yaml}"
# - galaxy: "**/folder/galaxy.yml"
- tasks: "tasks/*.yml"
- vars: "vars/*.yml"
- meta: "meta/main.yml"
# - yaml: "**/*.yaml-too"
@chusiang
Copy link
Author

chusiang commented Sep 26, 2022

Please rename the .ansible-lint.yaml to .ansible-lint, and put to each ansible-playbook project.

[ chusiang@ubuntu-22.04 ~/playbooks ] (main) - 16:42
$ ls -1
.ansible-lint
...
ansible.cfg
...
.git
...
group_vars
..
playbook.yml
...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment