Bosh sahifa Wiki Configuration management

Configuration management

Configuration management — tizimlar va dasturiy muhitlarning kerakli holatini aniqlash, versiyalash, tatbiq etish va nazorat qilish jarayoni. U paketlar, xizmatlar, fayllar, foydalanuvchilar, policy va runtime sozlamalarini bir xil hamda takrorlanuvchi saqlashga yordam beradi. Maqsad serverlarni qo‘lda eslab boshqarish emas, holatni tekshiriladigan manbada ifodalashdir.

Desired state

Konfiguratsiya “web service o‘rnatilgan, yoqilgan va 8080-portda ishlasin” kabi desired state’ni bildirishi mumkin. Agent yoki remote runner joriy holatni tekshiradi va farq bo‘lsa zarur tasklarni bajaradi. Idempotent task bir necha marta ishlatilganda bir xil yakuniy holatni saqlaydi.

Imperativ playbook amallar ketma-ketligini, deklarativ resource esa yakuniy holatni ko‘proq ifodalaydi. Amaliy vositalar ikkisini aralashtiradi: package deklarativ, migration command esa imperativ bo‘lishi mumkin.

Boshqariladigan obyektlar

Obyekt Misol
Paket Nginx ma’lum versiyada o‘rnatilgan
Fayl Template’dan service config yaratilgan
Xizmat Enabled va running
User Account, group va SSH key
Policy Firewall va sudo qoidasi
Scheduler Cron yoki timer task

Application data odatda configuration management orqali boshqarilmaydi. Database row’larini config task bilan qayta-qayta yozish ownership va transaction muammosini keltiradi.

Inventory

Inventory boshqariladigan hostlar, guruhlar va ularga tegishli o‘zgaruvchilarni belgilaydi. Static fayl kichik muhitga mos; dynamic inventory cloud API yoki CMDB’dan joriy instance’larni oladi. Host identity IPga emas, barqaror ID yoki nomga bog‘lanadi.

Group variable qatlamlari bir-birini override qilganda yakuniy qiymatni tushunish qiyinlashishi mumkin. Precedence qoidasi aniq va debug outputda resolved config ko‘rinadi.

Push va pull

Push model control node’dan SSH yoki remote API orqali hostlarga ulanadi. Agentless vositalar targetda doimiy agent talab qilmaydi, lekin Python, shell yoki management protocol kabi prerequisite bo‘lishi mumkin. Pull model agent markaziy serverdan policy olib, davriy qo‘llaydi.

Push tez ad-hoc orchestrationga qulay. Pull uzilgan node qaytganda o‘zi converge qiladi va katta flotda markaziy connection bosimini kamaytirishi mumkin. Xavfsizlik boundary va network topologiya tanlovga ta’sir qiladi.

Template va secret

Template muhit o‘zgaruvchilaridan konfiguratsiya fayli yaratadi. Renderdan oldin type va majburiy qiymatlar validatsiya qilinadi. Noto‘g‘ri template barcha hostga tarqalmasligi uchun syntax check, canary va rolling batch ishlatiladi.

Secret inventory yoki repository’da plain text saqlanmaydi. Vault, secret manager yoki shifrlangan variable ishlatiladi. Render qilingan fayl permission’i minimal va task outputida secret yashiriladi.

Handler va change

Task haqiqiy o‘zgarish qilganda handler notification yuborishi mumkin. Masalan, config fayl diff bo‘lsa service reload qilinadi; fayl allaqachon to‘g‘ri bo‘lsa reload bo‘lmaydi. Bu keraksiz uzilish va cascading restartni kamaytiradi.

Reload va restart farqi service capability’ga bog‘liq. Config validatsiya muvaffaqiyatli bo‘lmasdan restart qilish outage keltiradi. Handlerlar play oxirida yig‘ilib bajarilishi yoki zarur boundary’da flush qilinishi mumkin.

Drift va audit

Operator hostda qo‘lda tahrir qilsa keyingi run desired holatni qaytaradi yoki check mode diff ko‘rsatadi. Emergency change kodga qayd etilmasa yo‘qoladi. Git commit, run ID va host diff audit zanjirini yaratadi.

Configuration management package va OS holatini boshqaradi, Infrastructure as Code esa ko‘pincha VM, network va cloud resource lifecycle’ini boshqaradi. Chegara vositaga qarab ustma-ust tushishi mumkin, ammo bitta obyektga bitta authoritative owner beriladi.

Bog‘liq tushunchalar

Desired state, Infrastructure as Code, Playbook, Inventory, Idempotency, Configuration drift, Agentless automation