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