Bosh sahifa Wiki Catalog

Catalog

Catalog — konfiguratsiyani boshqarish tizimida muayyan tugun uchun kerakli resurslar va ularning bog‘lanishlarini ifodalovchi kompilyatsiya qilingan modeldir. Puppet ekotizimida katalog manifestlar, modullar, parametrlar va tugun faktlari asosida server tomonidan tuziladi; agent esa katalogni qabul qilib, lokal tizim holatini unga moslashtiradi.

Deklarativ model

Katalog buyruqlarning qat’iy skripti emas. Unda file, package, service, user kabi resurslar va ularning kerakli holati ko‘rsatiladi. Masalan, paket installed, xizmat running, konfiguratsiya fayli esa ma’lum mazmunga ega bo‘lishi talab qilinadi. Agent joriy holatni tekshiradi va faqat farq bo‘lsa o‘zgarish kiritadi.

Bu yondashuv idempotent bajarilishga xizmat qiladi. Bir xil katalog qayta qo‘llanganda tizim allaqachon kerakli holatda bo‘lsa, ortiqcha amal bajarilmaydi. Biroq idempotentlik har bir resurs providerining to‘g‘ri ishlashiga bog‘liq; ixtiyoriy shell buyrug‘i o‘z-o‘zidan deklarativ bo‘lib qolmaydi.

Kompilyatsiya jarayoni

Agent serverga tugun nomi, environment va facts ma’lumotlarini yuboradi. Server tegishli node tasnifi va manifestlarni tanlaydi, o‘zgaruvchilarni hisoblaydi, shartlarni faktlar bilan yechadi va yakuniy resurs grafigini hosil qiladi. Funksiya chaqiruvlari va shablonlar ham shu bosqichda qayta ishlanishi mumkin.

Natijada agentga manba kodning o‘zi emas, aynan shu tugun uchun tayyor katalog beriladi. Ikki server bir xil manifestdan foydalansa ham operatsion tizim turi, rol yoki parametrlar farqi sabab kataloglari turlicha bo‘lishi mumkin. Katalogning muhit va kod versiyasi bilan bog‘lanishi takrorlanuvchanlik uchun muhim.

Resurslar grafigi

Katalogdagi bog‘lanishlar bajarish tartibi va o‘zgarish ta’sirini ifodalaydi. Require bir resurs boshqasidan oldin tayyor bo‘lishini, before teskari yo‘nalishdagi tartibni belgilaydi. Notify yoki subscribe kabi munosabat o‘zgarish yuz bersa bog‘liq resursga refresh hodisasini yetkazishi mumkin.

Masalan, paket konfiguratsiya faylidan oldin o‘rnatiladi; fayl yangilansa xizmat qayta yuklanadi. Bog‘lanish ko‘rsatilmagan mustaqil resurslarning tartibiga tayanish xato. Tsiklik bog‘lanish paydo bo‘lsa katalog grafigini bajarib bo‘lmaydi va kompilyatsiya yoki qo‘llash xato bilan tugaydi.

Katalogni qo‘llash

Agent resurslarni katalogdagi bog‘lanishlarga muvofiq tekshiradi. Har resurs uchun joriy holat olinadi, kerakli holat bilan solishtiriladi va zarur bo‘lsa provider orqali o‘zgartiriladi. Yakunda qaysi resurs o‘zgargani, muvaffaqiyatsiz bo‘lgani yoki o‘tkazib yuborilgani haqida report hosil qilinadi.

Bitta resurs xatosi barcha mustaqil resurslarni doim ham to‘xtatmaydi. Biroq unga bog‘liq resurslar xavfsizlik uchun o‘tkazib yuborilishi mumkin. Shuning uchun reportdagi failed va skipped holatlarini alohida talqin qilish kerak.

Saqlash va xavfsizlik

Katalogda fayl mazmuni, buyruq parametri yoki xizmat sozlamasi bo‘lishi mumkin. Maxfiy qiymat katalogga oddiy matn sifatida kirsa, server keshi, agent keshi va hisobotlarda qolishi ehtimoli mavjud. Sensitive turidagi qiymat ko‘rsatilishini cheklashi mumkin, ammo maxfiylik butun uzatish va saqlash zanjirida ta’minlanadi.

Agent katalogni ishonchli serverdan olishi uchun TLS sertifikatlari bilan autentifikatsiya qilinadi. Katalog muayyan tugunga mo‘ljallangani tekshiriladi. Noto‘g‘ri node classification katta miqyosda xato konfiguratsiya tarqatishi mumkinligi sabab kod ko‘rigi, test muhiti va bosqichli joriy etish qo‘llanadi.

Katalogni tekshirish

Kompilyatsiya testi ma’lum facts va parametrlar uchun katalogda kerakli resurs, atribut hamda bog‘lanishlar borligini tekshiradi. Bu test real tizimni o‘zgartirmaydi. Integratsiya sinovi esa katalogni vaqtinchalik tugunga qo‘llab, providerning haqiqiy natijasini kuzatadi. Katalog farqi yangi kod qo‘shgan yoki olib tashlagan resurslarni joriy etishdan oldin ko‘rsatadi.

Bog‘liq tushunchalar

Puppet, Manifest, Fact, Resource, Agent, Idempotence, Dependency graph