Sobes.tech
Middle

DevOps ролунда эмне үчүн эки өзгөрмө папка керек жана алар кайсылар?

sobes.tech AI

AIден жооп

DevOps ролунда эки папкадагы өзгөрмөлөрдү колдонуу адатта жалпы жана чөйрөгө (околду) тиешелүү конфигурацияларды бөлүп көрсөтүү үчүн колдонулат. Бул конфигурацияларды ийкемдүү, кайра колдонууга жана коопсуздукту жогорулатат.

Эки негизги папка:

  1. group_vars: Бул файлдарда белгилүү бир инвентар топтомуна тиешелүү өзгөрмөлөр сакталат. Бул файлдардагы өзгөрмөлөр топко киргизилген хостторго колдонулат, алардын аты файлдын атына дал келет (мисалы, group_vars/web_servers.yaml) же group_vars/all.yaml файлына (бардык хостторго колдонулат). Бул серверлер тобуна жалпы орнотууларды аныктоо үчүн ыңгайлуу (мисалы, тармактык орнотуулар, орнотуу жолдору).
  2. host_vars: Бул файлдарда жеке хостторго тиешелүү өзгөрмөлөр сакталат. Бул файлдардагы өзгөрмөлөр гана белгилүү бир хостко колдонулат, анын аты файлдын атына дал келет (мисалы, host_vars/server1.example.com.yaml). Бул уникалдуу орнотуулар үчүн колдонулат (мисалы, конкреттүү интерфейсдин IP-даректери, программалык камсыздоонун версиялары, атайын кирүү мүмкүнчүлүктөрү).

Ansible колдонуу учурунда каталог структурасынын мисалы:

# Өзгөрмөлөрдүн каталог структурасы
.
├── inventory  # Инвентар файлы же каталог
│   └── hosts.yaml
├── group_vars
│   ├── all.yaml       # Бардык хосттор үчүн жалпы өзгөрмөлөр
│   └── web_servers.yaml # web_servers тобу үчүн өзгөрмөлөр
└── host_vars
    ├── server1.example.com.yaml # server1 хосту үчүн өзгөрмөлөр
    └── server2.example.com.yaml # server2 хосту үчүн өзгөрмөлөр

Файлдар мазмунунун мисалы:

// group_vars/all.yaml
---
# Бардык хосттор үчүн жалпы өзгөрмөлөр
tz: "Europe/Moscow"
ntp_servers:
  - 0.pool.ntp.org
  - 1.pool.ntp.org
// group_vars/web_servers.yaml
---
# web_servers тобу үчүн өзгөрмөлөр
http_port: 80
https_port: 443
document_root: "/var/www/html"
// host_vars/server1.example.com.yaml
---
# server1 үчүн уникалдуу өзгөрмөлөр
external_ip: "192.168.1.100"
database_server: "db.example.com"

Мындай бөлүштүрүүнүн артыкчылыктары:

  • Иерархия жана артыкчылык: Бул өзгөрмөлөрдүн колдонулушунда так иерархияны камсыздайт (host_vars артыкчылыкка ээ, group_vars артыкчылыкка ээ, ал эми конкреттүү топ үчүн group_vars/да артыкчылык жогору).
  • Кайталап колдонуу: Жалпы орнотууларды бир жолу group_varsда аныктап, көптөгөн хостторго колдонсо болот.
  • Ачкычтык жана башкаруу: Конфигурация түшүнүктүү жана оңой колдонуучу болот, анткени атайын жана жалпы орнотуулар бөлүнгөн.
  • Коопсуздук: Сезимталдуу атайын маалыматтар (мисалы, паролдор же ачкычтар) host_varsда сакталат жана керек болсо шифрлөө мүмкүн.

Башка инструменттердин контекстинде (мисалы, Terraform .tfvars файлдары же колдонмо конфигурациялык файлдары) жалпы жана атайын өзгөрмөлөрдү бөлүү принциби сакталат, бирок каталогдордун аталышы айырмаланышы мүмкүн. Мисалы, Terraformда көбүнчө terraform.tfvars файлы колдонулат (жалпы маанилер үчүн) жана атайын файлдар dev.tfvars, stage.tfvars, prod.tfvars сыяктуу.

Негизги идея — өзгөрүлбөс "жалпы" параметрлерди өзгөрүлүүчү "чөйрө" же "хост" параметрлеринен бөлүп, конфигурацияны башкарууну жөнөкөйлөтүү.