Prefixen van rol- en projectvariabelen in Ansible

Prefix rolvariabelen met de rolnaam en projectvariabelen met een projectspecifiek voorvoegsel.

Probleem

Zonder een rol- of projectvoorvoegsel is het niet altijd duidelijk waar variabelen worden gebruikt. Zonder een voorvoegsel is er ook een kans op conflicterende of dubbele variabelenamen.

Context

In een typisch Ansible-inventarisproject worden veel soorten variabelen aangemaakt en gebruikt. Sommige variabelen behoren tot Ansible-rollen terwijl andere alleen in de inventaris worden geïntroduceerd. Dit onderscheid kan verwarrend zijn en tot fouten leiden.

Rolvariabelen volgen een bekende naamgevingsconventie die wordt gecontroleerd door linters zoals ansible-lint. Projectvariabelen daarentegen worden gedefinieerd in group_vars of host_vars en maken geen deel uit van een rol. Deze variabelen vereisen een expliciet projectvoorvoegsel om conflicten te voorkomen en hun oorsprong duidelijk te maken.

Oplossing

  1. Prefixeer elke rolvariabele met de rolnaam, bijvoorbeeld harbor_.
  2. Prefixeer elke projectvariabele die alleen bestaat in group_vars of host_vars met een projectvoorvoegsel, bijvoorbeeld c2_.

Voordelen

  • Maakt de oorsprong van elke variabele direct zichtbaar.
  • Voorkomt onbedoelde duplicatie of overschrijving van variabelen.
  • Sluit aan bij communitystandaarden en maakt geautomatiseerde linting voor rolvariabelen mogelijk.
  • Verbetert de onderhoudbaarheid van grote Ansible-inventarisprojecten.

Alternatieven (optioneel)

Het gebruik van een generiek voorvoegsel zoals var_ voor alle variabelen vermindert de duidelijkheid en wordt niet aanbevolen.

Voorbeelden en implementatie

  1. harbor_hostname is een rolvariabele voor de c2platform.mgmt.harbor rol. Het voorvoegsel harbor_ volgt de rolnaam.
  2. In het C2 Ansible-inventarisproject c2platform/ansible wordt het voorvoegsel c2_ gebruikt voor projectvariabelen, bijvoorbeeld c2_cacerts2_ca_dir in group_vars/all/smallca.yml.
  3. In het RWS Ansible-inventarisproject c2platform/rws/ansible-gis wordt het voorvoegsel gs_ gebruikt. Zie Configuratie van een webproxyserver voorbeeld voor MS Windows-hosts voor het gebruik van gs_proxy_regedit.

Laatst gewijzigd 2026.08.11: guideline variable prefix PHX-661 (aa6a123)