Sobes.tech
Middle

Kāda ir mainīgo hierarhija dažādās DevOps lomās?

sobes.tech AI

Atbilde no AI

DevOps mainīgo hierarhija visbiežāk attiecas uz konfigurācijas pārvaldības sistēmām, piemēram, Ansible, Puppet vai Chef, kur dažādi definēšanas līmeņi ir ar dažādu prioritāti. Ansible kontekstā tas izskatās šādi:

  1. Papildu mainīgie (komandrindā ar -e)
  2. Lookup mainīgie (piemēram, ar {{ lookup(...) }})
  3. Rezervētie mainīgie (iepriekš definēti Ansible, piemēram, hostvars, group_names, inventory_hostname)
  4. Inventāra mainīgie
    • Grupas mainīgie (group_vars/)
    • Hosta mainīgie (host_vars/)
  5. Lomas mainīgie (roles/<role_name>/vars/)
  6. Spēles mainīgie (vars: spēlē)
  7. Lomas noklusējumi (roles/<role_name>/defaults)
  8. Inventāra mainīgie (no inventāra faila)
    • Grupas mainīgie inventārā
    • Hosta mainīgie inventārā

Piemērs: Lomas mainīgo definēšana Ansible:

---
# roles/my_role/vars/main.yml
my_variable: "vērtība lomā vars"

Noklusējuma vērtības definēšana lomai:

---
# roles/my_role/defaults/main.yml
my_variable: "noklusējuma vērtība"
another_variable: "konkrēta noklusējuma vērtība lomai"

Piemērs izmantošanai spēlē:

---
- nosaukums: Pielietot my_role
  hosts: mani_serveri
  vars:
    my_variable: "vērtība spēlē"
  lomās:
    - my_role

Hosta mainīgie inventārā:

[mani_serveri]
server1 my_variable="vērtība no inventāra hosta"
server2

Augstāka līmeņa mainīgie (piemēram, papildu mainīgie) pārdefinē zemākus līmeņus (piemēram, lomā noklusējumi).

Citos rīkos hierarhija var atšķirties, bet kopējais princips ir prioritāte, kad mainīgie ir definēti tuvāk lietošanas vietai vai ar explicit norādi (kā komandrindā).