Sobes.tech
Middle

Miks on DevOps rollis vajadzīgas divas mainmäpp ja un kas tās ir?

sobes.tech AI

Vastus AI-lt

Kahjuhul DevOps-is kasutatakse tavaliselt kahte muutuja kausta, et eraldada üldised ja keskkonnaspetsiifilised (keskkonna) seaded. See suurendab konfiguratsioonide paindlikkust, taaskasutatavust ja turvalisust.

Kaks peamist kausta:

  1. group_vars: Sisaldab muutujaid, mis kehtivad kõigile hostidele kindlas inventari grupis. Nende failide muutujaid rakendatakse gruppi kuuluvatele hostidele, mille nimi vastab faili nimele (näiteks group_vars/web_servers.yaml) või failile group_vars/all.yaml (rakendub kõigile hostidele). See on mugav üldiste seadistuste määramiseks serverirühmale (näiteks võrgu seaded, installatsiooniteed).
  2. host_vars: Sisaldab muutujaid, mis on spetsiifilised üksikutele hostidele. Nende failide muutujaid rakendatakse ainult konkreetsele hostile, mille nimi vastab faili nimele (näiteks host_vars/server1.example.com.yaml). Kasutatakse unikaalsete seadistuste jaoks (näiteks konkreetse liidese IP-aadress, tarkvara versioon, spetsiifilised ligipääsud).

Ansible kasutamise näide kataloogistruktuurist:

# Muutujate kataloogistruktuur
.
├── inventory  # Inventari fail või kaust
│   └── hosts.yaml
├── group_vars
│   ├── all.yaml       # Kõigi hostide ühised muutujad
│   └── web_servers.yaml # Muutujad web_serverite rühmale
└── host_vars
    ├── server1.example.com.yaml # Muutujad serverile server1
    └── server2.example.com.yaml # Muutujad serverile server2

Failide näidised:

// group_vars/all.yaml
---
# Kõigi hostide ühised muutujad
timezone: "Europe/Moscow"
ntp_servers:
  - 0.pool.ntp.org
  - 1.pool.ntp.org
// group_vars/web_servers.yaml
---
# Muutujad web_serverite rühmale
http_port: 80
https_port: 443
document_root: "/var/www/html"
// host_vars/server1.example.com.yaml
---
# Spetsiifilised muutujad serverile server1
external_ip: "192.168.1.100"
database_server: "db.example.com"

Sellise jaotuse eelised:

  • Hierarhia ja prioriteet: Tagab selge hierarhia muutujate rakendamisel (host_vars on prioriteedid kõrgemad kui group_vars, ning group_vars konkreetsele grupile on prioriteedid kõrgemad kui group_vars/all).
  • Taaskasutus: Üldised seaded saab määratleda ühe korra group_vars kaustas ja neid rakendada paljudele hostidele.
  • Lugemise lihtsus ja haldamine: Konfiguratsioon muutub arusaadavamaks ja hõlpsamini hooldatavaks, kuna spetsiifilised ja üldised seaded on eraldatud.
  • Turvalisus: Tundlikud ja spetsiifilised andmed (näiteks paroolid või võtmed) võivad olla salvestatud host_vars kaustas ja krüpteeritud eraldi, kui see on vajalik.

Teiste tööriistade kontekstis (näiteks Terraform .tfvars failide või rakenduse konfiguratsioonifailide kasutamisel) säilib põhimõte üldiste ja keskkonnaspetsiifiliste muutujate eraldamisest, kuigi kaustade nimed võivad erineda. Näiteks Terraformis kasutatakse sageli faile nagu terraform.tfvars üldiste vaikeseadete jaoks ja spetsiifilisi faile keskkondade jaoks nagu dev.tfvars, stage.tfvars, prod.tfvars.

Põhitees on eraldada muutumatud "üldised" parameetrid muutuvatest "keskkonna" või "serveri" parameetritest, et lihtsustada konfiguratsiooni haldamist.