Aká je hierarchia premenných v rôznych rolách DevOps?
sobes.tech AI
Odpoveď od AI
Hierarchia premenných v DevOps zvyčajne odkazuje na systémy správy konfigurácie, ako sú Ansible, Puppet alebo Chef, kde rôzne úrovne definície premenných majú rôzny prioritu. V kontexte Ansible to vyzerá takto:
- Extra Vars (z príkazového riadku s
-e) - Lookup premenné (napríklad pomocou
{{ lookup(...) }}) - Vyhradené premenné (preddefinované premenné Ansible, ako
hostvars,group_names,inventory_hostname) - Premenné inventára
- Skupinové premenné (
group_vars/) - Host premenné (
host_vars/)
- Skupinové premenné (
- Premenné roly (
roles/<role_name>/vars/) - Premenné hry (
vars:v playbooku) - Predvolené hodnoty roly (
roles/<role_name>/defaults) - Premenné inventára (z inventárneho súboru)
- Skupinové premenné v inventári
- Host premenné v inventári
Príklad definície premenných v Ansible pre rolu:
---
# roles/my_role/vars/main.yml
my_variable: "hodnota nastavená v vars role"
Príklad definície predvolených hodnôt pre rolu:
---
# roles/my_role/defaults/main.yml
my_variable: "predvolená hodnota"
another_variable: "špecifická predvolená hodnota pre rolu"
Príklad použitia v playbooku:
---
- name: Aplikovať my_role
hosts: my_servers
vars:
my_variable: "hodnota nastavená v playbooku"
roles:
- my_role
Príklad hostovej premennej v inventári:
[my_servers]
server1 my_variable="hodnota z inventárneho hosta"
server2
Premenné definované na vyššej úrovni v tejto hierarchii (napríklad Extra Vars) prepíšu premenné definované na nižšej úrovni (napríklad predvolené hodnoty roly). V iných nástrojoch sa hierarchia môže líšiť, ale všeobecný princíp priorít premenných, definovaných bližšie k miestu použitia alebo s explicitným označením (napríklad v príkazovom riadku), zostáva podobný.