Inventāra spraudņu izmantoÅ”ana no Ansible Content Collections in Ansible Tower

IT vide kļūst arvien sarežģītāka. Šādos apstākļos ir ļoti svarÄ«gi, lai IT automatizācijas sistēmai bÅ«tu jaunākā informācija par mezgliem, kas atrodas tÄ«klā un ir pakļauti apstrādei. Red Hat Ansible Automation Platform Ŕī problēma tiek atrisināta, izmantojot tā saukto inventarizāciju (inventārs) ā€“ pārvaldÄ«to mezglu saraksti.

Inventāra spraudņu izmantoÅ”ana no Ansible Content Collections in Ansible Tower

VienkārŔākajā veidā inventārs ir statisks fails. Tas ir ideāli piemērots, kad sākat strādāt ar Ansible, taču, palielinoties automatizācijai, tā kļūst nepietiekama.

Un Ŕeit ir iemesls:

  1. Kā atjaunināt un uzturēt pilnu uzraudzīto mezglu sarakstu, kad lietas pastāvīgi mainās, kad darba slodzes un pēc tam mezgli, kuros tie darbojas, nāk un iet?
  2. Kā klasificēt IT infrastruktÅ«ras komponentus, lai Ä«paÅ”i atlasÄ«tu mezglus konkrētas automatizācijas pielietoÅ”anai?

Dinamiskā inventarizācija sniedz atbildes uz abiem Å”iem jautājumiem (dinamisks inventārs) ā€“ skripts vai spraudnis, kas meklē automatizējamos mezglus, atsaucoties uz patiesÄ«bas avotu. Turklāt dinamiskā uzskaite automātiski klasificē mezglus grupās, lai jÅ«s varētu precÄ«zāk atlasÄ«t mērÄ·a sistēmas konkrētas Ansible automatizācijas veikÅ”anai.

Inventāra spraudņi dot Ansible lietotājam iespēju piekļūt ārējām platformām, lai dinamiski meklētu mērÄ·a mezglus un izmantotu Ŕīs platformas kā patiesÄ«bas avotu, veidojot inventāru. Ansible standarta avotu sarakstā ir mākoņa platformas AWS EC2, Google GCP un Microsoft Azure, kā arÄ« daudzi citi Ansible krājumu spraudņi.

Ansible Tower ir aprÄ«kots ar vairākiem inventāra spraudņi, kas darbojas uzreiz no kastes un papildus iepriekÅ” uzskaitÄ«tajām mākoņu platformām nodroÅ”ina integrāciju ar VMware vCenter, Red Hat OpenStack Platform un Red Hat Satellite. Å iem spraudņiem jums vienkārÅ”i ir jānorāda akreditācijas dati, lai izveidotu savienojumu ar mērÄ·a platformu, pēc tam tos var izmantot kā Ansible Tower krājumu datu avotu.

Papildus Ansible Tower iekļautajiem standarta spraudņiem ir arÄ« citi Ansible kopienas atbalstÄ«tie krājumu spraudņi. Ar pāreju uz Red Hat Ansible satura kolekcijas Å”os spraudņus sāka iekļaut attiecÄ«gajās kolekcijās.

Å ajā ziņojumā mēs ņemsim piemēru darbam ar inventāra spraudni ServiceNow ā€” populārai IT pakalpojumu pārvaldÄ«bas platformai, kurā klienti bieži glabā informāciju par visām savām ierÄ«cēm CMDB. Turklāt CMDB var ietvert automatizācijai noderÄ«gu kontekstu, piemēram, informāciju par serveru Ä«paÅ”niekiem, pakalpojumu lÄ«meņiem (ražoÅ”anas/neražoÅ”anas), instalētajiem atjauninājumiem un apkopes logiem. Ansible inventāra spraudnis var darboties ar ServiceNow CMDB un ir daļa no kolekcijas serviss portālā galaxy.ansible.com.

Git repozitorijs

Lai izmantotu krājumu spraudni no kolekcijas Ansible Tower, tas ir jāiestata kā projekta avots. Programmā Ansible Tower projekts ir integrācija ar kaut kādu versiju kontroles sistēmu, piemēram, git repozitoriju, ko var izmantot, lai sinhronizētu ne tikai automatizācijas rokasgrāmatas, bet arī mainīgos un krājumu sarakstus.

Mūsu repozitorijs patiesībā ir ļoti vienkārŔs:

ā”œā”€ā”€ collections
ā”‚   ā””ā”€ā”€ requirements.yml
ā””ā”€ā”€ servicenow.yml

Failā servicenow.yml ir ietverta informācija par spraudņa inventāru. MÅ«su gadÄ«jumā mēs vienkārÅ”i norādām tabulu pakalpojumā ServiceNow CMDB, kuru vēlamies izmantot. Mēs arÄ« iestatÄ«jām laukus, kas tiks pievienoti kā mezglu mainÄ«gie, kā arÄ« noteiktu informāciju par grupām, kuras vēlamies izveidot.

$ 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: ''

Lūdzu, ņemiet vērā, ka tas nekādā veidā nenorāda ServiceNow gadījumu, ar kuru mēs izveidosim savienojumu, un nav norādīti savienojuma akreditācijas dati. Mēs to visu konfigurēsim vēlāk Ansible Tower.

Failu kolekcijas/requirements.yml nepiecieÅ”ams, lai Ansible Tower varētu lejupielādēt nepiecieÅ”amo kolekciju un tādējādi iegÅ«t nepiecieÅ”amo inventāra spraudni. Pretējā gadÄ«jumā mums bÅ«tu manuāli jāinstalē un jāuztur Ŕī kolekcija visos mÅ«su Ansible Tower mezglos.

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

- name: servicenow.servicenow

Kad mēs esam nosÅ«tÄ«juÅ”i Å”o konfigurāciju uz versiju kontroli, mēs varam izveidot projektu Ansible Tower, kas atsaucas uz atbilstoÅ”o repozitoriju. Tālāk sniegtajā piemērā Ansible Tower ir savienots ar mÅ«su github repozitoriju. Pievērsiet uzmanÄ«bu SCM URL: tas ļauj reÄ£istrēt kontu, lai izveidotu savienojumu ar privātu repozitoriju, kā arÄ« norādÄ«t konkrētu filiāli, tagu vai apņemÅ”anos veikt pārbaudi.

Inventāra spraudņu izmantoÅ”ana no Ansible Content Collections in Ansible Tower

Akreditācijas datu izveide pakalpojumam ServiceNow

Kā minēts, konfigurācija mÅ«su repozitorijā nesatur akreditācijas datus, lai izveidotu savienojumu ar ServiceNow, un nav norādÄ«ta ServiceNow instance, ar kuru mēs sazināsimies. Tāpēc, lai iestatÄ«tu Å”os datus, Ansible Tower izveidosim akreditācijas datus. Saskaņā ar ServiceNow krājumu spraudņa dokumentācija, ir vairāki vides mainÄ«gie, ar kuriem mēs iestatÄ«sim savienojuma parametrus, piemēram, Ŕādi:

= 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

Šādā gadījumā, ja ir iestatīts vides mainīgais SN_USERNAME, krājumu spraudnis to izmantos kā kontu, lai izveidotu savienojumu ar ServiceNow.

Mums ir jāiestata arī mainīgie SN_INSTANCE un SN_PASSWORD.

Tomēr pakalpojumā Ansible Tower nav Ŕāda veida akreditācijas datu, kur jÅ«s varētu norādÄ«t Å”os datus pakalpojumam ServiceNow. Bet Ansible Tower ļauj mums definēt pielāgoti akreditācijas datu veidi, vairāk par to varat lasÄ«t rakstā "Ansible Tower Feature Spotlight: pielāgoti akreditācijas dati".

Mūsu gadījumā pakalpojuma ServiceNow pielāgoto akreditācijas datu ievades konfigurācija izskatās Ŕādi:

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

Šie akreditācijas dati tiks parādīti kā vides mainīgie ar tādu paŔu nosaukumu. Tas ir aprakstīts inžektora konfigurācijā:

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

Tātad, mēs esam definējuÅ”i vajadzÄ«go akreditācijas datu veidu, tagad mēs varam pievienot ServiceNow kontu un iestatÄ«t gadÄ«jumu, lietotājvārdu un paroli, piemēram:

Inventāra spraudņu izmantoÅ”ana no Ansible Content Collections in Ansible Tower

Veidojam inventāru

Tātad, tagad mēs visi esam gatavi izveidot inventāru Ansible Tower. Sauksim to par ServiceNow:

Inventāra spraudņu izmantoÅ”ana no Ansible Content Collections in Ansible Tower

Pēc inventāra izveides varam tam pievienot datu avotu. Å eit mēs norādām iepriekÅ” izveidoto projektu un ievadām ceļu uz mÅ«su YAML inventāra failu avota vadÄ«bas repozitorijā, mÅ«su gadÄ«jumā tas ir servicenow.yml projekta saknē. Turklāt jums ir jāsaista savs ServiceNow konts.

Inventāra spraudņu izmantoÅ”ana no Ansible Content Collections in Ansible Tower

Lai pārbaudÄ«tu, kā viss darbojas, mēģināsim sinhronizēt ar datu avotu, noklikŔķinot uz pogas ā€œSinhronizēt visuā€. Ja viss ir pareizi konfigurēts, mezgli ir jāimportē mÅ«su krājumā:

Inventāra spraudņu izmantoÅ”ana no Ansible Content Collections in Ansible Tower

LÅ«dzu, ņemiet vērā, ka ir izveidotas arÄ« mums nepiecieÅ”amās grupas.

Secinājums

Å ajā ziņojumā mēs apskatÄ«jām, kā izmantot krājumu spraudņus no Ansible Tower kolekcijām, kā piemēru izmantojot spraudni ServiceNow. Mēs arÄ« droÅ”i reÄ£istrējām akreditācijas datus, lai izveidotu savienojumu ar mÅ«su ServiceNow gadÄ«jumu. Inventāra spraudņa saistÄ«Å”ana no projekta darbojas ne tikai ar treŔās puses vai pielāgotiem spraudņiem, bet arÄ« to var izmantot, lai mainÄ«tu dažu standarta krājumu darbÄ«bu. Tas padara Ansible Automation Platform viegli un nemanāmi integrējamu ar esoÅ”ajiem rÄ«kiem, lai automatizētu arvien sarežģītākas IT vides.

PlaŔāku informāciju par Å”ajā ziņā apspriestajām tēmām, kā arÄ« citiem Ansible izmantoÅ”anas aspektiem varat atrast Å”eit:

*Red Hat negarantē, ka Å”eit ietvertais kods ir pareizs. Visi materiāli tiek sniegti bez apstiprinājuma, ja vien nav skaidri norādÄ«ts citādi.

Avots: www.habr.com

Pievieno komentāru