ansible-lint-custom-strict-naming
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
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