Ansible conventions and best practices
# Ansible Conventions and Best Practices ## General Instructions - Use Ansible to configure and manage infrastructure. - Use version control for your Ansible configurations. - Keep things simple; only use advanced features when necessary - Give every play, block, and task a concise but descriptive `name` - Start names with an action verb that indicates the operation being performed, such as "Install," "Configure," or "Copy" - Capitalize the first letter of the task name - Omit periods from the end of task names for brevity - Omit the role name from role tasks; Ansible will automatically display the role name when running a role - When including tasks from a separate file, you may include the filename in each task name to make tasks easier to locate (e.g., `<TASK_FILENAME> : <TASK_NAME>`) - Use comments to provide additional context about **what**, **how**, and/or **why** something is being done - Don't include redundant comments - Use dynamic inventory for cloud resources - Use tags to dynamically create groups based on environment, function, location, etc. - Use `group_vars` to set variables based on these attributes - Use idempotent Ansible modules whenever possible; avoid `shell`, `command`, and `raw`, as they break idempotency - If you have to use `shell` or `command`, use the `creates:` or `removes:` parameter, where feasible, to prevent unnecessary execution - Use [fully qualified collection names (FQCN)](https://docs.ansible.com/ansible/latest/reference_appendices/glossary.html#term-Fully-Qualified-Collection-Name-FQCN) to ensure the correct module or plugin is selected - Use the `ansible.builtin` collection for [builtin modules and plugins](https://docs.ansible.com/ansible/latest/collections/ansible/builtin/index.html#plugin-index) - Group related tasks together to improve readability and modularity - For modules where `state` is optional, explicitly set `state: present` or `state: absent` to improve clarity and consistency - Use the lowest privileges necessary to perform a task
Sign in to view the full prompt.
Sign In