Uporaba vtičnikov inventarja iz zbirk vsebine Ansible v stolpu Ansible

IT okolja postajajo vse bolj zapletena. V teh razmerah je ključnega pomena, da ima sistem IT avtomatizacije ažurne podatke o vozliščih, ki so prisotna v omrežju in so predmet obdelave. V platformi za avtomatizacijo Red Hat Ansible je ta težava rešena s tako imenovanim inventarjem (inventar) – seznami upravljanih vozlišč.

Uporaba vtičnikov inventarja iz zbirk vsebine Ansible v stolpu Ansible

V najpreprostejši obliki je inventar statična datoteka. To je idealno, ko začnete delati z Ansible, vendar z večjo avtomatizacijo postane nezadostno.

In zato je:

  1. Kako posodabljate in vzdržujete popoln seznam nadzorovanih vozlišč, ko se stvari nenehno spreminjajo, ko delovne obremenitve – in posledično vozlišča, na katerih se izvajajo – prihajajo in gredo?
  2. Kako razvrstiti komponente IT infrastrukture, da bi posebej izbrali vozlišča za uporabo določene avtomatizacije?

Dinamični inventar ponuja odgovore na obe vprašanji (dinamični popis) – skript ali vtičnik, ki išče vozlišča, ki jih je treba avtomatizirati, in se nanaša na vir resnice. Poleg tega dinamični inventar samodejno razvrsti vozlišča v skupine, tako da lahko natančneje izberete ciljne sisteme za izvajanje specifične avtomatizacije Ansible.

Vtičniki za popis dajte uporabniku Ansible možnost dostopa do zunanjih platform za dinamično iskanje ciljnih vozlišč in uporabo teh platform kot vir resnice pri ustvarjanju inventarja. Standardni seznam virov v Ansible vključuje platforme v oblaku AWS EC2, Google GCP in Microsoft Azure, poleg tega pa je na voljo tudi veliko drugih vtičnikov za inventar za Ansible.

Ansible Tower je opremljen s številnimi vtičniki za popis, ki deluje takoj po izdelavi in ​​poleg zgoraj naštetih oblačnih platform omogoča integracijo z VMware vCenter, Red Hat OpenStack Platform in Red Hat Satellite. Za te vtičnike morate samo zagotoviti poverilnice za povezavo s ciljno platformo, nato pa jih je mogoče uporabiti kot vir podatkov o inventarju v Ansible Tower.

Poleg standardnih vtičnikov, vključenih v Ansible Tower, obstajajo še drugi vtičniki za inventar, ki jih podpira skupnost Ansible. S prehodom na Zbirke vsebin Red Hat Ansible te vtičnike so začeli vključevati v ustrezne zbirke.

V tej objavi bomo vzeli primer dela z vtičnikom inventarja za ServiceNow, priljubljeno platformo za upravljanje storitev IT, v kateri stranke pogosto shranjujejo informacije o vseh svojih napravah v CMDB. Poleg tega lahko CMDB vsebuje kontekst, ki je uporaben za avtomatizacijo, kot so informacije o lastnikih strežnikov, nivojih storitev (produkcijska/neprodukcijska), nameščenih posodobitvah in oknih vzdrževanja. Vtičnik za inventar Ansible lahko deluje s ServiceNow CMDB in je del zbirke servisiranje na portalu galaxy.ansible.com.

Git repozitorij

Če želite uporabiti vtičnik inventarja iz zbirke v Ansible Tower, ga morate nastaviti kot vir projekta. V Ansible Towerju je projekt integracija z nekakšnim sistemom za nadzor različic, kot je repozitorij git, ki se lahko uporablja za sinhronizacijo ne samo avtomatizacijskih knjig, ampak tudi spremenljivk in seznamov inventarja.

Naše skladišče je pravzaprav zelo preprosto:

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

Datoteka servicenow.yml vsebuje podrobnosti o inventarju vtičnikov. V našem primeru preprosto določimo tabelo v ServiceNow CMDB, ki jo želimo uporabiti. Nastavimo tudi polja, ki bodo dodana kot spremenljivke vozlišča, in 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 to ne določa primerka ServiceNow, s katerim se bomo kakor koli povezali, in ne določa nobenih poverilnic za povezavo. Vse to bomo kasneje konfigurirali v stolpu Ansible.

Zbirke datotek/requirements.yml potreben, da lahko Ansible Tower prenese zahtevano zbirko in s tem pridobi zahtevani vtičnik inventarja. 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 to konfiguracijo potisnemo v nadzor različic, lahko ustvarimo projekt v Ansible Tower, ki se sklicuje na ustrezno skladišče. Spodnji primer povezuje Ansible Tower z našim skladiščem github. Bodite pozorni na URL SCM: omogoča vam, da registrirate račun za povezavo z zasebnim repozitorijem, kot tudi določite določeno vejo, oznako ali obvezo za odjavo.

Uporaba vtičnikov inventarja iz zbirk vsebine Ansible v stolpu Ansible

Ustvarjanje poverilnic za ServiceNow

Kot že omenjeno, konfiguracija v našem repozitoriju ne vsebuje poverilnic za povezavo s ServiceNow in ne določa primerka ServiceNow, s katerim bomo komunicirali. Zato bomo za nastavitev teh podatkov ustvarili poverilnice v Ansible Tower. Po navedbah Dokumentacija vtičnika inventarja ServiceNow, obstaja več spremenljivk okolja, s katerimi bomo nastavili parametre povezave, na primer takole:

= 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

V tem primeru, če je nastavljena spremenljivka okolja SN_USERNAME, jo bo vtičnik inventarja uporabil kot račun za povezavo s ServiceNow.

Prav tako moramo nastaviti spremenljivki SN_INSTANCE in SN_PASSWORD.

Vendar pa v Ansible Tower ni poverilnic te vrste, kjer bi lahko podali te podatke za ServiceNow. Toda Ansible Tower nam omogoča definiranje vrste poverilnic po meri, več o tem si lahko preberete v članku »Spotlight funkcije Ansible Tower: Poverilnice po meri«.

V našem primeru je konfiguracija vnosa za poverilnice po meri za ServiceNow videti takole:

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

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, določili smo vrsto poverilnice, ki jo potrebujemo, zdaj lahko dodamo račun ServiceNow in nastavimo primerek, uporabniško ime in geslo, takole:

Uporaba vtičnikov inventarja iz zbirk vsebine Ansible v stolpu Ansible

Ustvarimo inventar

Torej, zdaj smo vsi pripravljeni ustvariti inventar v stolpu Ansible. Recimo temu ServiceNow:

Uporaba vtičnikov inventarja iz zbirk vsebine Ansible v stolpu Ansible

Po izdelavi inventarja mu lahko priložimo vir podatkov. Tukaj določimo projekt, ki smo ga ustvarili prej, in vnesemo pot do naše datoteke inventarja YAML v repozitoriju izvornega nadzora, v našem primeru je to servicenow.yml v korenu projekta. Poleg tega morate povezati svoj račun ServiceNow.

Uporaba vtičnikov inventarja iz zbirk vsebine Ansible v stolpu Ansible

Če želite preveriti, kako vse deluje, poskusimo izvesti sinhronizacijo z virom podatkov s klikom na gumb »Sinhroniziraj vse«. Če je vse pravilno konfigurirano, je treba vozlišča uvoziti v naš inventar:

Uporaba vtičnikov inventarja iz zbirk vsebine Ansible v stolpu Ansible

Upoštevajte, da so bile ustvarjene tudi skupine, ki jih potrebujemo.

Zaključek

V tej objavi smo si ogledali, kako uporabiti vtičnike inventarja iz zbirk v Ansible Tower na primeru vtičnika ServiceNow. Prav tako smo varno registrirali poverilnice za povezavo z našo instanco ServiceNow. Povezovanje vtičnika inventarja iz projekta ne deluje samo z vtičniki tretjih oseb ali vtičniki po meri, ampak se lahko uporablja tudi za spreminjanje delovanja nekaterih standardnih inventarjev. Zaradi tega je platforma Ansible Automation Platform enostavna in brezhibna za integracijo z obstoječimi orodji pri avtomatizaciji vedno bolj zapletenih IT okolij.

Več informacij o temah, obravnavanih v tej objavi, in drugih vidikih uporabe Ansible najdete tukaj:

*Red Hat ne jamči, da je tukaj navedena koda pravilna. Vsa gradiva so na voljo brez odobritve, razen če je izrecno navedeno drugače.

Vir: www.habr.com

Dodaj komentar