Ansible Tower-dagi Ansible Content Collections inventar plaginlaridan foydalanish

IT muhitlari tobora murakkablashib bormoqda. Bunday sharoitda AT avtomatlashtirish tizimi tarmoqda mavjud bo'lgan va qayta ishlanishi kerak bo'lgan tugunlar haqida so'nggi ma'lumotlarga ega bo'lishi juda muhimdir. Red Hat Ansible Automation Platform-da bu muammo inventar deb ataladigan yo'l bilan hal qilinadi (inventarizatsiya) – boshqariladigan tugunlar ro‘yxati.

Ansible Tower-dagi Ansible Content Collections inventar plaginlaridan foydalanish

Eng oddiy shaklda inventar statik fayldir. Bu Ansible bilan ishlashni boshlaganingizda juda mos keladi, lekin avtomatlashtirish oshgani sayin, u etarli emas.

Va shuning uchun:

  1. Ishlar doimiy ravishda o'zgarganda, ish yuklari va keyinchalik ular ishlaydigan tugunlar kelib-ketganda, kuzatilayotgan tugunlarning to'liq ro'yxatini qanday yangilash va saqlash kerak?
  2. Muayyan avtomatlashtirishni qo'llash uchun maxsus tugunlarni tanlash uchun IT infratuzilmasi tarkibiy qismlarini qanday tasniflash kerak?

Dinamik inventar ushbu savollarning ikkalasiga ham javob beradi (dinamik inventarizatsiya) - haqiqat manbasiga ishora qilib, avtomatlashtirilgan tugunlarni qidiradigan skript yoki plagin. Bundan tashqari, dinamik inventarizatsiya tugunlarni avtomatik ravishda guruhlarga ajratadi, shunda siz aniq Ansible avtomatlashtirishni amalga oshirish uchun maqsadli tizimlarni aniqroq tanlashingiz mumkin.

Inventar plaginlari Ansible foydalanuvchisiga maqsadli tugunlarni dinamik ravishda qidirish uchun tashqi platformalarga kirish va inventar yaratishda ushbu platformalardan haqiqat manbai sifatida foydalanish imkoniyatini bering. Ansible-dagi manbalarning standart ro'yxati AWS EC2, Google GCP va Microsoft Azure bulut platformalarini o'z ichiga oladi, shuningdek, Ansible uchun boshqa ko'plab inventar plaginlari mavjud.

Ansible Tower bir qator bilan birga keladi inventar plaginlari, ular to'g'ridan-to'g'ri ishlaydi va yuqorida sanab o'tilgan bulutli platformalarga qo'shimcha ravishda VMware vCenter, Red Hat OpenStack Platform va Red Hat Satellite bilan integratsiyani ta'minlaydi. Ushbu plaginlar uchun maqsadli platformaga ulanish uchun hisobga olish ma'lumotlarini taqdim etishingiz kerak, shundan so'ng ular Ansible Tower-da inventarizatsiya ma'lumotlari manbai sifatida ishlatilishi mumkin.

Ansible Tower-ga kiritilgan standart plaginlardan tashqari, Ansible hamjamiyati tomonidan qo'llab-quvvatlanadigan boshqa inventar plaginlari ham mavjud. ga o'tish bilan Red Hat Ansible kontent to'plamlari bu plaginlar tegishli to'plamlarga kiritila boshlandi.

Ushbu postda biz mashhur IT xizmatlarini boshqarish platformasi bo'lgan ServiceNow uchun inventar plagini bilan ishlash misolini ko'rib chiqamiz, unda mijozlar ko'pincha o'zlarining barcha qurilmalari haqidagi ma'lumotlarni CMDBda saqlaydilar. Bundan tashqari, CMDB server egalari, xizmat ko'rsatish darajalari (ishlab chiqarish/ishlab chiqarishdan tashqari), o'rnatilgan yangilanishlar va texnik xizmat ko'rsatish oynalari haqidagi ma'lumotlar kabi avtomatlashtirish uchun foydali bo'lgan kontekstni o'z ichiga olishi mumkin. Ansible inventar plagini ServiceNow CMDB bilan ishlashi mumkin va to'plamning bir qismidir xizmat muddati portalda galaxy.ansible.com.

Git ombori

Ansible Tower to'plamidagi inventar plaginidan foydalanish uchun u loyiha manbai sifatida o'rnatilishi kerak. Ansible Tower'da loyiha - bu git ombori kabi versiyalarni boshqarish tizimi bilan integratsiya bo'lib, u nafaqat avtomatlashtirish o'yin kitoblarini, balki o'zgaruvchilar va inventar ro'yxatlarini ham sinxronlashtirish uchun ishlatilishi mumkin.

Bizning omborimiz aslida juda oddiy:

├── collections
│   └── requirements.yml
└── servicenow.yml

Servicenow.yml faylida plaginlar inventarizatsiyasi uchun tafsilotlar mavjud. Bizning holatda, biz shunchaki foydalanmoqchi bo'lgan ServiceNow CMDB jadvalini belgilaymiz. Shuningdek, biz tugun o'zgaruvchilari sifatida qo'shiladigan maydonlarni va biz yaratmoqchi bo'lgan guruhlar haqida ma'lum ma'lumotlarni o'rnatamiz.

$ cat servicenow.yml
plugin: servicenow.servicenow.now
table: cmdb_ci_linux_server
fields: [ip_address,fqdn,host_name,sys_class_name,name,os]
keyed_groups:
  - key: sn_sys_class_name | lower
	prefix: ''
	separator: ''
  - key: sn_os | lower
	prefix: ''
	separator: ''

Shuni esda tutingki, bu biz biron-bir tarzda ulanadigan ServiceNow misolini ko'rsatmaydi va ulanish uchun hech qanday hisobga olish ma'lumotlarini ko'rsatmaydi. Bularning barchasini keyinroq Ansible Tower-da sozlaymiz.

Fayl to'plamlari/requirements.yml Ansible Tower kerakli kolleksiyani yuklab olishi va shu orqali kerakli inventar plaginini olishi uchun kerak. Aks holda, biz ushbu to'plamni barcha Ansible Tower tugunlarida qo'lda o'rnatishimiz va texnik xizmat ko'rsatishimiz kerak edi.

$ cat collections/requirements.yml
---
collections:

- name: servicenow.servicenow

Ushbu konfiguratsiyani versiya boshqaruviga o'tkazganimizdan so'ng, biz Ansible Tower-da tegishli omborga havola qiladigan loyihani yaratishimiz mumkin. Quyidagi misol Ansible Tower-ni bizning github omborimizga bog'laydi. SCM URL manziliga e'tibor bering: u shaxsiy omborga ulanish uchun hisob qaydnomasini ro'yxatdan o'tkazish, shuningdek, ma'lum bir filialni, tegni yoki tekshirish majburiyatini belgilash imkonini beradi.

Ansible Tower-dagi Ansible Content Collections inventar plaginlaridan foydalanish

ServiceNow uchun hisob ma'lumotlarini yaratish

Yuqorida aytib o'tilganidek, bizning omborimizdagi konfiguratsiya ServiceNow-ga ulanish uchun hisob ma'lumotlarini o'z ichiga olmaydi va biz muloqot qiladigan ServiceNow misolini ko'rsatmaydi. Shuning uchun, ushbu ma'lumotlarni o'rnatish uchun biz Ansible Tower-da hisob ma'lumotlarini yaratamiz. Ga binoan ServiceNow inventar plaginining hujjatlari, biz ulanish parametrlarini o'rnatadigan bir qator muhit o'zgaruvchilari mavjud, masalan:

= username
    	The ServiceNow user account, it should have rights to read cmdb_ci_server (default), or table specified by SN_TABLE

    	set_via:
      	env:
      	- name: SN_USERNAME

Bunday holda, agar SN_USERNAME muhit o‘zgaruvchisi o‘rnatilgan bo‘lsa, inventar plagini undan ServiceNow’ga ulanish uchun hisob qaydnomasi sifatida foydalanadi.

Shuningdek, biz SN_INSTANCE va SN_PASSWORD o'zgaruvchilarini o'rnatishimiz kerak.

Biroq, Ansible Tower'da bunday turdagi hisob ma'lumotlari yo'q, bu erda siz ServiceNow uchun ushbu ma'lumotlarni ko'rsatishingiz mumkin. Ammo Ansible Tower bizga aniqlash imkonini beradi shaxsiy hisob ma'lumotlari turlari, bu haqda ko'proq maqolada o'qishingiz mumkin "Ansible Tower xususiyati diqqat markazida: Shaxsiy hisob ma'lumotlari".

Bizning holatda, ServiceNow uchun shaxsiy hisob ma'lumotlari uchun kirish konfiguratsiyasi quyidagicha ko'rinadi:

fields:
  - id: SN_USERNAME
	type: string
	label: Username
  - id: SN_PASSWORD
	type: string
	label: Password
	secret: true
  - id: SN_INSTANCE
	type: string
	label: Snow Instance
required:
  - SN_USERNAME
  - SN_PASSWORD
  - SN_INSTANCE

Bu hisobga olish maʼlumotlari bir xil nomdagi muhit oʻzgaruvchilari sifatida namoyon boʻladi. Bu injektor konfiguratsiyasida tasvirlangan:

env:
  SN_INSTANCE: '{{ SN_INSTANCE }}'
  SN_PASSWORD: '{{ SN_PASSWORD }}'
  SN_USERNAME: '{{ SN_USERNAME }}'

Shunday qilib, biz kerakli hisob ma'lumotlari turini aniqladik, endi biz ServiceNow hisobini qo'shishimiz va misol, foydalanuvchi nomi va parolni o'rnatishimiz mumkin, masalan:

Ansible Tower-dagi Ansible Content Collections inventar plaginlaridan foydalanish

Biz inventar yaratamiz

Shunday qilib, endi biz hammamiz Ansible Tower-da inventar yaratishga tayyormiz. Keling, uni ServiceNow deb ataylik:

Ansible Tower-dagi Ansible Content Collections inventar plaginlaridan foydalanish

Inventarizatsiyani yaratgandan so'ng, biz unga ma'lumotlar manbasini biriktira olamiz. Bu erda biz avval yaratilgan loyihani belgilaymiz va manba boshqaruv omboriga YAML inventar faylimizga yo'lni kiritamiz, bizning holatlarimizda bu loyiha ildizida servicenow.yml. Bundan tashqari, siz ServiceNow hisob qaydnomangizni bog'lashingiz kerak.

Ansible Tower-dagi Ansible Content Collections inventar plaginlaridan foydalanish

Hammasi qanday ishlashini tekshirish uchun keling, "Hammasini sinxronlash" tugmasini bosish orqali ma'lumotlar manbai bilan sinxronlashtirishga harakat qilaylik. Agar hamma narsa to'g'ri sozlangan bo'lsa, unda tugunlar bizning inventarimizga import qilinishi kerak:

Ansible Tower-dagi Ansible Content Collections inventar plaginlaridan foydalanish

E'tibor bering, bizga kerakli guruhlar ham yaratilgan.

xulosa

Ushbu postda biz misol sifatida ServiceNow plaginidan foydalangan holda Ansible Tower to'plamlaridan inventar plaginlaridan qanday foydalanishni ko'rib chiqdik. Shuningdek, biz ServiceNow misolimizga ulanish uchun hisob ma'lumotlarini xavfsiz ro'yxatdan o'tkazdik. Loyihadan inventar plaginini ulash nafaqat uchinchi tomon yoki maxsus plaginlar bilan ishlaydi, balki ba'zi standart inventarlarning ishlashini o'zgartirish uchun ham ishlatilishi mumkin. Bu Ansible Automation Platform-ni tobora murakkablashib borayotgan IT muhitlarini avtomatlashtirishda mavjud vositalar bilan oson va muammosiz integratsiya qilish imkonini beradi.

Siz ushbu postda muhokama qilingan mavzular, shuningdek Ansible-dan foydalanishning boshqa jihatlari haqida ko'proq ma'lumotni bu yerda topishingiz mumkin:

*Red Hat bu erda keltirilgan kodning to'g'riligiga kafolat bermaydi. Agar boshqacha ko'rsatilmagan bo'lsa, barcha materiallar indossament asosida taqdim etiladi.

Manba: www.habr.com

a Izoh qo'shish