IT okolja postajajo vse bolj kompleksna. V teh razmerah je za sistem IT avtomatizacije kritično imeti ažurne informacije o vozliščih, ki so prisotna v omrežju in so predmet obdelave. V Red Hat Ansible Automation Platform se ta vprašanja rešujejo preko tako imenovanih inventarjev () – seznamov upravljanih vozlišč.

V svoji najpreprostejši obliki inventar predstavlja statično datoteko. To je idealna možnost, ko se začnete ukvarjati z Ansible, vendar postane z razširitvijo avtomatizacije pomanjkljiva.
In to je razlog:
- Kako posodabljati in vzdrževati celoten seznam kontroliranih vozlišč, ko se nenehno spreminja, ko obremenitve – in z njimi vozlišča, na katerih so izvedene – nastajajo in izginjajo?
- Kako klasificirati komponente IT infrastrukture, da bi natančno izbrali vozlišča za uporabo določene avtomatizacije?
Odgovore na obe vprašanji ponuja dinamični inventar () – skripta ali vtičnik, ki išče vozlišča, ki jih je treba avtomatizirati, obrnite se na vir resnice (source of truth). Poleg tega dinamični inventar avtomatsko klasificira vozlišča v skupine, da lahko natančneje izbirate ciljne sisteme za izvajanje določene Ansible avtomatizacije.
ponujajo uporabniku Ansible možnost, da se obrne na zunanje platforme za dinamično iskanje cilјnih vozlišč in uporablja te platforme kot vir resnice pri oblikovanju inventarja. Standardni seznam virov v Ansible vključuje oblačne platforme AWS EC2, Google GCP in Microsoft Azure, ob tem pa je za Ansible na voljo še mnogo drugih vtičnikov inventarja.
Ansible Tower se dobavlja z naborom , ki delujejo neposredno 'iz škatle' in poleg zgoraj omenjenih oblačnih platform zagotavljajo integracijo z VMware vCenter, Red Hat OpenStack Platform in Red Hat Satellite. Za te vtičnike je dovolj, da zagotovite poverilnice za povezavo z ciljno platformo, nato pa jih lahko uporabite kot vir podatkov inventarja v Ansible Tower.
Poleg privzetih vtičnikov iz paketa Ansible Tower obstajajo tudi drugi vtičniki inventarja, ki jih podpira skupnost Ansible. S prehodom na so ti vtičniki pričeli biti vključeni v ustrezne zbirke.
V tem članku bomo za primer obravnavali delo z inventarnim vtičnikom za ServiceNow, priljubljeno platformo za upravljanje IT storitev, v CMDB katere naročniki pogosto shranjujejo podatke o vseh svojih napravah. Poleg tega lahko CMDB vsebuje koristne informacije za avtomatizacijo, na primer, podatke o lastnikih strežnikov, nivojih storitev (produkcija/neprodukcija), nameščenih posodobitvah in oknih za vzdrževanje. Inventarni vtičnik Ansible deluje s CMDB ServiceNow in je del zbirke. na portalu .
Git-repozitorij
Da bi lahko v Ansible Tower uporabljali inventarni vtičnik iz zbirke, ga je treba določiti kot vir projekta. V Ansible Tower je projekt integracija s sistemom za upravljanje različic, kot je repozitorij git, ki ga lahko uporabimo za sinhronizacijo ne le avtonomnih igric, ampak tudi spremenljivk in seznamov inventarja.
Naš repozitorij je v resnici zelo preprost:
├── collections
│ └── requirements.yml
└── servicenow.yml
Datoteka servicenow.yml vsebuje podrobnosti za inventarni vtičnik. V našem primeru preprosto navedemo tabelo v CMDB ServiceNow, ki jo želimo uporabljati. Prav tako določimo polja, ki se bodo dodala kot spremenljivke vozlišča, plus določene informacije o skupinah, ki jih želimo ustvariti.
$ 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: ''
Upoštevajte, da tukaj nikjer ni konkretiziran instanc ServiceNow, s katerim se bomo povezali, in niso določeni nobeni podatki za prijavo. Vse to bomo kasneje nastavili v Ansible Tower.
je potrebna, da lahko Ansible Tower prenese potrebno zbirko in s tem pridobi potreben inventarni vtičnik. V nasprotnem primeru bi morali ročno namestiti in vzdrževati to zbirko na vseh naših vozliščih Ansible Tower.
$ cat collections/requirements.yml
---
collections:
- name: servicenow.servicenow
Ko smo to konfiguracijo poslali v sistem za nadzor različic, lahko v Ansible Tower ustvarimo projekt, ki se sklicuje na ustrezen repozitorij. V naslednjem primeru se Ansible Tower poveže z našim repozitorijem na github. Upoštevajte SCM URL: omogoča vpis uporabniškega računa za povezavo s zasebnim repozitorijem ter opredelitev specifične veje, oznake ali obratne povezave za pridobitev.

Ustvarjamo poverilnice za ServiceNow
Kot že omenjeno, konfiguracija v našem repozitoriju ne vsebuje poverilnic za povezavo s ServiceNow in ne specificira instanco ServiceNow, s katero bomo komunicirali. Zato bomo za opredelitev teh podatkov ustvarili poverilnice v Ansible Tower. V skladu z , obstaja vrsta spremenljivk okolja, s katerimi bomo določili parametre povezave, na primer:
= uporabniško ime
Uporabniški račun ServiceNow, imeti mora pravice za branje cmdb_ci_server (privzeto) ali tabele, določene z SN_TABLE
set_via:
env:
- name: SN_USERNAME
V tem primeru, če je spremenljivka okolja SN_USERNAME določena, bo vtičnik za inventar uporabil to kot uporabniški račun za povezavo s ServiceNow.
Poleg tega moramo določiti spremenljivke SN_INSTANCE in SN_PASSWORD.
Vendar v Ansible Tower ni poverilnic tega tipa, kjer bi lahko navedli te podatke za ServiceNow. Vendar nam Ansible Tower omogoča, da definiramo , o čemer si lahko preberete v članku .
V našem primeru izgleda vhodna konfiguracija za prilagodljive poverilnice za ServiceNow takole:
fields:
- id: SN_USERNAME
type: string
label: Uporabniško ime
- id: SN_PASSWORD
type: string
label: Geslo
secret: true
- id: SN_INSTANCE
type: string
label: Instance Snow
required:
- SN_USERNAME
- SN_PASSWORD
- SN_INSTANCE
Te poverilnice bodo izpostavljene kot spremenljivke okolja z istim imenom. To je opisano v konfiguraciji injektorja:
env:
SN_INSTANCE: '{{ SN_INSTANCE }}'
SN_PASSWORD: '{{ SN_PASSWORD }}'
SN_USERNAME: '{{ SN_USERNAME }}'
Torej, opredelili smo želeni tip poverilnice, zdaj lahko dodamo uporabniški račun ServiceNow ter določimo instanco, uporabniško ime in geslo, tako:

Ustvarjamo inventar
Torej, zdaj imamo vse pripravljeno, da ustvarimo inventar v Ansible Tower. Poimenujmo ga ServiceNow:

Po ustvarjanju inventarja lahko priložimo vir podatkov. Tukaj navedemo projekt, ki smo ga ustvarili prej, in vnesemo pot do našega inventarni YAML datoteke v repozitoriju za obvladovanje različic, v našem primeru je to servicenow.yml v korenu projekta. Poleg tega je treba povezati tudi račun ServiceNow.

Da preverimo, kako vse deluje, poskusimo sinhronizirati z virom podatkov s pritiskom na gumb „Sync all“. Če je vse pravilno nastavljeno, bi se morali vozli uvoziti v naš inventar:

Upoštevajte, da so bile ustvarjene tudi potrebne skupine.
Zaključek
V tem prispevku smo obravnavali, kako v Ansible Tower uporabljati inventarni vtičnike iz zbirk na primeru vtičnika ServiceNow. Prav tako smo varno zapisali poverilnice za povezovanje z našim instancom ServiceNow. Povezava inventarnega vtičnika iz projekta deluje ne le s krmilnimi ali prilagodljivimi vtičniki, temveč se lahko uporablja tudi za modificiranje delovanja nekaterih privzetih inventarjev. S tem Ansible Automation Platform enostavno in brez težav integrira obstoječa orodja pri avtomatizaciji IKT okolij, ki postajajo vedno bolj zapletena.
Dodatne informacije o temah, obravnavanih v tem prispevku, pa tudi o drugih vidikih uporabe Ansible lahko najdete tukaj:
- Blog o .
- .
- Seznam podprtih Red Hat zbirk na spletnem mestu Automation Hub ().
- .
*Red Hat ne daje nobenih jamstev glede pravilnosti tukaj navedenega kode. Vsi materiali so na voljo brez podpore, razen če je izrecno navedeno drugače.
Izvor: habr.com
