Middle
Jaká je hierarchie proměnných v různých rolích DevOps?
sobes.tech AI
Odpověď od AI
Hierarchie proměnných v DevOps se obvykle vztahuje na systémy správy konfigurace, jako jsou Ansible, Puppet nebo Chef, kde různé úrovně definice proměnných mají různý prioritu. V kontextu Ansible to vypadá takto:
- Extra Vars (z příkazového řádku s
-e) - Lookup proměnné (například pomocí
{{ lookup(...) }}) - Vyhrazené proměnné (předdefinované proměnné Ansible, jako
hostvars,group_names,inventory_hostname) - Proměnné inventáře
- Skupinové proměnné (
group_vars/) - Proměnné hostitele (
host_vars/)
- Skupinové proměnné (
- Proměnné role (
roles/<role_name>/vars/) - Proměnné playbooku (
vars:v playbooku) - Výchozí hodnoty role (
roles/<role_name>/defaults) - Proměnné inventáře (ze souboru inventáře)
- Skupinové proměnné v inventáři
- Proměnné hostitele v inventáři
Příklad definice proměnných v Ansible pro roli:
---
# roles/my_role/vars/main.yml
my_variable: "hodnota nastavená v proměnných role"
Příklad výchozích hodnot pro roli:
---
# roles/my_role/defaults/main.yml
my_variable: "výchozí hodnota"
another_variable: "specifická výchozí hodnota pro roli"
Příklad použití v playbooku:
---
- name: Aplikovat my_role
hosts: my_servers
vars:
my_variable: "hodnota nastavená v playbooku"
roles:
- my_role
Příklad proměnné hostitele v inventáři:
[my_servers]
server1 my_variable="hodnota z inventáře hostitele"
server2
Proměnné definované na vyšší úrovni v této hierarchii (například Extra Vars) přepisují proměnné definované na nižší úrovni (například výchozí hodnoty role). V jiných nástrojích se hierarchie může lišit, ale obecný princip priority proměnných, které jsou definovány blíže místu použití nebo s explicitním označením (například v příkazovém řádku), zůstává podobný.