Používanie doplnkov inventára z kolekcií obsahu Ansible v Ansible Tower

IT prostredia sú čoraz zložitejšie. Za týchto podmienok je pre IT automatizačný systém dôležité, aby mal aktuálne informácie o uzloch, ktoré sú prítomné v sieti a podliehajú spracovaniu. V Red Hat Ansible Automation Platform je tento problém vyriešený prostredníctvom takzvaného inventára (inventár) – zoznamy spravovaných uzlov.

Používanie doplnkov inventára z kolekcií obsahu Ansible v Ansible Tower

Vo svojej najjednoduchšej forme je inventár statický súbor. To je ideálne, keď začnete pracovať s Ansible, ale ako sa automatizácia zvyšuje, stáva sa nedostatočnou.

A tu je dôvod, prečo:

  1. Ako aktualizujete a udržiavate úplný zoznam monitorovaných uzlov, keď sa veci neustále menia, keď pracovné zaťaženie – a následne uzly, na ktorých bežia – prichádzajú a odchádzajú?
  2. Ako klasifikovať komponenty IT infraštruktúry, aby bolo možné konkrétne vybrať uzly pre aplikáciu konkrétnej automatizácie?

Dynamický inventár poskytuje odpovede na obe tieto otázky (dynamický inventár) – skript alebo doplnok, ktorý hľadá uzly, ktoré sa majú automatizovať, s odkazom na zdroj pravdy. Okrem toho dynamický inventár automaticky klasifikuje uzly do skupín, aby ste mohli presnejšie vybrať cieľové systémy na vykonávanie konkrétnej automatizácie Ansible.

Zásuvné moduly inventára dať používateľovi Ansible možnosť prístupu k externým platformám na dynamické vyhľadávanie cieľových uzlov a použiť tieto platformy ako zdroj pravdy pri vytváraní inventára. Štandardný zoznam zdrojov v Ansible zahŕňa cloudové platformy AWS EC2, Google GCP a Microsoft Azure a existuje aj mnoho ďalších inventárnych doplnkov pre Ansible.

Ansible Tower prichádza s množstvom inventár pluginov, ktoré fungujú hneď po vybalení a okrem cloudových platforiem uvedených vyššie poskytujú 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, potom ich možno použiť ako zdroj údajov o inventári v Ansible Tower.

Okrem štandardných doplnkov, ktoré sú súčasťou Ansible Tower, existujú aj ďalšie doplnky inventára podporované komunitou Ansible. S prechodom na Red Hat Ansible Content Collections tieto pluginy sa začali zaraďovať do zodpovedajúcich kolekcií.

V tomto príspevku uvedieme príklad práce s doplnkom inventára pre ServiceNow, populárnu platformu na správu IT služieb, v ktorej zákazníci často ukladajú informácie o všetkých svojich zariadeniach v CMDB. Okrem toho môže CMDB obsahovať kontext, ktorý je užitočný pre automatizáciu, ako sú informácie o vlastníkoch servera, úrovniach služieb (výrobných/nevýrobných), nainštalovaných aktualizáciách a oknách údržby. Doplnok zásob Ansible môže pracovať s ServiceNow CMDB a je súčasťou kolekcie servis na portáli galaxy.ansible.com.

Úložisko Git

Ak chcete použiť doplnok inventára z kolekcie v Ansible Tower, musíte ho nastaviť ako zdroj projektu. V Ansible Tower je projekt integráciou s nejakým druhom systému riadenia verzií, ako je úložisko git, ktoré možno použiť na synchronizáciu nielen automatizačných príručiek, ale aj premenných a zoznamov inventára.

Naše úložisko je v skutočnosti veľmi jednoduché:

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

Súbor servicenow.yml obsahuje podrobnosti o inventári doplnkov. V našom prípade jednoducho špecifikujeme tabuľku v ServiceNow CMDB, ktorú chceme použiť. Nastavíme tiež polia, ktoré budú pridané ako premenné uzlov, 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: ''

Upozorňujeme, že toto nešpecifikuje inštanciu ServiceNow, ku ktorej sa akýmkoľvek spôsobom pripojíme, a nešpecifikuje žiadne poverenia na pripojenie. To všetko nakonfigurujeme neskôr v Ansible Tower.

Súbor collections/requirements.yml potrebné, aby si Ansible Tower mohla stiahnuť požadovanú kolekciu a tým získať požadovaný inventár plugin. V opačnom prípade by sme museli manuálne nainštalovať a udržiavať túto kolekciu na všetkých našich uzloch Ansible Tower.

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

- name: servicenow.servicenow

Keď túto konfiguráciu presunieme do správy verzií, môžeme vytvoriť projekt v Ansible Tower, ktorý odkazuje na príslušné úložisko. Nižšie uvedený príklad prepája Ansible Tower s naším úložiskom github. Venujte pozornosť adrese URL SCM: umožňuje vám zaregistrovať účet na pripojenie k súkromnému úložisku, ako aj zadať konkrétnu pobočku, značku alebo zaviazať sa na odhlásenie.

Používanie doplnkov inventára z kolekcií obsahu Ansible v Ansible Tower

Vytváranie poverení pre ServiceNow

Ako už bolo spomenuté, konfigurácia v našom úložisku neobsahuje poverenia na pripojenie k ServiceNow a nešpecifikuje inštanciu ServiceNow, s ktorou budeme komunikovať. Preto na nastavenie týchto údajov vytvoríme poverenia v Ansible Tower. Podľa Dokumentácia k inventáru modulu ServiceNow, existuje množstvo premenných prostredia, pomocou ktorých nastavíme parametre pripojenia, napríklad takto:

= 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

Ak je v tomto prípade nastavená premenná prostredia SN_USERNAME, doplnok inventára ju použije ako účet na pripojenie k službe ServiceNow.

Musíme tiež nastaviť premenné SN_INSTANCE a SN_PASSWORD.

V Ansible Tower však neexistujú žiadne poverenia tohto typu, kde by ste mohli špecifikovať tieto údaje pre ServiceNow. Ale Ansible Tower nám umožňuje definovať vlastné typy poverení, viac sa o tom dočítate v článku "Ansible Tower Feature Spotlight: Custom Credentials".

V našom prípade vyzerá konfigurácia vstupu pre vlastné poverenia pre ServiceNow takto:

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

Tieto poverenia budú vystavené ako premenné prostredia s rovnakým názvom. Toto je popísané v konfigurácii vstrekovača:

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

Takže sme definovali typ poverení, ktoré potrebujeme, teraz môžeme pridať účet ServiceNow a nastaviť inštanciu, používateľské meno a heslo takto:

Používanie doplnkov inventára z kolekcií obsahu Ansible v Ansible Tower

Vytvárame inventár

Takže teraz sme všetci pripravení vytvoriť inventár v Ansible Tower. Nazvime to ServiceNow:

Používanie doplnkov inventára z kolekcií obsahu Ansible v Ansible Tower

Po vytvorení inventára k nemu môžeme pripojiť zdroj údajov. Tu špecifikujeme projekt, ktorý sme vytvorili predtým, a zadáme cestu k nášmu YAML inventárnemu súboru v zdrojovom kontrolnom úložisku, v našom prípade je to servicenow.yml v koreňovom adresári projektu. Okrem toho musíte prepojiť svoj účet ServiceNow.

Používanie doplnkov inventára z kolekcií obsahu Ansible v Ansible Tower

Ak chcete skontrolovať, ako všetko funguje, skúsme synchronizovať so zdrojom údajov kliknutím na tlačidlo „Synchronizovať všetko“. Ak je všetko správne nakonfigurované, uzly by sa mali importovať do nášho inventára:

Používanie doplnkov inventára z kolekcií obsahu Ansible v Ansible Tower

Upozorňujeme, že skupiny, ktoré potrebujeme, boli tiež vytvorené.

Záver

V tomto príspevku sme sa pozreli na to, ako používať doplnky inventára z kolekcií v Ansible Tower pomocou doplnku ServiceNow ako príkladu. Tiež sme bezpečne zaregistrovali poverenia na pripojenie k našej inštancii ServiceNow. Prepojenie zásuvného modulu inventára z projektu funguje nielen s doplnkami tretích strán alebo vlastnými zásuvnými modulmi, ale možno ho použiť aj na úpravu fungovania niektorých štandardných súpisov. Vďaka tomu sa Ansible Automation Platform ľahko a bezproblémovo integruje s existujúcimi nástrojmi pri automatizácii čoraz zložitejších IT prostredí.

Viac informácií o témach diskutovaných v tomto príspevku, ako aj o ďalších aspektoch používania Ansible, nájdete tu:

*Red Hat neručí za správnosť tu uvedeného kódu. Všetky materiály sú poskytované bez podpory, pokiaľ nie je výslovne uvedené inak.

Zdroj: hab.com

Pridať komentár