Rule: All Ansible Yaml files MUST have a .yml extension (and NOT .YML, .yaml etc).
Rationale:
Ansible tooling (like ansible-galaxy init) create files with a .yml extension.
Also, the Ansible documentation website references files with a .yml extension several times.
Because of this, it is normal in the Ansible community to use a .yml extension for all Ansible Yaml files.
Rule: Reuse Ansible Galaxy content by default
Rationale:
Existing roles and collections on galaxy.ansible.com tend to be of high quality and designed for re-use.
It comes with documentation / README.md and maintenance that you don't need to do on new custom roles.
npmrundevGood
functionprintName () {let name =prompt("Please enter your name")alert(`Your name is ${name}`)}
Rule: Manage inventory externally to the primary playbook repository
Rationale:
This setup forces you to design the repository in a way that simplifies local development, production usage and staging replica infrastructures.
Rule: Use SOPS encryption to secure inventory repositories
Rationale:
SOPS is a version-control and collaboration-friendly encryption solution, perfectly suited for this use-case.
Rule: Title-case task names in Ansible playbooks
Rationale:
consistency
- hosts: alltasks: - name: Set OS distribution dependant variablesinclude_vars: "os_{{ ansible_facts['distribution'] }}.yml" - debug:var: asdf
- hosts: alltasks: - name: set os distribution dependant variablesinclude_vars: "os_{{ ansible_facts['distribution'] }}.yml" - debug:var: asdf