Ansible'i sisu kogumite inventuuri pluginite kasutamine Ansible Toweris

IT-ökosĂŒsteemid muutuvad jĂ€rjest keerulisemaks. Nendes tingimustes on IT-automaatikas kriitilise tĂ€htsusega omada ajakohast teavet vĂ”rgulementide kohta, mis vajavad töötlemist. Red Hat Ansible Automation Platformis lahendatakse see probleem niiöelda inventeerimise kaudu (inventory) – hallatavate elementide nimekirjad.

Ansible'i sisu kogumite inventuuri pluginite kasutamine Ansible Toweris

Oma kÔige lihtsamas vormis on inventeerimine staatiline fail. See on ideaalne variant, kui hakkate Ansible'i kasutama, kuid automatiseerimise laienedes muutub see ebapiisavaks.

Ja pÔhjused on jÀrgmised:

  1. Kuidas vĂ€rskendada ja hoida ajakohasena tĂ€ielikku hallatavate elementide nimekirja, kui kĂ”ik pidevalt muutub, kui töökoormused – ja nendega koos nende tĂ€itmiseks vajalikud elemendid – tekivad ja kaovad?
  2. Kuidas klassifitseerida IT-infrastruktuuri komponente, et valida sihitud elemente teatud automatiseerimise rakendamiseks?

MĂ”lema kĂŒsimuse vastused annab dĂŒnaamiline inventeerimine (dynamic inventory) – skript vĂ”i plugin, mis otsib automaatimisse kuuluvad elemendid, pöördudes tĂ”eallika poole (source of truth). Lisaks klassifitseerib dĂŒnaamiline inventeerimine automaatselt elemente gruppidesse, et saaksite tĂ€psemalt valida sihtsĂŒsteeme Ansible’i teatud automatiseerimise teostamiseks.

Inventeerimise pluginad annavad Ansible'i kasutajale vĂ”imaluse pöörduda vĂ€liste platvormide poole dĂŒnaamilise sihtelementide otsimiseks ja kasutada neid platvorme tĂ”eallikana inventeerimise koostamisel. Ansible'i standardne allikate nimekiri sisaldab pilveplatvorme nagu AWS EC2, Google GCP ja Microsoft Azure, ning Ansible'i jaoks on ka mitmeid muid inventeerimise pluginaid.

Ansible Tower tarnitakse koos mitmete inventeerimise pluginatega, mis töötavad otse „kasti seest“ ja lisaks eespool nimetatud pilveplatvormidele tagavad need integratsiooni VMware vCenteri, Red Hat OpenStack Platformi ja Red Hat Satellite'iga. Nende pluginatega piisab, kui esitada sihtplatvormile ĂŒhenduse loomiseks vajalikud mandaadid, seejĂ€rel saab neid kasutada inventeerimisandmete allikana Ansible Toweris.

Lisaks tavapĂ€rastele pluginatele, mis on varustatud Ansible Toweriga, on ka teisi inventeerimise pluginaid, mida toetavad Ansible'i kogukonna jĂ”ud. Üleminekuga Red Hat Ansible Content Collections on need pluginad hakanud kuuluma vastavatesse kogudesse.

Selles postituses vaatleme inventory-plugin'i tööd ServiceNow's, populaarses IT-teenuste haldamise platvormis, mille CMDB-s hoiavad kliendid sageli teavet oma seadmete kohta. Lisaks sellele vÔib CMDB sisaldada automatiseerimise konteksti jaoks kasulikku teavet, nÀiteks serverite omanike, teenindusastmete (production/non-production), installitud uuenduste ja hooldusakenete andmeid. Ansible'i inventori-plugin suudab töötada ServiceNow CMDB-ga ja kuulub kollektsiooni koostisse. servicenow portaalis galaxy.ansible.com.

Git-repositoorium

Et kasutada Ansible Toweris kollektsiooni inventori-plugin'i, tuleb see mÀÀrata projektiallikana. Ansible Toweris on projekt integreerimine mĂ”ne versioonihaldussĂŒsteemiga, nagu git-repositoorium, mida saab kasutada mitte ainult automatiseerimisplaane, vaid ka muutujaid ja inventari nimekirju sĂŒnkroonimiseks.

Meie repositoorium on tegelikult vÀga lihtne:

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

Fail servicenow.yml sisaldab ĂŒksikasju inventori-plugin'i jaoks. Meie juhul mÀÀrame lihtsalt tabeli CMDB ServiceNow's, mida soovime kasutada. Samuti mÀÀrame 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 kuidagi, millise ServiceNow instantsiga me ĂŒhendame, ega mÀÀrata ka mingeid autentimisandeid. KĂ”ik need seaded teeme hiljem Ansible Toweris.

Fail collections/requirements.yml on vajalik, et Ansible Tower saaks alla laadida vajaliku kollektsiooni ja seega vajalikud inventori-plugin'id. Vastasel korral tuleks see kollektsioon manuaalselt installida ja hallata kÔigil meie Ansible Tower sÔlmedel.

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

- name: servicenow.servicenow

PĂ€rast seda, kui oleme selle konfiguratsiooni versioonihaldusesse saatnud, saab Ansible Toweris luua projekti, mis viitab vastavale repole. Allpool toodud nĂ€ites seondub Ansible Tower meie GitHubi repoga. Pange tĂ€hele SCM URL-i: see vĂ”imaldab mÀÀrata konto, et ĂŒhendada privaatset reposid, ning mÀÀrata konkreetne haru, sildi vĂ”i kommi ekstraktsiooni jaoks.

Ansible'i sisu kogumite inventuuri pluginite kasutamine Ansible Toweris

Loome credentials ServiceNow jaoks

Nagu juba mainitud, ei sisalda meie repolis konfiguratsioon ĂŒhenduse loomiseks ServiceNow jaoks ja ei tĂ€psusta ServiceNow instantsi, millega me suhtleme. SeetĂ”ttu loome nende andmete mÀÀramiseks Ansible Toweris credentials. Vastavalt ServiceNow inventeerimise plugina dokumentatsioonile, on olemas rida keskkonnamuutujaid, millega mÀÀrame ĂŒhenduse parameetrid, nĂ€iteks nii:

= username
    	ServiceNow kasutajakonto, mis peaks omama Ôigusi cmdb_ci_serveri (vaikimisi) lugemiseks vÔi tabeli, mille SN_TABLE mÀÀrab, lugemiseks

    	set_via:
      	env:
      	- name: SN_USERNAME

Sel juhul, kui keskkonnamuutuja SN_USERNAME on mÀÀratud, kasutab inventeerimise plugina kasutamine seda ServiceNowi ĂŒhenduse loomiseks.

Peame ka mÀÀrama muutujad SN_INSTANCE ja SN_PASSWORD.

Siiski ei ole Ansible Toweris selliste andmete mÀÀramiseks credentials. Kuid Ansible Tower vĂ”imaldab meil mÀÀratleda kohandatud credentials tĂŒĂŒbid, mille kohta saab lisainfot lugeda artiklist „Ansible Tower Feature Spotlight: Custom Credentials“.

Meie puhul nÀeb ServiceNow jaoks kohandatud credentials sisendkonfiguratsioon vÀlja jÀrgmine:

fields:
  - id: SN_USERNAME
	type: string
	label: Kasutajanimi
  - id: SN_PASSWORD
	type: string
	label: Parool
	secret: true
  - id: SN_INSTANCE
	type: string
	label: Snow Instants
required:
  - SN_USERNAME
  - SN_PASSWORD
  - SN_INSTANCE

Need credentials eksponeeritakse keskkonnamuutujatena sama nimega. See on kirjeldatud injector'i konfiguratsioonis:

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

Nii et oleme mÀÀratlenud vajalikud credentiali tĂŒĂŒbid, nĂŒĂŒd saab lisada ServiceNow kontot ning mÀÀrata instantsi, kasutajanime ja parooli, nii:

Ansible'i sisu kogumite inventuuri pluginite kasutamine Ansible Toweris

Loome inventuuri

NĂŒĂŒd on meil kĂ”ik vajalik, et luua Ansible Toweris inventuuri. Nimeta see ServiceNow:

Ansible'i sisu kogumite inventuuri pluginite kasutamine Ansible Toweris

PĂ€rast inventuuri loomist saame sellele andmeallika kĂŒlge kinnitada. Siin nĂ€itame projekti, mille varem lĂ”ime, ja sisestame tee meie inventuuri YAML-failini versioonihaldussĂŒsteemis, meie puhul on see servicenow.yml projekti juures. Samuti tuleb siduda ServiceNow konto.

Ansible'i sisu kogumite inventuuri pluginite kasutamine Ansible Toweris

Kuidas kĂ”ik töötab, proovime andmeallikaga sĂŒnkroniseerida, vajutades nupule „SĂŒnkroniseeri kĂ”ik“. Kui kĂ”ik on Ă”igesti seadistatud, imporditakse sĂ”lmed meie inventuuri:

Ansible'i sisu kogumite inventuuri pluginite kasutamine Ansible Toweris

Pange tÀhele, et vajalikud grupid on samuti loodud.

KokkuvÔte

Selles postituses vaatlesime, kuidas kasutada Ansible Toweris inventuuri pluginaid kogudest, nĂ€iteks ServiceNow pluginat. Samuti seadsime ohutult ĂŒhenduse andmed meie ServiceNow instantsiga. Projekti inventuuri plugina sidumine töötab mitte ainult kolmandate osapoolte vĂ”i kohandatavate pluginatega, vaid seda saab kasutada ka mĂ”nede vaikimisi inventuuri töömodifikatsioonidega. TĂ€nu sellele integreerib Ansible Automation Platform hĂ”lpsalt ja sujuvalt olemasolevad tööriistad, automatiseerides IT-keskkondi, mis muutuvad ĂŒha keerulisemaks.

Lisainfot postitustes kÀsitletud teemade kohta ja teiste Ansible rakendamise aspektide kohta leiate siit:

*Red Hat ei anna mingeid garantiisid siinses koodis esitatud andmete Ôigsuse kohta. KÔik materjalid on esitatud ilma toeta, vÀlja arvatud juhul, kui on selgesÔnaliselt öeldud teisiti.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster