Përdorimi i inventory plugins nga Ansible Content Collections në Ansible Tower

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Ă« (inventory) – lista e nyjeve tĂ« menaxhuara.

Përdorimi i inventory plugins nga Ansible Content Collections në Ansible Tower

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:

  1. 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?
  2. 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 (dynamic inventory) – 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.

Pluginët e inventarit 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 pluginĂ«sh inventari, 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ë Red Hat Ansible Content Collections 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. servicenow në portalin galaxy.ansible.com.

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.

Skedari collections/requirements.yml 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.

Përdorimi i inventory plugins nga Ansible Content Collections në Ansible Tower

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 la documentaciĂłn del plugin de inventario de ServiceNow, 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 tipos de credenciales personalizadas, se puede leer mås sobre esto en el artículo «Ansible Tower Feature Spotlight: Custom Credentials».

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:

Përdorimi i inventory plugins nga Ansible Content Collections në Ansible Tower

Creamos el inventario

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

Përdorimi i inventory plugins nga Ansible Content Collections në Ansible Tower

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ërdorimi i inventory plugins nga Ansible Content Collections në Ansible Tower

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ë:

Përdorimi i inventory plugins nga Ansible Content Collections në Ansible Tower

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:

*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

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster