Mjediset IT po bĂ«hen gjithnjĂ« e mĂ« tĂ« ndĂ«rlikuara. NĂ« kĂ«to kushte, pĂ«r sistemin e automatizimit IT Ă«shtĂ« jetike tĂ« ketĂ« informacion tĂ« saktĂ« pĂ«r nyjat qĂ« janĂ« tĂ« pranishme nĂ« rrjet dhe janĂ« subjekt i pĂ«rpunimit. NĂ« Red Hat Ansible Automation Platform, ky problem zgjidhet pĂ«rmes ashtuquajturave inventarĂ« () â lista e nyjeve tĂ« menaxhuara.

Në formën e tij më të thjeshtë, inventari përfaqëson një skedar statik. Ky është varianti ideal kur filloni të punoni me Ansible, por me zgjerimin e automatizimit, ai bëhet i pamjaftueshëm.
Dhe këtu është pse:
- Si tĂ« pĂ«rditĂ«soni dhe mbani nĂ« pĂ«rputhje njĂ« listĂ« tĂ« plotĂ« tĂ« nyjeve tĂ« kontrolluara kur gjithçka ndryshon vazhdimisht, kur ngarkesat e punĂ«s â dhe pas tyre, nyjat mbi tĂ« cilat ato ekzekutohen â shfaqen dhe zhduken?
- Si të klasifikoni komponentët e infrastrukturës IT, në mënyrë që të zgjidhni me saktësi nyjat për të aplikuar automatizimin e caktuar?
PĂ«rgjigjet pĂ«r tĂ« dyja kĂ«to pyetje jep inventari dinamik () â njĂ« skenar ose plugin qĂ« kĂ«rkon nyjat e automatizimit duke u drejtuar nĂ« burimin e sĂ« vĂ«rtetĂ«s (source of truth). PĂ«r mĂ« tepĂ«r, inventari dinamik automatikisht klasifikon nyjat nĂ« grupe, nĂ« mĂ«nyrĂ« qĂ« tĂ« mund tĂ« zgjidhni mĂ« saktĂ« sistemet e synuara pĂ«r tĂ« kryer automatizimin e caktuar tĂ« Ansible.
i japin përdoruesit të Ansible mundësinë për të qenë në kontakt me platforma të jashtme për kërkimin dinamik të nyjeve të synuara dhe për të përdorur këto platforma si burim të së vërtetës gjatë formimit të inventarit. Lista standarde e burimeve në Ansible përfshin platformat cloud AWS EC2, Google GCP dhe Microsoft Azure, po ashtu ka shumë pluginë të tjerë për inventarin për Ansible.
Ansible Tower vjen me njĂ« numĂ«r , qĂ« funksionojnĂ« 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Ă«ta pluginĂ«, mjafton tĂ« ofroni kredencialet pĂ«r t'u lidhur me platformĂ«n e synuar, pas sĂ« cilĂ«s ata mund tĂ« pĂ«rdoren si burim tĂ« dhĂ«nash tĂ« inventarit nĂ« Ansible Tower.
Përveç pluginëve standardë që vijnë me Ansible Tower, ka edhe pluginë të tjerë inventari, të mbështetur nga forcat e komunitetit Ansible. Me kalimin në këta pluginë filluan të përfshihen në koleksionet përkatës.
Në këtë post, do të shqyrtojmë përdorimin e plugin-it të inventarit për ServiceNow, një platformë popullore për menaxhimin e shërbimeve IT, në CMDB-në e të cilës klientët shpesh ruajnë informacionin për të gjitha pajisjet e tyre. Për më tepër, CMDB mund të përmbajë kontekst të dobishëm për automatizimin, si informacionin mbi pronarët e serverëve, nivelet e shërbimit (production/non-production), përditësimet e instaluara dhe dritaret e mirëmbajtjes teknike. Plugin-i i inventarit Ansible është në gjendje të punojë me CMDB-në e ServiceNow dhe është pjesë e koleksionit. në portalin .
Git-repozitorin
Për të përdorur plugin-in e inventarit nga koleksioni në Ansible Tower, duhet ta caktoni si burim projekti. Në Ansible Tower, projekti është një integrim me një sistem menaxhimi versionesh, si një repository git, i cili mund të përdoret për të sinkronizuar jo vetëm playbook-et e automatizimit, por edhe variablat dhe listat e inventarit.
Repository ynë në të vërtetë është shumë i thjeshtë:
âââ collections
â âââ requirements.yml
âââ servicenow.yml
Skedari servicenow.yml përmban detajet për plugin-in e inventarit. Në rastin tonë, thjesht rendisim tabelën në CMDB-në e ServiceNow që dëshirojmë të përdorim. Dhe gjithashtu caktuar fushat që do të shtohen si variabla të nyjeve, plus informacione specifike për grupet që dëshirojmë 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: ''
Vini re se këtu nuk specifikohet në asnjë mënyrë instance-i i ServiceNow me të cilin do të lidhemi, dhe nuk caktohen akoma asnjë kredencial për lidhjen. Të gjitha këto do t'i konfiguroni më vonë në Ansible Tower.
nevojitet që Ansible Tower të mund të shkarkojë koleksionin e nevojshëm dhe kështu të marrë plugin-in e duhur të inventarit. Përndryshe, do të kishte qenë e nevojshme ta instaloni dhe mbani manualisht këtë koleksion në të gjitha nyjat tona të Ansible Tower.
$ cat collections/requirements.yml
---
collections:
- name: servicenow.servicenow
DespuĂ©s de enviar esta configuraciĂłn al sistema de control de versiones, en Ansible Tower se puede crear un proyecto que se refiera al repositorio correspondiente. En el ejemplo a continuaciĂłn, Ansible Tower se enlaza con nuestro repositorio en github. Tenga en cuenta la URL de SCM: permite especificar la cuenta para conectarse al repositorio privado, asĂ como definir una rama, etiqueta o commit especĂficos para extraer.

Creamos credenciales para ServiceNow
Como ya se mencionĂł, la configuraciĂłn en nuestro repositorio no contiene credenciales para conectarse a ServiceNow ni especifica la instancia de ServiceNow con la que nos comunicaremos. Por lo tanto, para definir estos datos, crearemos credenciales en Ansible Tower. SegĂșn , hay varias variables de entorno que utilizaremos para establecer los parĂĄmetros de conexiĂłn, por ejemplo:
= nombre de usuario
La cuenta de usuario de ServiceNow, debe tener derechos para leer cmdb_ci_server (por defecto), o la tabla especificada por SN_TABLE
set_via:
env:
- name: SN_USERNAME
En este caso, si la variable de entorno SN_USERNAME estĂĄ definida, el plugin de inventario la utilizarĂĄ como cuenta para conectarse a ServiceNow.
También necesitamos definir las variables SN_INSTANCE y SN_PASSWORD.
Sin embargo, en Ansible Tower no hay credenciales de este tipo donde se puedan especificar estos datos para ServiceNow. Sin embargo, Ansible Tower nos permite definir , se puede leer mĂĄs sobre esto en el artĂculo .
En nuestro caso, la configuraciĂłn de entrada para credenciales personalizadas para ServiceNow es la siguiente:
fields:
- id: SN_USERNAME
type: string
label: Nombre de usuario
- id: SN_PASSWORD
type: string
label: Contraseña
secret: true
- id: SN_INSTANCE
type: string
label: Instancia de Snow
required:
- SN_USERNAME
- SN_PASSWORD
- SN_INSTANCE
Estas credenciales se expondrĂĄn como variables de entorno con el mismo nombre. Esto se describe en la configuraciĂłn del inyector:
env:
SN_INSTANCE: '{{ SN_INSTANCE }}'
SN_PASSWORD: '{{ SN_PASSWORD }}'
SN_USERNAME: '{{ SN_USERNAME }}'
Asà que hemos definido el tipo de credencial que necesitamos, ahora podemos agregar la cuenta de ServiceNow y especificar la instancia, el nombre de usuario y la contraseña, de esta manera:

Creamos el inventario
AsĂ que ahora estamos listos para crear el inventario en Ansible Tower. Lo llamaremos ServiceNow:

Pas krijimit të inventarit, ne mund ta lidhim atë me burimin e të dhënave. Këtu përcaktojmë projektin që krijuam më parë dhe jemi të detyruar të shkruajmë rrugën e skedarit tonë të inventarit YAML në depozitën e sistemit të menaxhimit të versioneve, në rastin tonë është servicenow.yml në rrënjën e projektit. Përveç kësaj, duhet të lidhim edhe llogarinë e ServiceNow.

Për të kontrolluar se si funksionon gjithçka, le të përpiqemi të harmonizojmë me burimin e të dhënave, duke shtypur butonin 'Sync all'. Nëse gjithçka është e konfiguruar siç duhet, atëherë nyjet duhet të importohen në inventarin tonë:

Kini parasysh se grupet e nevojshme për ne gjithashtu janë krijuar.
Përfundim
Në këtë post, ne shqyrtuam se si të përdorim plugin-inventarin në Ansible Tower nga koleksionet, në shembullin e plugin-it ServiceNow. Ne gjithashtu e përshkruam në mënyrë të sigurt akreditimin për lidhjen me instancën tonë të ServiceNow. Lidhja e plugin-inventarit nga projekti funksionon jo vetëm me pluginët e jashtëm ose të personalizuar, por gjithashtu mund të aplikohet për modifikimin e funksionit të disa inventarëve standard. Falë kësaj, Platforma e Automatizimit Ansible integrohet lehtë dhe pa probleme me mjetet ekzistuese gjatë automatizimit të mjediseve IT, të cilat po bëhen gjithnjë e më të ndërlikuara.
Për të gjetur informacion shtesë rreth temave të trajtuara në këtë post, si dhe aspekte të tjera të përdorimit të Ansible, mund ta bëni këtu:
- Blogu për .
- .
- Lista e koleksioneve të mbështetura nga Red Hat në faqen e Automation Hub ().
- .
*Red Hat nuk jep asnjë garanci për saktësinë e kodit të dhënë këtu. Të gjitha materialet ofrohen pa mbështetje, përveç nëse në mënyrë të qartë deklarohet ndryshe.
Burimi: habr.com
