Sobes.tech
Middle

Mi a változók hierarchiája a különböző DevOps szerepkörökben?

sobes.tech MI

Válasz az MI-től

A DevOps változók hierarchiája általában a konfigurációkezelő rendszerekre, például az Ansible-re, Puppet-re vagy Chef-re utal, ahol a változók különböző szinteken való meghatározásának prioritása eltérő. Az Ansible kontextusában ez így néz ki:

  1. Extra Vars (parancssorból -e-vel)
  2. Lookup változók (pl. {{ lookup(...) }} használatával)
  3. Foglalt változók (az Ansible által előre definiált változók, mint például hostvars, group_names, inventory_hostname)
  4. Inventory változók
    • Csoport változók (group_vars/)
    • Host változók (host_vars/)
  5. Szerepkör változók (roles/<role_name>/vars/)
  6. Play változók (vars: a playbookban)
  7. Alapértelmezett értékek a szerepkör számára (roles/<role_name>/defaults)
  8. Inventory változók (az inventory fájlból)
    • Csoport változók az inventoryban
    • Host változók az inventoryban

Példa változók definiálására Ansible-ben egy szerepkör számára:

---
# roles/my_role/vars/main.yml
my_variable: "érték, amit a szerepkör változóiban állítottak be"

Példa alapértelmezett értékek meghatározására egy szerepkör számára:

---
# roles/my_role/defaults/main.yml
my_variable: "alapértelmezett érték"
another_variable: "szerepkör-specifikus alapértelmezett érték"

Példa a playbookban való használatra:

---
- name: my_role alkalmazása
  hosts: my_servers
  vars:
    my_variable: "érték, amit a playbookban állítottak be"
  roles:
    - my_role

Példa host változóra az inventoryban:

[my_servers]
server1 my_variable="érték az inventory hostból"
server2

A hierarchiában magasabb szinten meghatározott változók (pl. Extra Vars) felülírják az alacsonyabb szinten meghatározottakat (pl. szerepkör alapértelmezett értékek). Más eszközöknél a hierarchia eltérhet, de a változók prioritási elve, amely közelebb van a használat helyéhez vagy explicit megjelöléssel van ellátva (például parancssorban), hasonló marad.