Naudoti inventoriaus papildinius iš Ansible Content Collections in Ansible Tower

IT aplinkos tampa vis sudėtingesnės. Tokiomis sąlygomis IT automatizavimo sistemai labai svarbu turėti naujausią informaciją apie tinkle esančius ir apdorojamus mazgus. Red Hat Ansible Automation Platform ši problema išspręsta naudojant vadinamąjį inventorių (inventorius) – valdomų mazgų sąrašai.

Naudoti inventoriaus papildinius iš Ansible Content Collections in Ansible Tower

Paprasčiausia forma inventorius yra statinis failas. Tai idealu, kai pradedate dirbti su Ansible, tačiau didėjant automatizavimui, jo nepakanka.

Ir štai kodėl:

  1. Kaip atnaujinti ir prižiūrėti visą stebimų mazgų sąrašą, kai viskas nuolat keičiasi, kai darbo krūviai (o vėliau ir mazgai, kuriuose jie veikia) atsiranda ir išnyksta?
  2. Kaip klasifikuoti IT infrastruktūros komponentus, kad būtų galima konkrečiai parinkti mazgus konkrečiai automatizacijai pritaikyti?

Dinaminė inventorizacija pateikia atsakymus į abu šiuos klausimus (dinamiškas inventorius) – scenarijus arba įskiepis, kuris ieško automatizuotų mazgų, nurodant tiesos šaltinį. Be to, dinaminė inventorizacija automatiškai klasifikuoja mazgus į grupes, kad galėtumėte tiksliau pasirinkti tikslines sistemas konkrečiam Ansible automatizavimui atlikti.

Inventoriaus papildiniai Suteikite Ansible vartotojui galimybę pasiekti išorines platformas, kad būtų galima dinamiškai ieškoti tikslinių mazgų ir naudoti šias platformas kaip tiesos šaltinį kuriant inventorių. Į standartinį Ansible šaltinių sąrašą įtrauktos debesų platformos AWS EC2, Google GCP ir Microsoft Azure, taip pat yra daug kitų Ansible atsargų papildinių.

„Ansible Tower“ yra su daugybe inventoriaus įskiepiai, kurios veikia iš karto ir, be aukščiau išvardytų debesies platformų, integruojasi su VMware vCenter, Red Hat OpenStack Platform ir Red Hat Satellite. Šiems papildiniams tereikia pateikti kredencialus, kad galėtumėte prisijungti prie tikslinės platformos, o po to jie gali būti naudojami kaip atsargų duomenų šaltinis Ansible Tower.

Be standartinių įskiepių, įtrauktų į Ansible Tower, yra ir kitų inventoriaus įskiepių, kuriuos palaiko Ansible bendruomenė. Su perėjimu į Red Hat Ansible turinio kolekcijos šie įskiepiai buvo pradėti įtraukti į atitinkamas kolekcijas.

Šiame įraše pateiksime pavyzdį, kaip dirbti su atsargų papildiniu, skirtu ServiceNow – populiaria IT paslaugų valdymo platforma, kurioje klientai dažnai saugo informaciją apie visus savo įrenginius CMDB. Be to, CMDB gali būti automatizavimui naudingo konteksto, pvz., informacijos apie serverių savininkus, paslaugų lygius (gamybinius / negaminius), įdiegtus naujinimus ir priežiūros langus. Ansible inventoriaus papildinys gali veikti su ServiceNow CMDB ir yra rinkinio dalis paslauga dabar portale galaxy.ansible.com.

Git saugykla

Jei norite naudoti atsargų papildinį iš Ansible Tower kolekcijos, jis turi būti nustatytas kaip projekto šaltinis. „Ansible Tower“ projektas yra integracija su tam tikra versijų valdymo sistema, pavyzdžiui, „git“ saugykla, kurią galima naudoti sinchronizuoti ne tik automatizavimo knygas, bet ir kintamuosius bei inventoriaus sąrašus.

Mūsų saugykla iš tikrųjų yra labai paprasta:

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

Faile servicenow.yml yra papildinio inventoriaus informacija. Mūsų atveju mes tiesiog nurodome lentelę ServiceNow CMDB, kurią norime naudoti. Taip pat nustatome laukus, kurie bus įtraukti kaip mazgo kintamieji, ir tam tikrą informaciją apie grupes, kurias norime sukurti.

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

Atminkite, kad tai jokiu būdu nenurodo ServiceNow egzemplioriaus, prie kurio prisijungsime, ir nenurodo jokių prisijungimo kredencialų. Visa tai sukonfigūruosime vėliau Ansible Tower.

Failų kolekcijos/requirements.yml reikalingas, kad Ansible Tower galėtų atsisiųsti reikiamą kolekciją ir taip gauti reikiamą inventoriaus papildinį. Priešingu atveju turėtume rankiniu būdu įdiegti ir prižiūrėti šią kolekciją visuose mūsų Ansible Tower mazguose.

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

- name: servicenow.servicenow

Perkėlę šią konfigūraciją į versijos valdymą, Ansible Tower galime sukurti projektą, nurodantį atitinkamą saugyklą. Toliau pateiktame pavyzdyje „Ansible Tower“ susiejama su mūsų „github“ saugykla. Atkreipkite dėmesį į SCM URL: jis leidžia užregistruoti paskyrą, kad galėtumėte prisijungti prie privačios saugyklos, taip pat nurodyti konkrečią šaką, žymą arba įsipareigojimą išsiregistruoti.

Naudoti inventoriaus papildinius iš Ansible Content Collections in Ansible Tower

„ServiceNow“ kredencialų kūrimas

Kaip minėta, konfigūracijoje mūsų saugykloje nėra kredencialų, kad būtų galima prisijungti prie ServiceNow, ir nenurodomas ServiceNow egzempliorius, su kuriuo bendrausime. Todėl, norėdami nustatyti šiuos duomenis, Ansible Tower sukursime kredencialus. Pagal ServiceNow inventoriaus papildinio dokumentacija, yra keletas aplinkos kintamųjų, su kuriais nustatysime ryšio parametrus, pavyzdžiui, taip:

= 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

Tokiu atveju, jei nustatytas aplinkos kintamasis SN_USERNAME, atsargų įskiepis naudos jį kaip paskyrą prisijungdamas prie ServiceNow.

Taip pat turime nustatyti SN_INSTANCE ir SN_PASSWORD kintamuosius.

Tačiau „Ansible Tower“ nėra tokio tipo kredencialų, kuriuose galėtumėte nurodyti šiuos „ServiceNow“ duomenis. Tačiau Ansible Tower leidžia mums apibrėžti pasirinktiniai kredencialų tipai, daugiau apie tai galite perskaityti straipsnyje „Ansible Tower Feature Spotlight: Custom Credentials“.

Mūsų atveju „ServiceNow“ tinkintų kredencialų įvesties konfigūracija atrodo taip:

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 kredencialai bus atskleisti kaip aplinkos kintamieji tuo pačiu pavadinimu. Tai aprašyta purkštuko konfigūracijoje:

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

Taigi, mes apibrėžėme mums reikalingą kredencialų tipą, dabar galime pridėti ServiceNow paskyrą ir nustatyti egzempliorių, vartotojo vardą ir slaptažodį, pavyzdžiui:

Naudoti inventoriaus papildinius iš Ansible Content Collections in Ansible Tower

Kuriame inventorių

Taigi, dabar mes visi esame pasirengę sukurti inventorių Ansible Tower. Pavadinkime tai ServiceNow:

Naudoti inventoriaus papildinius iš Ansible Content Collections in Ansible Tower

Sukūrę inventorių galime prie jo pridėti duomenų šaltinį. Čia nurodome anksčiau sukurtą projektą ir šaltinio valdymo saugykloje įvedame kelią į mūsų YAML inventoriaus failą, mūsų atveju tai yra servicenow.yml projekto šaknyje. Be to, turite susieti savo ServiceNow paskyrą.

Naudoti inventoriaus papildinius iš Ansible Content Collections in Ansible Tower

Norėdami patikrinti, kaip viskas veikia, pabandykime sinchronizuoti su duomenų šaltiniu spustelėdami mygtuką „Sinchronizuoti viską“. Jei viskas sukonfigūruota teisingai, mazgai turėtų būti importuojami į mūsų inventorių:

Naudoti inventoriaus papildinius iš Ansible Content Collections in Ansible Tower

Atkreipkite dėmesį, kad mums reikalingos grupės taip pat buvo sukurtos.

išvada

Šiame įraše apžvelgėme, kaip naudoti atsargų papildinius iš Ansible Tower kolekcijų, kaip pavyzdį naudojant ServiceNow papildinį. Taip pat saugiai užregistravome kredencialus, kad galėtume prisijungti prie mūsų ServiceNow egzemplioriaus. Projekto atsargų papildinio susiejimas veikia ne tik su trečiųjų šalių ar pasirinktiniais įskiepiais, bet taip pat gali būti naudojamas kai kurių standartinių atsargų veikimui modifikuoti. Tai leidžia „Ansible Automation Platform“ lengvai ir sklandžiai integruoti su esamais įrankiais, kai automatizuojama vis sudėtingesnė IT aplinka.

Daugiau informacijos apie šiame įraše aptariamas temas ir kitus Ansible naudojimo aspektus rasite čia:

*Red Hat negarantuoja, kad čia pateiktas kodas yra teisingas. Visa medžiaga pateikiama be patvirtinimo, nebent būtų aiškiai nurodyta kitaip.

Šaltinis: www.habr.com

Добавить комментарий