Bosh sahifa Wiki Inventory

Inventory

Inventory — configuration management tizimida boshqariladigan hostlar va ularning guruh, manzil, ulanish parametri hamda o‘zgaruvchilarini tavsiflovchi manba. U playbook qayerda bajarilishini belgilaydi. Inventory oddiy host ro‘yxati emas; deployment topology va target tanlashning muhim contractidir.

Static inventory

Static inventory INI, YAML yoki boshqa faylda qo‘lda saqlanadi. Kichik va sekin o‘zgaradigan muhit uchun tushunarli. Host alias bilan yozilib, real connection address alohida berilishi mumkin.

all:
  children:
    web:
      hosts:
        web-01:
          ansible_host: 10.20.0.11
        web-02:
          ansible_host: 10.20.0.12

Alias barqaror bo‘lsa IP o‘zgarganda run tarixi bir host identity ostida qoladi.

Dynamic inventory

Cloud muhitda instance’lar tez yaratiladi va o‘chadi. Dynamic inventory plugin provider API, CMDB yoki service registry’dan joriy ro‘yxatni oladi. Tag, account, region va instance state bo‘yicha guruhlar avtomatik quriladi.

API eventual consistency sabab yangi host darhol ko‘rinmasligi mumkin. Cache tezlik va rate limitni yaxshilaydi, ammo stale hostga task yuborish ehtimoli bor. Cache TTL va refresh siyosati deployment tezligiga mos bo‘ladi.

Guruhlar

Host bir nechta guruhga kirishi mumkin: production, web, hudud va compliance guruhi. Guruh application roli, environment yoki failure domainni ifodalaydi. Bir xil nomni turli ma’noda ishlatish target patternni xavfli qiladi.

Guruh mezoni Misol
Muhit production, staging
Rol web, database, cache
Hudud region yoki availability zone
Siyosat compliance yoki patch ring
Lifecycle canary, active, draining

Parent-child guruh umumiy variable inheritance beradi. Chuqur iyerarxiya precedence’ni tushunishni qiyinlashtirishi mumkin.

Host va group variables

Group variable umumiy port yoki package versionni, host variable esa qurilmaga xos management IP’ni saqlaydi. Secret oddiy inventory’da yozilmaydi; vault yoki secret manager reference’i ishlatiladi.

Bir qiymat bir nechta qatlamda berilsa precedence qoidasi yakuniy natijani tanlaydi. Run oldidan resolved inventory chiqarilib, ayniqsa productionda target va variable tekshiriladi.

Target pattern

Play kesishma va exclusion bilan hostlarni tanlashi mumkin. Keng wildcard typo sabab kutilmagan flotga ta’sir qilishi mumkin. Qo‘shimcha limit ikkinchi chegara beradi, ammo asl play targetining to‘g‘riligini almashtirmaydi.

Deploymentdan oldin host ro‘yxati dry run orqali ko‘rsatiladi. Expected 10 o‘rniga 1000 host chiqsa pipeline to‘xtaydi. Maximum target guard blast radius’ni cheklaydi.

Identity va qayta yaratish

IP manzil host identity uchun zaif: cloud instance qayta yaratilganda IP boshqa mashinaga o‘tishi mumkin. Provider instance ID, certificate yoki CMDB asset ID barqarorroq. Eski host inventory’dan chiqishi va yangi host alohida lifecycle’dan o‘tishi kerak.

Hostname qayta ishlatilsa cached fact va host key chalkashishi mumkin. SSH host key verification yangi identity’ni aniqlaydi; uni global o‘chirib qo‘yish man-in-the-middle xavfini oshiradi.

Fact va inventory farqi

Inventory desired classification va connection ma’lumotini beradi. Fact gathering hostdan joriy OS, interface, memory va boshqa runtime ma’lumotini oladi. Fact’ni inventoryga qo‘lda nusxalash tez eskiradi.

Fact cache tasklarni tezlashtiradi, ammo security va freshness talabiga ega. Sensitive environment value fact sifatida markaziy cache’ga tushmasligi kerak.

Inventory sifati

Duplicate host, bo‘sh guruh va eskirgan endpoint lint hamda connectivity check bilan topiladi. Inventory change code review’dan o‘tadi, chunki bitta noto‘g‘ri group membership production taskni test hostga yoki aksincha yuborishi mumkin.

Owner, source va last-seen metadatasi orphan hostni aniqlaydi. Dynamic source ishlamay qolsa eski cache bilan davom etish yoki run’ni to‘xtatish siyosati aniq bo‘ladi.

Bog‘liq tushunchalar

Configuration management, Dynamic inventory, Playbook, Host group, CMDB, Fact gathering, Agentless automation