Používanie inventárnych pluginov z Ansible Content Collections v Ansible Tower

IT prostredia sa stávajú čoraz zložitejšími. V týchto podmienkach je pre systém IT automatizácie kriticky dôležité mať aktuálne informácie o uzloch, ktoré sú prítomné v sieti a podliehajú spracovaniu. V Red Hat Ansible Automation Platform sa táto otázka rieši prostredníctvom takzvaných inventárov (inventory) – zoznamy spravovaných uzlov.

Používanie inventárnych pluginov z Ansible Content Collections v Ansible Tower

V svojej najjednoduchšej forme inventár predstavuje statický súbor. To je ideálny variant, keď začínate pracovať s Ansible, ale s rozširovaním automatizácie to prestáva stačiť.

A tu je dôvod:

  1. Ako aktualizovať a udržiavať úplný zoznam kontrolovaných uzlov, keď sa stále niečo mení, keď pracovné zaťaženia - a za nimi aj uzly, na ktorých bežia - sa neustále objavujú a miznú?
  2. Ako klasifikovať komponenty IT infraštruktúry, aby ste presne vyberali uzly na uplatnenie danej automatizácie?

Odpovede na obe tieto otázky poskytuje dynamický inventár (dynamic inventory) – skript alebo plugin, ktorý hľadá podliehajúce automatizácii uzly tak, že sa obracia na zdroj pravdy (source of truth). Navyše, dynamický inventár automaticky klasifikuje uzly do skupín, aby ste mohli presnejšie vyberať cieľové systémy na vykonanie danej automatizácie Ansible.

Inventárne pluginy poskytujú používateľovi Ansible možnosť obracať sa na externé platformy na dynamické hľadanie cieľových uzlov a používať tieto platformy ako zdroj pravdy pri tvorbe inventára. Štandardný zoznam zdrojov v Ansible zahŕňa cloudové platformy AWS EC2, Google GCP a Microsoft Azure, pre Ansible existuje aj množstvo ďalších inventárnych pluginov.

Ansible Tower prichádza spolu s radom inventárnych pluginov, ktoré fungujú priamo „z krabice“ a okrem vyššie uvedených cloudových platforiem zaisťujú integráciu s VMware vCenter, Red Hat OpenStack Platform a Red Hat Satellite. Pre tieto pluginy stačí poskytnúť prihlasovacie údaje na pripojenie k cieľovej platforme, po čom ich môžete používať ako zdroj údajov o inventári v Ansible Tower.

Okrem štandardných pluginov dodávaných s Ansible Tower existujú aj iné inventárne pluginy, ktoré podporujú komunity Ansible. S prechodom na Red Hat Ansible Content Collections sa tieto pluginy začali zahrňovať do príslušných kolekcií.

V tomto príspevku si ukážeme, ako pracovať s inventárnym pluginom pre ServiceNow, populárnu platformu na správu IT služieb, v ktorej si zákazníci často uchovávajú informácie o všetkých svojich zariadeniach. Okrem toho môže CMDB obsahovať užitočný kontext pre automatizáciu, napríklad údaje o vlastníkoch serverov, úrovniach služieb (produkčné/neprodukčné), nainštalovaných aktualizáciách a oknách technického servisu. Inventárny plugin Ansible dokáže pracovať s CMDB ServiceNow a patrí do zbierky. servicenow na portáli galaxy.ansible.com.

Git-repozitár

Aby ste mohli v Ansible Tower používať inventárny plugin zo zbierky, musíte ho nastaviť ako zdroj projektu. V Ansible Tower je projekt integrácia s nejakým systémom správy verzií, ako je repozitár git, ktorý môžete použiť na synchronizáciu nielen playbookov automatizácie, ale aj premenných, ako aj zoznamov inventára.

Náš repozitár je v skutočnosti veľmi jednoduchý:

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

Súbor servicenow.yml obsahuje podrobnosti pre inventárny plugin. V našom prípade jednoducho uvádzame tabuľku v CMDB ServiceNow, ktorú chceme použiť. Rovnako definujeme polia, ktoré budú pridané ako premenné uzla, plus určité informácie o skupinách, ktoré chceme vytvoriť.

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

Všimnite si, že tu nie je špecifikovaný inštancia ServiceNow, ku ktorej sa pripojíme, a nie sú uvedené žiadne prihlasovacie údaje na pripojenie. Toto všetko nastavíme neskôr v Ansible Tower.

Súbor collections/requirements.yml je potrebný, aby Ansible Tower mohol stiahnuť potrebnú zbierku a získať tak potrebný inventárny plugin. Inak by sme museli ručne inštalovať a udržiavať túto zbierku na všetkých našich uzloch Ansible Tower.

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

- name: servicenow.servicenow

Po odoslaní tejto konfigurácie do systému správy verzií môžete v Ansible Tower vytvárať projekt, ktorý odkazuje na príslušný repozitár. V nižšie uvedenom príklade sa Ansible Tower spojí s naším repozitárom na GitHube. Všimnite si SCM URL: umožňuje zadať účet na pripojenie k súkromnému repozitáru a tiež špecifikovať konkrétnu vetvu, značku alebo potvrdenie pre extrakciu.

Používanie inventárnych pluginov z Ansible Content Collections v Ansible Tower

Vytvárame poverenia pre ServiceNow

Ako už bolo spomenuté, konfigurácia v našom repozitári neobsahuje poverenia na pripojenie k ServiceNow a nespresňuje inštanciu ServiceNow, s ktorou budeme komunikovať. Preto na určenie týchto údajov vytvoríme poverenia v Ansible Tower. Podľa dokumentácie inventárneho plug-inu ServiceNow, existuje celý rad premenných prostredia, pomocou ktorých určíme parametre pripojenia, napríklad takto:

= username
    	Účet používateľa ServiceNow, mal by mať práva na čítanie cmdb_ci_server (predvolene) alebo tabuľky určené SN_TABLE

    	set_via:
      	env:
      	- name: SN_USERNAME

V tomto prípade, ak je premenná prostredia SN_USERNAME zadaná, plug-in inventára ju použije ako účet na pripojenie k ServiceNow.

Ešte musíme zadať premenné SN_INSTANCE a SN_PASSWORD.

Avšak v Ansible Tower neexistujú poverenia tohto typu, kde by sme mohli zadať tieto údaje pre ServiceNow. Napriek tomu Ansible Tower nám umožňuje definovať prispôsobené typy poverení, o čom sa môžete podrobnejšie dočítať v článku „Ansible Tower Feature Spotlight: Custom Credentials“.

V našom prípade vyzerá vstupná konfigurácia pre prispôsobené poverenia pre ServiceNow nasledovne:

fields:
  - id: SN_USERNAME
	type: string
	label: Používateľské meno
  - id: SN_PASSWORD
	type: string
	label: Heslo
	secret: true
  - id: SN_INSTANCE
	type: string
	label: Inštancia Snow
required:
  - SN_USERNAME
  - SN_PASSWORD
  - SN_INSTANCE

Tieto poverenia budú exportované ako premenné prostredia so rovnakým názvom. To je popísané v konfigurácii injektora:

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

Takže sme definovali potrebný typ poverenia, teraz môžeme pridať účet ServiceNow a zadať inštanciu, používateľské meno a heslo, takto:

Používanie inventárnych pluginov z Ansible Content Collections v Ansible Tower

Vytvárame inventár

Takže teraz máme všetko pripravené na vytvorenie inventára v Ansible Tower. Nazvime ho ServiceNow:

Používanie inventárnych pluginov z Ansible Content Collections v Ansible Tower

Po vytvorení inventára môžeme pripojiť zdroj dát. Tu uvedieme projekt, ktorý sme vytvorili predtým, a zadáme cestu k nášmu inventárnemu YAML súboru v úložisku systému správy verzií, v našom prípade je to servicenow.yml v koreňovom adresári projektu. Okrem toho je potrebné priradiť aj účet ServiceNow.

Používanie inventárnych pluginov z Ansible Content Collections v Ansible Tower

Aby sme overili, ako všetko funguje, skúsime synchronizovať so zdrojom dát, stlačením tlačidla „Synchronizovať všetko“. Ak je všetko správne nastavené, uzly by sa mali importovať do nášho inventára:

Používanie inventárnych pluginov z Ansible Content Collections v Ansible Tower

Všimnite si, že potrebné skupiny sa tiež vytvorili.

Záver

V tomto príspevku sme sa pozreli na to, ako používať inventárne pluginy z kolekcií v Ansible Tower na príklade pluginu ServiceNow. Taktiež sme bezpečne nastavili poverenia na pripojenie k nášmu inštancie ServiceNow. Prepojenie inventárneho pluginu z projektu funguje nielen so sprístupnenými alebo vlastnými pluginmi, ale môže sa tiež použiť na modifikáciu funkčnosti niektorých predvolených inventárov. Vďaka tomu sa Ansible Automation Platform ľahko a bezproblémovo integruje s existujúcimi nástrojmi pri automatizácii IT prostredí, ktoré sú čoraz zložitejšie.

Ďalšie informácie k témam uvedeným v tomto príspevku, ako aj o iných aspektoch použitia Ansible, môžete nájsť tu:

*Red Hat neposkytuje žiadne záruky správnosti uvedeného kódu. Všetky materiály sú poskytované bez podpory, pokiaľ nie je výslovne uvedené inak.

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster