IT-keskkonnad muutuvad ĂŒha keerulisemaks. Sellistes tingimustes on IT-automaatika sĂŒsteemi jaoks kriitilise tĂ€htsusega omada ajakohast teavet vĂ”rku kuuluvate ja töötlemisele alluvate sĂ”lmede kohta. Red Hat Ansible Automation Platformis lahendatakse see probleem nn inventari kaudu () â haldatud sĂ”lmede nimekirjad.

Oma kÔige lihtsamas vormis on inventar staatiline fail. See on ideaalne variant, kui hakkate Ansible'iga tööle, kuid automaatika laienedes osutub see ebapiisavaks.
Ja just sellepÀrast:
- Kuidas uuendada ja hoida ajakohasena tĂ€ielikku kontrollitavate sĂ”lmede nimekirja, kui midagi pidevalt muutub, kui töökoormused â ja nende jĂ€rgi ka sĂ”lmed, kus need kĂ€ivad â siis tekivad ja siis kaovad?
- Kuidas klassifitseerida IT-infrastruktuuri komponente, et sihipÀraselt valida sÔlmed, kuhu rakendada automaatikat?
MĂ”lemale kĂŒsimusele annab vastuse dĂŒnaamiline inventar () â skript vĂ”i plug-in, mis otsib automatiseeritavaid sĂ”lmi, pöördudes tĂ”e allika poole (source of truth). Lisaks sellele klassifitseerib dĂŒnaamiline inventuur automaatselt sĂ”lmi gruppidesse, et saaksite tĂ€psemalt valida sihtsĂŒsteeme Ansible automaatika teostamiseks.
annavad Ansible kasutajale vĂ”imaluse pöörduda vĂ€liste platvormide poole sihitud sĂ”lmede dĂŒnaamiliseks otsimiseks ja kasutada neid platvorme tĂ”e allikana inventuuri koostamisel. Standardne allikate nimekiri Ansible'is sisaldab pilveteenuseid AWS EC2, Google GCP ja Microsoft Azure, samuti on olemas palju muid inventuuripluginaid.
Ansible Tower pakutakse koos mitmete , mis töötavad otse «karbist vĂ€lja» ning lisaks ĂŒlaltoodud pilveteenustele pakuvad integratsiooni VMware vCenter'i, Red Hat OpenStack Platform'i ja Red Hat Satellite'iga. Nende pluginade puhul piisab sihtplatvormile ĂŒhenduse loomiseks ainult kasutajatunnuste esitamisest, pĂ€rast mida saab neid kasutada Ansible Tower'is inventuuride andmete allikana.
Lisaks Ansible Tower'i standardpluginidele on olemas ka teisi inventeerimispliine, mida toetab Ansible'i kogukond. Ăleminekul hakati neid pluginaid kaasama vastavatesse kogudesse.
Selles postituses analĂŒĂŒsime nĂ€iteks ServiceNow inventeerimispliini, mis on populaarne IT-teenuste haldamise platvorm, mille CMDB-s hoitakse sageli teavet kĂ”ikide seadmete kohta. Samuti vĂ”ib CMDB sisaldada automaatika jaoks kasulikku konteksti, nĂ€iteks teavet serverite omanike, teenindusastmete (production/non-production), installitud vĂ€rskenduste ja hooldustakistuste kohta. Ansible'i inventeerimispliin suudab töötada ServiceNow CMDB-ga ja kuulub kogusse portaalis .
Git-repositooriumis
Kuna Ansible Tower kasutab kogust inventeerimispliini, tuleb see mÀÀrata projekti allikana. Ansible Toweris on projekt integreerimine mingi versioonihaldesĂŒsteemiga, nagu git-reposiit, mida saab kasutada mitte ainult automatiseerimisplekkide, vaid ka muutujate ja inventeerimiskeerete sĂŒnkroonimiseks.
Meie hoidla on tegelikult vÀga lihtne:
âââ collections
â âââ requirements.yml
âââ servicenow.yml
Fail servicenow.yml sisaldab ĂŒksikasju inventari lisandmooduli kohta. Meie puhul mÀÀrame lihtsalt CMDB ServiceNow tabeli, mida soovime kasutada. Samuti mÀÀratleme vĂ€ljad, mis lisatakse sĂ”lme muutujatena, pluss teatud teave rĂŒhmade kohta, mida soovime luua.
$ 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: ''
Pange tĂ€hele, et siin ei tĂ€psustata, millise ServiceNow instanceâiga me ĂŒhendust loome, ega mÀÀrata ĂŒhtegi sisselogimisandmeid. KĂ”ik see seadistame hiljem Ansible Toweris.
on vajalik, et Ansible Tower saaks vajaliku kogumi alla laadida ning seega vajaliku inventari lisandmooduli kÀtte. Vastasel juhul peaksime selle kogumi kÀsitsi kÔikides meie Ansible Tower sÔlmedes installima ja hooldama.
$ cat collections/requirements.yml
---
collections:
- name: servicenow.servicenow
PĂ€rast seda, kui oleme selle konfiguratsiooni versioonihaldussĂŒsteemi edastanud, saab Ansible Toweris luua projekti, mis viitab sobivale hoidjale. Allolevas nĂ€ites seondub Ansible Tower meie hoidjaga GitHubis. Pange tĂ€hele SCM URL-i: see vĂ”imaldab mÀÀrata konto privaathoidjale ligipÀÀsemiseks ning mÀÀrata kindlaks konkreetse haru, sildi vĂ”i kinnituse tĂ”mbamiseks.

Loome ServiceNow jaoks volitused
Nagu juba mainitud, ei sisalda meie hoidjas olev konfiguratsioon ServiceNow'le ĂŒhendamiseks vajalikke volitusi ega tĂ€psusta, millise ServiceNow instantsiga me suhtleme. SeetĂ”ttu loome need andmed Ansible Toweris. Vastavalt , on olemas rida keskkonnamuutujaid, mille abil mÀÀrame ĂŒhendusparameetrid, nĂ€iteks nii:
= username
ServiceNow kasutajakonto, see peaks omama Ôigusi cmdb_ci_server'i (vaikimisi) lugemiseks vÔi tabeli, mille SN_TABLE mÀÀrate
set_via:
env:
- name: SN_USERNAME
Sellisel juhul, kui keskkonnamuutuja SN_USERNAME on mÀÀratud, kasutab inventariplugin seda ServiceNow'ga ĂŒhenduse loomiseks.
Peame mÀÀrama ka muutujad SN_INSTANCE ja SN_PASSWORD.
Kuid Ansible Tower'is ei ole sellist tĂŒĂŒpi autentimist, kus saaksime neid andmeid ServiceNow jaoks mÀÀrata. Kuid Ansible Tower vĂ”imaldab meil mÀÀratleda , tĂ€psemalt saab seda lugeda artiklist .
Meie puhul nÀeb input-konfiguratsioon kohandatud autentimisviiside jaoks ServiceNow vÀlja jÀrgmine:
fields:
- id: SN_USERNAME
type: string
label: Kasutajanimi
- id: SN_PASSWORD
type: string
label: ĐаŃĐŸĐ»Ń
secret: true
- id: SN_INSTANCE
type: string
label: ServiceNow instants
required:
- SN_USERNAME
- SN_PASSWORD
- SN_INSTANCE
Need autentimisviisid eksponeeritakse keskkonnamuutujatena sama nimega. See on kirjeldatud injector'i konfiguratsioonis:
env:
SN_INSTANCE: '{{ SN_INSTANCE }}'
SN_PASSWORD: '{{ SN_PASSWORD }}'
SN_USERNAME: '{{ SN_USERNAME }}'
Nii, oleme mÀÀratlenud vajaliku autentimistĂŒĂŒbi, nĂŒĂŒd saame lisada ServiceNow konto ja mÀÀrata instantsi, kasutajanime ja parooli, nii:

Loome varude nimekirja
Nii, nĂŒĂŒd on meil kĂ”ik valmis, et luua varude nimekiri Ansible Toweris. Nimetame selle ServiceNow:

Inventari loomisel saame andmeallika sellele kinnitada. Siin mÀÀrame projekti, mille varem lĂ”ime, ja sisestame tee meie inventari YAML-failini versioonihaldussĂŒsteemis, antud juhul servicenow.yml projekti juures. Samuti tuleb siduda ServiceNow konto.

Kontrollimaks, kuidas kĂ”ik töötab, proovime andmeallikaga sĂŒnkroniseerida, vajutades nuppu 'Sync all'. Kui kĂ”ik on Ă”igesti seadistatud, peaksid sĂ”lmed meie inventari importima:

Pange tÀhele, et vajalikud grupid on samuti loodud.
KokkuvÔte
Selles postituses vaatleme, kuidas kasutada Ansible Toweris inventeerimisplatvorme kollektsioonidest, kasutades ServiceNow plugina nĂ€idet. Samuti jĂ€ljendasime turvaliselt oma ServiceNow instantsi ĂŒhendamiseks vajalikke mandaate. Inventeerimisplatvormi sidumine projektist töötab mitte ainult kolmandate isikute vĂ”i konfigureeritavate pluginatega, vaid seda vĂ”ib kasutada ka teatud vaikimisi inventeerimise tööde modifitseerimiseks. TĂ€nu sellele integreerub Ansible Automation Platform hĂ”lpsasti ja sujuvalt olemasolevate tööriistadega IT-keskkondade automatiseerimisel, mis muutuvad jĂ€rjest keerulisemaks.
Lisainfot postituses kÀsitletud teemade kohta, samuti Ansible'i teiste rakenduste aspektide kohta leiate siit:
- Automaatika blogi .
- .
- Red Hat toetatud kollektsioonide nimekiri Automation Hubis ().
- .
*Red Hat ei anna mingeid garantii sellel siin esitatud koodi korrektsuse suhtes. KÔik materjalid on esitatud toetuse puudumise tingimustel, kui pole kirjalikult teisiti loodud.
Allikas: habr.com
