Mjediset IT po bĂ«hen gjithnjĂ« e mĂ« tĂ« ndĂ«rlikuara. NĂ« kĂ«to kushte, pĂ«r sistemin e automatizimit IT Ă«shtĂ« kritike tĂ« ketĂ« informacion tĂ« azhurnuar mbi nyjet qĂ« janĂ« nĂ« rrjet dhe janĂ« tĂ« pĂ«rfshira nĂ« pĂ«rpunim. NĂ« Red Hat Ansible Automation Platform, kjo çështje zgjidhet pĂ«rmes ashtuquajturit inventar () â lista e nyjeve tĂ« menaxhuara.

Në formën e saj më të thjeshtë, inventari është një skedar statik. Kjo është një zgjedhje ideale kur filloni të punoni me Ansible, por me zgjerimin e automatizimit, kjo nuk është e mjaftueshme.
Dhe ja pse:
- Si tĂ« pĂ«rditĂ«soni dhe mbani nĂ« gjendje tĂ« pĂ«rditĂ«suar listĂ«n e plotĂ« tĂ« nyjeve tĂ« kontrolluara, kur diçka ndryshon vazhdimisht, kur ngarkesat e punĂ«s â e pas tyre edhe nyjet mbi tĂ« cilat ato ekzekutohen â shpesh dalin dhe zhduken?
- Si të klasifikoni komponentët e infrastrukturës IT për të zgjedhur në mënyrë të saktë nyjet për të aplikuar automatizimin përkatës?
PĂ«rgjigjet pĂ«r tĂ« dyja kĂ«to pyetje jepen nga inventari dinamik () â skript ose plugin qĂ« kĂ«rkon tĂ« automatizojĂ« nyjtat, duke iu drejtuar burimit tĂ« sĂ« vĂ«rtetĂ«s (source of truth). PĂ«r mĂ« tepĂ«r, inventari dinamik klasifikon automatikisht nyjtat nĂ« grupe, nĂ« mĂ«nyrĂ« qĂ« tĂ« mund tĂ« selektoni mĂ« saktĂ«sisht sistemet e synuara pĂ«r tĂ« realizuar automatizimin e caktuar me Ansible.
i japin përdoruesit të Ansible mundësinë për të aksesuar platforma të jashtme për të kërkuar dinamikisht nyjtat e synuara dhe për të përdorur këto platforma si burim të së vërtetës gjatë krijimit të inventarit. Lista standarde e burimeve në Ansible përfshin platformat cloud AWS EC2, Google GCP dhe Microsoft Azure, përveç që Ansible ka shumë plugins të tjera inventarësh.
Ansible Tower jepet së bashku me një sërë , të cilat punojnë direkt «nga kutia» dhe përveç platformave cloud të përmendura më sipër, ofrojnë integrim me VMware vCenter, Red Hat OpenStack Platform dhe Red Hat Satellite. Për këto pluginë mjafton të jepet informacioni i identifikimit për të lidhur në platformën e synuar, pas së cilës mund të përdoren si burim të dhënash për inventarin në Ansible Tower.
Përveç shtesave standarde që vijnë me Ansible Tower, ka edhe shtesa të tjera inventori që mbështeten nga forcat e komunitetit Ansible. Me kalimin në këto shtesa filluan të përfshihen në koleksionet përkatëse.
Në këtë postim, ne do të shqyrtojmë si funksionon shtesa e inventorit për ServiceNow, një platformë e njohur për menaxhimin e shërbimeve IT, në të cilën klientët shpesh ruajnë informacione për të gjitha pajisjet e tyre në CMDB. Përveç kësaj, CMDB mund të përmbajë kontekste të dobishme për automatizimin, siç janë informacionet mbi pronarët e serverëve, nivelet e shërbimit (production/non-production), përditësimet e instaluara dhe dritaret e mirëmbajtjes. Shtesa e inventorit Ansible mund të punojë me CMDB ServiceNow dhe është pjesë e koleksionit në portalin .
Git-reposita
Për ta përdorur në Ansible Tower, shtesa e inventarit nga koleksioni duhet të caktohet si burimi i projektit. Në Ansible Tower, një projekt është një integrim me një sistem versioni, si një depo git, që mund të përdoret për të sinkronizuar jo vetëm playbook-ët e automatizimit, por edhe variablat, si dhe listat e inventorit.
Repozi nossa është në të vërtetë shumë i thjeshtë:
âââ koleksionet
â âââ requirements.yml
âââ servicenow.yml
Skedari servicenow.yml përmban detaje për plugin-in e inventarit. Në rastin tonë, ne thjesht tregojmë tabelën në CMDB ServiceNow që duam të përdorim. Po ashtu, përcaktojmë fushat që do të shtohen si variabla të nyjave, përveç disa informacioneve mbi grupet që duam të krijojmë.
$ 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: ''
Kujdes, që këtu nuk specifikohet asnjë instancë e ServiceNow, me të cilën do të lidhemi, dhe nuk jepen asnjë kredenciale për lidhje. Në të gjitha këto, do të konfigurojmë më vonë në Ansible Tower.
nevojitet për që Ansible Tower të mund të shkarkojë koleksionin e nevojshëm dhe kështu të marrë plugin-in e kërkuar të inventarit. Përndryshe, do të duhej ta instalonim dhe mbështesim manualisht këtë koleksion në të gjitha nyjat tona të Ansible Tower.
$ cat collections/requirements.yml
---
collections:
- name: servicenow.servicenow
Pas pas, që e kemi dërguar këtë konfigurim në sistemin e kontrollit të versioneve, në Ansible Tower mund të krijojmë një projekt që referon në depo përkatëse. Në shembullin më poshtë, Ansible Tower lidhet me depoze tonë në github. Vini re URL-në e SCM: ajo lejon të regjistroni llogarinë për t'u lidhur me një depo të privatizuar, si dhe të specifikoni një degë, etiketë ose commit të caktuar për të nxjerrë.

Krijojmë akreditime për ServiceNow
Siç u tha tashmë, konfigurimi në depozitat tona nuk përmban akreditime për t'u lidhur me ServiceNow dhe nuk specifikon instancën e ServiceNow me të cilën do të komunikojmë. Prandaj, për të caktuar këto të dhëna do të krijojmë akreditime në Ansible Tower. Sipas , ekziston një sërë variablash ambienti, të cilët ne do t'i përdorim për të caktuar parametrat e lidhjes, për shembuj, kështu:
= username
Llogaria e përdoruesit të ServiceNow, ajo duhet të ketë të drejta për të lexuar cmdb_ci_server (paqësore), ose tabelën e specifikuar nga SN_TABLE
set_via:
env:
- name: SN_USERNAME
Në këtë rast, nëse variabli i ambientit SN_USERNAME është caktuar, atëherë plugin-i i inventarit do ta përdorë atë si llogarinë për lidhjen me ServiceNow.
Na nevojitet gjithashtu të caktojmë variablat SN_INSTANCE dhe SN_PASSWORD.
Megjithatë, në Ansible Tower nuk ka kredenciale të këtij lloji ku mund të specifikoni këto të dhëna për ServiceNow. Sidoqoftë, Ansible Tower na lejon të përcaktojmë , për më shumë informacion mund të lexoni artikullin .
Në rastin tonë, konfigurimi i input-it për kredencialet e përshtatshme për ServiceNow duket si më poshtë:
fields:
- id: SN_USERNAME
type: string
label: Emri i përdoruesit
- id: SN_PASSWORD
type: string
label: Fjalëkalimi
secret: true
- id: SN_INSTANCE
type: string
label: Instanca e Snow
required:
- SN_USERNAME
- SN_PASSWORD
- SN_INSTANCE
Këto kredenciale do të ekspozohen si variabla mjedisi me të njëjtin emër. Kjo përshkruhet në konfigurimin e injektorit:
env:
SN_INSTANCE: '{{ SN_INSTANCE }}'
SN_PASSWORD: '{{ SN_PASSWORD }}'
SN_USERNAME: '{{ SN_USERNAME }}'
Kështu, ne kemi përcaktuar llojin e nevojshëm të kredencialeve, tani mund të shtojmë një llogari ServiceNow dhe të caktojmë instancën, emrin e përdoruesit dhe fjalëkalimin, kështu:

Krijojmë inventarin
Tani, gjithçka është gati për të krijuar inventarin në Ansible Tower. Ta quajmë ServiceNow:

Pas krijimit të inventarit, ne mund të bashkangjisim një burim të dhënash me të. Këtu shënojmë projektin që krijuam më parë dhe futim rrugën tonë për skedarin e inventarit YAML në depozitat e sistemit të menaxhimit të versioneve, në rastin tonë është servicenow.yml në rrënjën e projektit. Gjithashtu, duhet të lidhim edhe llogarinë e ServiceNow.

Për të kontrolluar si funksionon gjithçka, le të provojmë të sinkronizohemi me burimin e të dhënave duke klikuar butonin «Sync all». Nëse gjithçka është e konfiguruar siç duhet, atëherë nyjat duhet të importohen në inventarin tonë:

Kujdes, grupet e nevojshme për ne gjithashtu janë krijuar.
Përfundimi
Në këtë postim, shqyrtuam se si të përdorim plugins-inventarë në Ansible Tower duke përdorur koleksione, me shembullin e plugin-it të ServiceNow. Ne gjithashtu shkruam në mënyrë të sigurt akreditimet për t'u lidhur me instancën tonë të ServiceNow. Lidhja e plugin-it të inventarëve nga projekti punon jo vetëm me plugins të palëve të treta ose të personalizuar, por gjithashtu mund të përdoret për të modifikuar funksionimin e disa inventarëve standardë. Kjo e bën Ansible Automation Platform të integrohet lehtësisht dhe në mënyrë të përshtatshme me mjetet ekzistuese në automatizimin e ambientit IT, të cilat bëhen gjithnjë e më komplekse.
Mund të gjeni informacione shtesë mbi temat e trajtuara në këtë postim, si dhe mbi aspekte të tjera të përdorimit të Ansible këtu:
- Blogu për .
- .
- Listën e koleksioneve të mbështetura nga Red Hat në Automation Hub ().
- .
*Red Hat nuk jep asnjë garanci për saktësinë e kodit të paraqitur këtu. Të gjitha materialet ofrohen në kushte pa mbështetje, përveç nëse është shprehur ndryshe në mënyrë të qartë.
Burimi: habr.com
