Skip to main content

ansible-lint-custom-strict-naming

PyPI PyPI Python Versions black Downloads

Ansible is a powerful tool for configuration management. But it is difficult to maintain the YAML playbook quality. Variable maintenance is one of the difficult tasks because they can be overwritten unexpectedly, if you don't care about such like precedence and position where variables are defined.

This is a strict rule for variable naming, using ansible-lint. Strict naming rule is useful to avoid name collision and to search defined position.

Rules

var_name_prefix

<role_name>_role__ , <task_name>_tasks__

  • prefix Variables defined in
    <role_name>_role__ roles/<role_name>/tasks/
    <role_name>_tasks__ <not_roles>/**/tasks/
  • In ansible-lint, var-naming[no-role-prefix] require to use <role_name>_ as prefix. But it is not enough to avoid name collision or search defined position. So, I add _role__ or _tasks__ to the prefix.

var__, const__

  • var__ prefix
    • Variables dynamically defined by ansible.builtin.set_fact or register
  • const__ prefix
    • Variables dynamically defined by ansible.builtin.set_fact or register
    • Variables statically defined in such like inventory's vars, group_vars, host_vars and etc.

Vars in tasks/<name>.yml or roles/<name>/tasks/main.yml

  • <name>_role__var__ prefix

    • These variables are dynamically defined in roles/<name>/tasks/main.yml.
  • <name>_role__const__ prefix

    • These variables are defined in roles/<name>/vars/main.yml and shouldn't be changed dynamically.
  • some_role__arg__ prefix

    • These variables are defined by ansible.builtin.include_role's vars key and shouldn't be changed dynamically.
  • some_role__args

    • These variables are defined by ansible.builtin.include_role's vars key and shouldn't be changed dynamically.

      - name: Sample
        ansible.builtin.include_role:
          name: some_role
        vars:
          some_role__arg__key1: value1
          some_role__arg__key2: value2
      
    • This is useful when you want to send vars as dict.

      - name: Sample
        ansible.builtin.include_role:
          name: some_role
        vars:
          some_role__args:
            key1: value1
            key2: value2
      

Others

Double underscores?

  • Single underscore (_) is used to separate words. Double underscores (__) are used to separate chunks for readability.
  • examples
    • var__send_message__user_id
    • var__send_message__content
    • some_role__const__app_config__name
    • some_role__const__app_config__token
    • some_role__const__app_config__version

Docs

Articles

Metadata

Release files for ansible-lint-custom-strict-naming 1.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ansible-lint-custom-strict-naming 1.1.2
File Size Uploaded
ansible_lint_custom_strict_naming-1.1.2.tar.gz 6.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ansible-lint-custom-strict-naming 1.1.2
File Interpreter ABI Platform
ansible_lint_custom_strict_naming-1.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 14.2 kB

Release files / ansible_lint_custom_strict_naming-1.1.2.tar.gz

Download URL ansible_lint_custom_strict_naming-1.1.2.tar.gz
Size 6.3 kB
Tags Source
SHA-256 checksum
How to use checksums
b490e596ec09ffcddefb255f5dd055de1a281720873b1080e4332317e5d9267f
BLAKE2b-256 checksum
How to use checksums
511fd782f23d5742c682590a9c4d6e9fb0d7072e0fc81a94f2f52366c425fde0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.1 CPython/3.12.6

Release files / ansible_lint_custom_strict_naming-1.1.2-py3-none-any.whl

Download URL ansible_lint_custom_strict_naming-1.1.2-py3-none-any.whl
Size 8.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1d1ab53de9646eff8d987d99cd5731a375c1330c5eb3f6085d6284e2be15df29
BLAKE2b-256 checksum
How to use checksums
82a1e519b0253a252a2b4ab841f9c86d1c4bf2a178c2e1016f67949c414fdb29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.1 CPython/3.12.6

Release history Release notifications | RSS feed

This release

1.1.2 This release

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.1

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page