Ansible Towerin Ansible Content Collectionsin inventaariolaajennusten käyttäminen

IT-ympäristöt ovat yhä monimutkaisempia. Näissä olosuhteissa IT-automaatiojärjestelmälle on kriittistä saada ajantasainen tieto verkossa olevista ja prosessoitavista solmuista. Red Hat Ansible Automation Platformissa tämä ongelma ratkaistaan ​​niin sanotun inventaarion (inventaario) – hallittujen solmujen luettelot.

Ansible Towerin Ansible Content Collectionsin inventaariolaajennusten käyttäminen

Yksinkertaisimmassa muodossaan inventaario on staattinen tiedosto. Tämä on ihanteellinen, kun aloitat työskentelyn Ansiblen kanssa, mutta automaation lisääntyessä se ei riitä.

Ja siksi miksi:

  1. Kuinka päivität ja ylläpidät täydellistä luetteloa valvotuista solmuista, kun asiat muuttuvat jatkuvasti, kun työkuormat – ja myöhemmin niiden käyttämät solmut – tulevat ja menevät?
  2. Kuinka luokitella IT-infrastruktuurin komponentit, jotta voidaan valita erityisesti solmut tietyn automaation soveltamista varten?

Dynaaminen inventaario tarjoaa vastaukset molempiin näihin kysymyksiin (dynaaminen varasto) – komentosarja tai laajennus, joka etsii automatisoitavia solmuja viitaten totuuden lähteeseen. Lisäksi dynaaminen inventaario luokittelee solmut automaattisesti ryhmiin, jotta voit valita kohdejärjestelmät tarkemmin tietyn Ansible-automaation suorittamista varten.

Varaston laajennukset Anna Ansible-käyttäjälle mahdollisuus päästä ulkopuolisiin alustoihin etsiäkseen dynaamisesti kohdesolmuja ja käyttää näitä alustoja totuuden lähteenä inventaariota luodessaan. Ansiblen vakiolähdeluettelo sisältää pilvialustoja AWS EC2, Google GCP ja Microsoft Azure, ja Ansiblelle on myös monia muita inventaariolaajennuksia.

Ansible Towerin mukana tulee useita inventaariolaajennukset, jotka toimivat heti käyttövalmiina ja tarjoavat yllä lueteltujen pilvialustojen lisäksi integroinnin VMware vCenterin, Red Hat OpenStack Platformin ja Red Hat Satelliten kanssa. Näitä laajennuksia varten sinun tarvitsee vain antaa tunnistetiedot muodostaaksesi yhteyden kohdealustaan, minkä jälkeen niitä voidaan käyttää inventaariotietojen lähteenä Ansible Towerissa.

Ansible Towerin vakiolaajennusten lisäksi Ansible-yhteisö tukee muita inventaariolaajennuksia. Siirtymisen kanssa Red Hat Ansible -sisältökokoelmat näitä laajennuksia alettiin sisällyttää vastaaviin kokoelmiin.

Tässä viestissä otamme esimerkin työskentelystä ServiceNow'n inventaariolaajennuksen kanssa. Se on suosittu IT-palvelunhallinta-alusta, jossa asiakkaat tallentavat usein tietoja kaikista laitteistaan ​​CMDB:hen. Lisäksi CMDB voi sisältää automatisoinnin kannalta hyödyllistä kontekstia, kuten tietoja palvelinten omistajista, palvelutasoista (tuotanto/ei-tuotanto), asennetuista päivityksistä ja ylläpitoikkunoista. Ansible inventory -laajennus voi toimia ServiceNow CMDB:n kanssa ja on osa kokoelmaa ServiceNow portaalissa galaxy.ansible.com.

Git arkisto

Jotta voit käyttää inventaariolaajennusta kokoelmasta Ansible Towerissa, se on asetettava projektin lähteeksi. Ansible Towerissa projekti on integraatio jonkinlaiseen versionhallintajärjestelmään, kuten git-tietovarastoon, jonka avulla voidaan synkronoida automaation pelikirjojen lisäksi myös muuttujia ja inventaarioluetteloita.

Arkistomme on itse asiassa hyvin yksinkertainen:

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

Servicenow.yml-tiedosto sisältää lisäosien tiedot. Meidän tapauksessamme yksinkertaisesti määritämme ServiceNow CMDB:n taulukon, jota haluamme käyttää. Asetamme myös kentät, jotka lisätään solmumuuttujiksi, sekä tietyt tiedot ryhmistä, jotka haluamme luoda.

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

Huomaa, että tämä ei määritä ServiceNow-esiintymää, johon yhdistämme millään tavalla, eikä määritä mitään valtuustietoja yhteyden muodostamiseksi. Määritämme tämän kaiken myöhemmin Ansible Towerissa.

Tiedostokokoelmat/requirements.yml tarvitaan, jotta Ansible Tower voi ladata vaaditun kokoelman ja hankkia siten tarvittavan inventaariolaajennuksen. Muuten meidän olisi asennettava ja ylläpidettävä tämä kokoelma manuaalisesti kaikkiin Ansible Tower -solmuihin.

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

- name: servicenow.servicenow

Kun olemme siirtäneet tämän kokoonpanon versionhallintaan, voimme luoda Ansible Towerissa projektin, joka viittaa vastaavaan arkistoon. Alla oleva esimerkki linkittää Ansible Towerin github-arkistoomme. Kiinnitä huomiota SCM:n URL-osoitteeseen: sen avulla voit rekisteröidä tilin muodostaaksesi yhteyden yksityiseen tietovarastoon sekä määrittää tietyn haaran, tunnisteen tai sitoutua uloskirjautumiseen.

Ansible Towerin Ansible Content Collectionsin inventaariolaajennusten käyttäminen

Luodaan ServiceNow-käyttöoikeustietoja

Kuten mainittiin, arkistomme kokoonpano ei sisällä valtuustietoja ServiceNow-yhteyden muodostamiseksi, eikä se määritä ServiceNow-esiintymää, jonka kanssa kommunikoimme. Siksi luomme Ansible Toweriin valtuustiedot näiden tietojen asettamiseksi. Mukaan ServiceNow-varastolaajennuksen dokumentaatio, on olemassa useita ympäristömuuttujia, joilla asetamme yhteysparametrit, esimerkiksi näin:

= 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

Tässä tapauksessa, jos ympäristömuuttuja SN_USERNAME on asetettu, varastolaajennus käyttää sitä tilinä muodostaakseen yhteyden ServiceNow-palveluun.

Meidän on myös asetettava muuttujat SN_INSTANCE ja SN_PASSWORD.

Ansible Towerissa ei kuitenkaan ole tämän tyyppisiä valtuustietoja, joihin voit määrittää nämä tiedot ServiceNow'lle. Mutta Ansible Tower antaa meille mahdollisuuden määritellä mukautetut tunnistetiedot, voit lukea lisää tästä artikkelista "Ansible Tower Feature Spotlight: Custom Credentials".

Meidän tapauksessamme ServiceNow'n mukautettujen valtuustietojen syöttökokoonpano näyttää tältä:

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

Nämä tunnistetiedot paljastetaan samannimisinä ympäristömuuttujina. Tämä on kuvattu injektorikokoonpanossa:

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

Joten olemme määrittäneet tarvitsemamme tunnistetyypin, nyt voimme lisätä ServiceNow-tilin ja asettaa ilmentymän, käyttäjänimen ja salasanan seuraavasti:

Ansible Towerin Ansible Content Collectionsin inventaariolaajennusten käyttäminen

Luomme varaston

Joten nyt olemme kaikki valmiita luomaan luettelon Ansible Toweriin. Kutsutaan sitä ServiceNow:ksi:

Ansible Towerin Ansible Content Collectionsin inventaariolaajennusten käyttäminen

Inventaarion luomisen jälkeen voimme liittää siihen tietolähteen. Tässä määritämme aiemmin luomamme projektin ja kirjoitamme polun YAML-inventaaritiedostoomme lähdehallintavarastoon, meidän tapauksessamme se on servicenow.yml projektin juuressa. Lisäksi sinun on linkitettävä ServiceNow-tilisi.

Ansible Towerin Ansible Content Collectionsin inventaariolaajennusten käyttäminen

Tarkistaaksesi, miten kaikki toimii, yritetään synkronoida tietolähteen kanssa napsauttamalla "Synkronoi kaikki" -painiketta. Jos kaikki on määritetty oikein, solmut tulee tuoda varastoomme:

Ansible Towerin Ansible Content Collectionsin inventaariolaajennusten käyttäminen

Huomaa, että myös tarvitsemamme ryhmät on luotu.

Johtopäätös

Tässä viestissä tarkastelimme, kuinka käyttää varastolaajennuksia Ansible Towerin kokoelmista käyttämällä esimerkkinä ServiceNow-laajennusta. Rekisteröimme myös turvallisesti tunnistetiedot muodostaaksemme yhteyden ServiceNow-instanssiimme. Varastolaajennuksen linkittäminen projektista ei toimi vain kolmannen osapuolen tai mukautettujen laajennusten kanssa, vaan sitä voidaan käyttää myös joidenkin vakiovarastojen toiminnan muokkaamiseen. Tämän ansiosta Ansible Automation Platform on helppo ja saumaton integroida olemassa oleviin työkaluihin automatisoitaessa yhä monimutkaisempia IT-ympäristöjä.

Löydät lisätietoja tässä viestissä käsitellyistä aiheista sekä muista Ansiblen käytön näkökohdista täältä:

*Red Hat ei takaa, että tässä oleva koodi on oikea. Kaikki materiaalit toimitetaan ei-hyväksynnän perusteella, ellei toisin nimenomaisesti mainita.

Lähde: will.com

Lisää kommentti