Použití zásuvných modulů inventáře z Ansible Content Collections v Ansible Tower

IT prostředí jsou stále složitější. Za těchto podmínek je pro automatizační systém IT zásadní mít aktuální informace o uzlech, které jsou přítomny v síti a podléhají zpracování. V Red Hat Ansible Automation Platform je tento problém vyřešen prostřednictvím tzv. inventáře (inventář) – seznamy spravovaných uzlů.

Použití zásuvných modulů inventáře z Ansible Content Collections v Ansible Tower

Ve své nejjednodušší podobě je inventář statický soubor. To je ideální, když začínáte pracovat s Ansible, ale jak se automatizace zvyšuje, stává se nedostatečným.

A proč:

  1. Jak aktualizujete a udržujete úplný seznam monitorovaných uzlů, když se věci neustále mění, když pracovní zátěž – a následně uzly, na kterých běží – přicházejí a odcházejí?
  2. Jak klasifikovat komponenty IT infrastruktury, aby bylo možné konkrétně vybrat uzly pro aplikaci konkrétní automatizace?

Dynamický inventář poskytuje odpovědi na obě tyto otázky (dynamický inventář) – skript nebo plugin, který hledá uzly, které mají být automatizovány, odkazující na zdroj pravdy. Kromě toho dynamický inventář automaticky klasifikuje uzly do skupin, takže můžete přesněji vybrat cílové systémy pro provádění konkrétní automatizace Ansible.

Zásuvné moduly pro inventář dát uživateli Ansible možnost přístupu k externím platformám pro dynamické vyhledávání cílových uzlů a použití těchto platforem jako zdroje pravdy při vytváření inventáře. Standardní seznam zdrojů v Ansible zahrnuje cloudové platformy AWS EC2, Google GCP a Microsoft Azure a existuje také mnoho dalších inventárních pluginů pro Ansible.

Ansible Tower přichází s řadou inventární pluginy, které fungují hned po vybalení a kromě výše uvedených cloudových platforem poskytují integraci s VMware vCenter, Red Hat OpenStack Platform a Red Hat Satellite. Pro tyto pluginy stačí poskytnout přihlašovací údaje pro připojení k cílové platformě, poté je lze použít jako zdroj dat o inventáři v Ansible Tower.

Kromě standardních pluginů, které jsou součástí Ansible Tower, existují další pluginy pro inventář podporované komunitou Ansible. S přechodem na Red Hat Ansible Content Collections tyto pluginy začaly být zahrnuty do odpovídajících kolekcí.

V tomto příspěvku si vezmeme příklad práce s pluginem inventáře pro ServiceNow, populární platformu pro správu IT služeb, ve které zákazníci často ukládají informace o všech svých zařízeních v CMDB. Kromě toho může CMDB obsahovat kontext, který je užitečný pro automatizaci, jako jsou informace o vlastníkech serverů, úrovních služeb (výrobní/nevýrobní), instalovaných aktualizacích a oknech údržby. Plugin inventáře Ansible může pracovat s ServiceNow CMDB a je součástí kolekce služebník na portálu galaxy.ansible.com.

Git úložiště

Chcete-li použít plugin inventáře z kolekce v Ansible Tower, musí být nastaven jako zdroj projektu. V Ansible Tower je projekt integrací s nějakým druhem systému správy verzí, jako je úložiště git, které lze použít k synchronizaci nejen automatizačních sešitů, ale také proměnných a seznamů inventáře.

Náš repozitář je ve skutečnosti velmi jednoduchý:

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

Soubor servicenow.yml obsahuje podrobnosti o inventáři pluginů. V našem případě jednoduše specifikujeme tabulku v ServiceNow CMDB, kterou chceme použít. Nastavíme také pole, která budou přidána jako proměnné uzlů, plus určité informace o skupinách, které chceme vytvořit.

$ 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 neurčuje instanci ServiceNow, ke které se jakýmkoli způsobem připojíme, a neurčuje žádné přihlašovací údaje pro připojení. To vše nakonfigurujeme později v Ansible Tower.

Soubor collections/requirements.yml potřebné k tomu, aby si Ansible Tower mohla stáhnout požadovanou sbírku a získat tak požadovaný inventární plugin. Jinak bychom museli ručně nainstalovat a udržovat tuto kolekci na všech našich uzlech Ansible Tower.

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

- name: servicenow.servicenow

Jakmile tuto konfiguraci přesuneme do správy verzí, můžeme vytvořit projekt v Ansible Tower, který odkazuje na odpovídající úložiště. Níže uvedený příklad propojuje Ansible Tower s naším úložištěm github. Věnujte pozornost adrese URL SCM: umožňuje vám zaregistrovat účet pro připojení k soukromému úložišti a také zadat konkrétní pobočku, značku nebo potvrzení k odhlášení.

Použití zásuvných modulů inventáře z Ansible Content Collections v Ansible Tower

Vytváření přihlašovacích údajů pro ServiceNow

Jak již bylo zmíněno, konfigurace v našem úložišti neobsahuje přihlašovací údaje pro připojení k ServiceNow a neurčuje instanci ServiceNow, se kterou budeme komunikovat. Proto pro nastavení těchto údajů vytvoříme přihlašovací údaje v Ansible Tower. Podle Dokumentace k inventárnímu pluginu ServiceNow, existuje řada proměnných prostředí, pomocí kterých nastavíme parametry připojení, napří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

V tomto případě, pokud je nastavena proměnná prostředí SN_USERNAME, plugin inventáře ji použije jako účet pro připojení k ServiceNow.

Musíme také nastavit proměnné SN_INSTANCE a SN_PASSWORD.

V Ansible Tower však nejsou žádné přihlašovací údaje tohoto typu, kde byste mohli tato data zadat pro ServiceNow. Ale Ansible Tower nám umožňuje definovat vlastní typy přihlašovacích údajů, více si o tom můžete přečíst v článku "Ansible Tower Feature Spotlight: Custom Credentials".

V našem případě konfigurace vstupu pro vlastní přihlašovací údaje pro ServiceNow vypadá 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

Tyto přihlašovací údaje budou vystaveny jako proměnné prostředí se stejným názvem. To je popsáno v konfiguraci vstřikovače:

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

Takže jsme definovali typ pověření, který potřebujeme, nyní můžeme přidat účet ServiceNow a nastavit instanci, uživatelské jméno a heslo takto:

Použití zásuvných modulů inventáře z Ansible Content Collections v Ansible Tower

Vytváříme inventář

Nyní jsme tedy všichni připraveni vytvořit inventář v Ansible Tower. Říkejme tomu ServiceNow:

Použití zásuvných modulů inventáře z Ansible Content Collections v Ansible Tower

Po vytvoření inventáře k němu můžeme připojit zdroj dat. Zde specifikujeme projekt, který jsme vytvořili dříve, a zadáme cestu k našemu inventárnímu souboru YAML v úložišti kontroly zdroje, v našem případě je to servicenow.yml v kořenu projektu. Kromě toho musíte propojit svůj účet ServiceNow.

Použití zásuvných modulů inventáře z Ansible Content Collections v Ansible Tower

Chcete-li zkontrolovat, jak vše funguje, zkusme synchronizaci se zdrojem dat kliknutím na tlačítko „Synchronizovat vše“. Pokud je vše správně nakonfigurováno, měly by být uzly importovány do našeho inventáře:

Použití zásuvných modulů inventáře z Ansible Content Collections v Ansible Tower

Upozorňujeme, že skupiny, které potřebujeme, byly také vytvořeny.

Závěr

V tomto příspěvku jsme se podívali na to, jak používat pluginy inventáře z kolekcí v Ansible Tower pomocí pluginu ServiceNow jako příkladu. Také jsme bezpečně zaregistrovali přihlašovací údaje pro připojení k naší instanci ServiceNow. Propojení inventárního pluginu z projektu funguje nejen s pluginy třetích stran nebo vlastními pluginy, ale lze jej také použít k úpravě provozu některých standardních inventářů. Díky tomu se Ansible Automation Platform snadno a bezproblémově integruje se stávajícími nástroji při automatizaci stále složitějších IT prostředí.

Více informací o tématech diskutovaných v tomto příspěvku, stejně jako o dalších aspektech používání Ansible, naleznete zde:

*Red Hat neručí za správnost zde uvedeného kódu. Všechny materiály jsou poskytovány bez podpory, pokud není výslovně uvedeno jinak.

Zdroj: www.habr.com

Přidat komentář