Sobes.tech
Middle

Ի՞նչ է փոփոխականների հիերարխիան տարբեր դերերում DevOps-ում։

sobes.tech AI

Պատասխան AI-ից

DevOps-ի փոփոխականների հիերարխիան սովորաբար վերաբերում է կոնֆիգուրացիայի կառավարման համակարգերին, ինչպիսիք են Ansible, Puppet կամ Chef, որտեղ տարբեր մակարդակների փոփոխականների սահմանումը ունեն տարբեր առաջնահերթություններ: Ansible-ի համատեքստում դա տեսնում է այնպես՝

  1. Extra Vars (-e հրամանի տողից)
  2. Lookup փոփոխականներ (օրինակ, {{ lookup(...) }} օգտագործելով)
  3. Պատրաստված փոփոխականներ (նախորոշված Ansible փոփոխականներ, ինչպիսիք են hostvars, group_names, inventory_hostname)
  4. Ինվենտարի փոփոխականներ
    • Խմբային փոփոխականներ (group_vars/)
    • Հոստային փոփոխականներ (host_vars/)
  5. Ռոլի փոփոխականներ (roles/<role_name>/vars/)
  6. Խաղի փոփոխականներ (vars: խաղային գրքում)
  7. Ռոլի նախնական արժեքներ (roles/<role_name>/defaults)
  8. Ինվենտարի փոփոխականներ (ինվենտարի ֆայլից)
    • Խմբային փոփոխականներ ինվենտարում
    • Հոստային փոփոխականներ ինվենտարում

Օրինակ՝ փոփոխականների սահմանում Ansible-ում ռոլի համար՝

---
# roles/my_role/vars/main.yml
my_variable: "ռոլի vars-ում սահմանված արժեք"

Նախնական արժեքների օրինակ՝

---
# roles/my_role/defaults/main.yml
my_variable: "նախնական արժեք"
another_variable: "ռոլի համար հատուկ նախնական արժեք"

Օգտագործման օրինակ՝

---
- անուն: my_role կիրառել
  hosts: my_servers
  vars:
    my_variable: "խաղային գրքում սահմանված արժեք"
  roles:
    - my_role

Հոստային փոփոխականի օրինակ՝ ինվենտարում՝

[my_servers]
server1 my_variable="ինվենտարի հոստից արժեք"
server2

Այս հիերարխիայում բարձր մակարդակով սահմանված փոփոխականները (օրինակ, Extra Vars) գերակայություն ունեն ցածր մակարդակով սահմանվածների նկատմամբ (օրինակ, Ռոլի նախնական արժեքներ): Այլ գործիքներում հիերարխիան կարող է տարբեր լինել, բայց ընդհանուր սկզբունքը՝ փոփոխականների առաջնահերթությունը, որոնք սահմանված են օգտագործման վայրից ավելի մոտ կամ բացահայտ նշված, մնում է նույնը։