Ansible'i sisu kogude inventeerimispluginad Ansible Toweris

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 (inventory) – haldatud sĂ”lmede nimekirjad.

Ansible'i sisu kogude inventeerimispluginad Ansible Toweris

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:

  1. 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?
  2. Kuidas klassifitseerida IT-infrastruktuuri komponente, et sihipÀraselt valida sÔlmed, kuhu rakendada automaatikat?

MĂ”lemale kĂŒsimusele annab vastuse dĂŒnaamiline inventar (dynamic inventory) – 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.

Inventuuripluginad 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 inventuuripluginatega, 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 Red Hat Ansible Content Collections 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 servicenow portaalis galaxy.ansible.com.

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.

Fail collections/requirements.yml 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.

Ansible'i sisu kogude inventeerimispluginad Ansible Toweris

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 ServiceNow inventariplugina dokumentatsioonile, 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 kohandatud autentimisviise, tĂ€psemalt saab seda lugeda artiklist „Ansible Tower Feature Spotlight: Custom Credentials“.

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:

Ansible'i sisu kogude inventeerimispluginad Ansible Toweris

Loome varude nimekirja

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

Ansible'i sisu kogude inventeerimispluginad Ansible Toweris

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.

Ansible'i sisu kogude inventeerimispluginad Ansible Toweris

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:

Ansible'i sisu kogude inventeerimispluginad Ansible Toweris

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:

*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

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster