Ús de connectors d'inventari d'Ansible Content Collections a Ansible Tower

Els entorns informàtics són cada cop més complexos. En aquestes condicions, és fonamental que el sistema d'automatització informàtica tingui informació actualitzada sobre els nodes presents a la xarxa i sotmesos a tractament. A la plataforma Red Hat Ansible Automation, aquest problema es resol mitjançant l'anomenat inventari (inventari) – llistes de nodes gestionats.

Ús de connectors d'inventari d'Ansible Content Collections a Ansible Tower

En la seva forma més senzilla, l'inventari és un fitxer estàtic. Això és ideal quan comenceu a treballar amb Ansible, però a mesura que augmenta l'automatització, es fa insuficient.

I aquí és per què:

  1. Com actualitzeu i manteniu una llista completa de nodes supervisats quan les coses canvien constantment, quan les càrregues de treball (i, posteriorment, els nodes en què s'executen) vénen i van?
  2. Com classificar els components de la infraestructura informàtica per seleccionar específicament els nodes per aplicar una automatització concreta?

L'inventari dinàmic proporciona respostes a aquestes dues preguntes (inventari dinàmic) – un script o connector que cerca nodes per ser automatitzats, fent referència a la font de la veritat. A més, l'inventari dinàmic classifica automàticament els nodes en grups perquè pugueu seleccionar amb més precisió els sistemes de destinació per dur a terme una automatització Ansible específica.

Connectors d'inventari donar a l'usuari d'Ansible la possibilitat d'accedir a plataformes externes per cercar dinàmicament nodes objectiu i utilitzar aquestes plataformes com a font de veritat quan es crea un inventari. La llista estàndard de fonts d'Ansible inclou plataformes al núvol AWS EC2, Google GCP i Microsoft Azure, i també hi ha molts altres connectors d'inventari per a Ansible.

Ansible Tower ve amb una sèrie de connectors d'inventari, que funcionen de seguida i, a més de les plataformes de núvol esmentades anteriorment, proporcionen integració amb VMware vCenter, Red Hat OpenStack Platform i Red Hat Satellite. Per a aquests connectors, només cal que proporcioneu credencials per connectar-vos a la plataforma de destinació, després de la qual cosa es poden utilitzar com a font de dades d'inventari a Ansible Tower.

A més dels connectors estàndard inclosos amb Ansible Tower, hi ha altres connectors d'inventari compatibles amb la comunitat Ansible. Amb la transició a Col·leccions de contingut Red Hat Ansible aquests connectors es van començar a incloure a les col·leccions corresponents.

En aquesta publicació, prendrem un exemple de treball amb el connector d'inventari per a ServiceNow, una plataforma popular de gestió de serveis informàtics en què els clients solen emmagatzemar informació sobre tots els seus dispositius a la CMDB. A més, la CMDB pot contenir un context útil per a l'automatització, com ara informació sobre els propietaris del servidor, nivells de servei (producció/no producció), actualitzacions instal·lades i finestres de manteniment. El connector d'inventari d'Ansible pot funcionar amb ServiceNow CMDB i forma part de la col·lecció servei actual al portal galaxy.ansible.com.

Repositori Git

Per utilitzar un connector d'inventari d'una col·lecció a Ansible Tower, s'ha d'establir com a font del projecte. A Ansible Tower, un projecte és una integració amb algun tipus de sistema de control de versions, com un repositori git, que es pot utilitzar per sincronitzar no només llibres de jugades d'automatització, sinó també variables i llistes d'inventari.

El nostre repositori és realment molt senzill:

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

El fitxer servicenow.yml conté detalls per a l'inventari de connectors. En el nostre cas, simplement especifiquem la taula al ServiceNow CMDB que volem utilitzar. També establim els camps que s'afegiran com a variables de node, a més de certa informació sobre els grups que volem crear.

$ 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: ''

Tingueu en compte que això no especifica la instància de ServiceNow a la qual ens connectarem de cap manera i no especifica cap credencial per a la connexió. Tot això ho configurarem més endavant a Ansible Tower.

Col·leccions de fitxers/requirements.yml necessari perquè Ansible Tower pugui descarregar la col·lecció necessària i, per tant, obtenir el connector d'inventari necessari. En cas contrari, hauríem d'instal·lar i mantenir manualment aquesta col·lecció a tots els nostres nodes de l'Ansible Tower.

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

- name: servicenow.servicenow

Un cop hem empès aquesta configuració al control de versions, podem crear un projecte a Ansible Tower que faci referència al repositori corresponent. L'exemple següent enllaça Ansible Tower amb el nostre dipòsit github. Fixeu-vos en l'URL de l'SCM: us permet registrar un compte per connectar-vos a un repositori privat, així com especificar una branca, una etiqueta o un compromís específics per comprovar-ho.

Ús de connectors d'inventari d'Ansible Content Collections a Ansible Tower

Creació de credencials per a ServiceNow

Com s'ha esmentat, la configuració del nostre repositori no conté credencials per connectar-se a ServiceNow i no especifica la instància de ServiceNow amb la qual ens comunicarem. Per tant, per configurar aquestes dades, crearem credencials a Ansible Tower. D'acord amb Documentació del connector d'inventari de ServiceNow, hi ha una sèrie de variables d'entorn amb les quals establirem els paràmetres de connexió, per exemple, com aquesta:

= 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

En aquest cas, si s'estableix la variable d'entorn SN_USERNAME, el connector d'inventari l'utilitzarà com a compte per connectar-se a ServiceNow.

També hem d'establir les variables SN_INSTANCE i SN_PASSWORD.

Tanmateix, no hi ha credencials d'aquest tipus a Ansible Tower on pugueu especificar aquestes dades per a ServiceNow. Però Ansible Tower ens permet definir tipus de credencials personalitzades, podeu llegir més sobre això a l'article "Ansible Tower Feature Spotlight: Credencials personalitzades".

En el nostre cas, la configuració d'entrada per a les credencials personalitzades per a ServiceNow té aquest aspecte:

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

Aquestes credencials s'exposaran com a variables d'entorn amb el mateix nom. Això es descriu a la configuració de l'injector:

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

Així doncs, hem definit el tipus de credencial que necessitem, ara podem afegir un compte de ServiceNow i configurar la instància, el nom d'usuari i la contrasenya, així:

Ús de connectors d'inventari d'Ansible Content Collections a Ansible Tower

Creem inventari

Per tant, ara estem tots preparats per crear un inventari a Ansible Tower. Diguem-ho ServiceNow:

Ús de connectors d'inventari d'Ansible Content Collections a Ansible Tower

Després de crear l'inventari, podem adjuntar-hi una font de dades. Aquí especifiquem el projecte que hem creat anteriorment i introduïm el camí del nostre fitxer d'inventari YAML al dipòsit de control de font, en el nostre cas és servicenow.yml a l'arrel del projecte. A més, heu d'enllaçar el vostre compte de ServiceNow.

Ús de connectors d'inventari d'Ansible Content Collections a Ansible Tower

Per comprovar com funciona tot, intentem sincronitzar-nos amb la font de dades fent clic al botó "Sincronitzar-ho tot". Si tot està configurat correctament, els nodes s'han d'importar al nostre inventari:

Ús de connectors d'inventari d'Ansible Content Collections a Ansible Tower

Tingueu en compte que també s'han creat els grups que necessitem.

Conclusió

En aquesta publicació, vam veure com utilitzar connectors d'inventari de col·leccions a Ansible Tower utilitzant el connector ServiceNow com a exemple. També hem registrat credencials de manera segura per connectar-nos a la nostra instància de ServiceNow. Enllaçar un connector d'inventari d'un projecte no només funciona amb connectors de tercers o personalitzats, sinó que també es pot utilitzar per modificar el funcionament d'alguns inventaris estàndard. Això fa que Ansible Automation Platform sigui fàcil i senzill d'integrar-se amb les eines existents quan s'automatitza entorns informàtics cada cop més complexos.

Podeu trobar més informació sobre els temes tractats en aquesta publicació, així com altres aspectes de l'ús d'Ansible, aquí:

*Red Hat no garanteix que el codi aquí contingut sigui correcte. Tots els materials es proporcionen sense aprovació, tret que s'indiqui expressament el contrari.

Font: www.habr.com

Afegeix comentari