Az Ansible Towerben található Ansible Content Collections készletbővítményeinek használata

Az informatikai környezetek egyre összetettebbek. Ilyen körülmények között az informatikai automatizálási rendszer számára kritikus fontosságú, hogy naprakész információkkal rendelkezzen a hálózatban található és feldolgozásnak alávetett csomópontokról. A Red Hat Ansible Automation Platformban ezt a problémát az úgynevezett leltárral (leltár) – a felügyelt csomópontok listája.

Az Ansible Towerben található Ansible Content Collections készletbővítményeinek használata

A legegyszerűbb formájában a leltár egy statikus fájl. Ez ideális, ha elkezd dolgozni az Ansible-vel, de az automatizálás növekedésével nem lesz elegendő.

És miért:

  1. Hogyan frissítheti és karbantarthatja a figyelt csomópontok teljes listáját, amikor a dolgok folyamatosan változnak, amikor a munkaterhelések – és ezt követően a csomópontok, amelyeken futnak – jönnek és mennek?
  2. Hogyan lehet osztályozni az IT-infrastruktúra összetevőit annak érdekében, hogy konkrétan válasszuk ki a csomópontokat egy adott automatizálás alkalmazásához?

A dinamikus leltár mindkét kérdésre választ ad (dinamikus leltár) – egy szkript vagy bővítmény, amely az igazság forrására hivatkozva keresi az automatizálandó csomópontokat. Ezenkívül a dinamikus leltár automatikusan csoportokba sorolja a csomópontokat, így pontosabban választhatja ki a célrendszereket az adott Ansible automatizálás végrehajtásához.

Inventory pluginek lehetővé teszi az Ansible-felhasználó számára, hogy hozzáférjen külső platformokhoz a célcsomópontok dinamikus kereséséhez, és ezeket a platformokat igazságforrásként használja fel leltár létrehozása során. Az Ansible szabványos forráslistája tartalmazza az AWS EC2 felhőplatformokat, a Google GCP-t és a Microsoft Azure-t, valamint számos más készletbővítményt is tartalmaz az Ansible.

Az Ansible Tower számos kiegészítővel rendelkezik készletbővítmények, amelyek azonnal működnek a dobozból, és a fent felsorolt ​​felhőplatformokon kívül integrációt biztosítanak a VMware vCenterrel, a Red Hat OpenStack Platformmal és a Red Hat Satellite-tal. Ezekhez a beépülő modulokhoz csak hitelesítő adatokat kell megadnia a célplatformhoz való csatlakozáshoz, amely után felhasználhatók készletadatok forrásaként az Ansible Towerben.

Az Ansible Tower szabványos bővítményein kívül az Ansible közösség más készletbővítményeket is támogat. Az áttéréssel Red Hat Ansible tartalomgyűjtemények ezek a beépülő modulok bekerültek a megfelelő gyűjteményekbe.

Ebben a bejegyzésben példát veszünk a ServiceNow készletbővítményének használatára, egy népszerű IT-szolgáltatáskezelési platformra, amelyben az ügyfelek gyakran tárolnak információkat az összes eszközükről a CMDB-ben. Ezenkívül a CMDB tartalmazhat az automatizáláshoz hasznos kontextust, például információkat a kiszolgálók tulajdonosairól, a szolgáltatási szintekről (éles/nem gyártás), a telepített frissítésekről és a karbantartási ablakokról. Az Ansible inventory beépülő modul együttműködhet a ServiceNow CMDB-vel, és a gyűjtemény része szerviz a portálon galaxy.ansible.com.

Git repository

Az Ansible Tower gyűjteményéből származó készletbővítmény használatához azt be kell állítani projektforrásként. Az Ansible Towerben a projekt egy olyan integrációt jelent valamilyen verzióvezérlő rendszerrel, mint például egy git repository, amellyel nem csak az automatizálási játékkönyveket, hanem változókat és leltárlistákat is lehet szinkronizálni.

A mi tárhelyünk valójában nagyon egyszerű:

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

A servicenow.yml fájl a beépülő modul leltárának részleteit tartalmazza. Esetünkben egyszerűen megadjuk azt a táblát a ServiceNow CMDB-ben, amelyet használni szeretnénk. Beállítjuk a csomóponti változókként hozzáadandó mezőket, valamint bizonyos információkat a létrehozni kívánt csoportokról.

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

Felhívjuk figyelmét, hogy ez semmilyen módon nem határozza meg azt a ServiceNow-példányt, amelyhez csatlakozni fogunk, és nem ad meg semmilyen hitelesítési adatot a csatlakozáshoz. Mindezt később az Ansible Towerben konfiguráljuk.

Fájlgyűjtemények/requirements.yml szükséges ahhoz, hogy az Ansible Tower letölthesse a szükséges gyűjteményt, és ezáltal megszerezhesse a szükséges készletbővítményt. Ellenkező esetben manuálisan kellene telepítenünk és karbantartanunk ezt a gyűjteményt az összes Ansible Tower csomópontunkon.

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

- name: servicenow.servicenow

Miután ezt a konfigurációt áthelyeztük a verzióvezérlésre, létrehozhatunk egy projektet az Ansible Towerben, amely hivatkozik a megfelelő tárolóra. Az alábbi példa az Ansible Tower-t a github-tárhelyünkhöz kapcsolja. Ügyeljen az SCM URL-re: lehetővé teszi fiók regisztrálását egy privát adattárhoz való csatlakozáshoz, valamint egy adott ág, címke vagy kijelentkezési kötelezettség megadását.

Az Ansible Towerben található Ansible Content Collections készletbővítményeinek használata

Hitelesítő adatok létrehozása a ServiceNow számára

Amint már említettük, a tárhelyünk konfigurációja nem tartalmaz hitelesítő adatokat a ServiceNow-hoz való csatlakozáshoz, és nem határozza meg azt a ServiceNow-példányt, amellyel kommunikálni fogunk. Ezért az adatok beállításához hitelesítő adatokat hozunk létre az Ansible Towerben. Alapján A ServiceNow leltárbővítmény dokumentációja, számos környezeti változó van, amelyekkel beállítjuk a kapcsolat paramétereit, például így:

= 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

Ebben az esetben, ha az SN_USERNAME környezeti változó be van állítva, a készletbővítmény fiókként fogja használni a ServiceNow-hoz való csatlakozáshoz.

Be kell állítanunk az SN_INSTANCE és az SN_PASSWORD változókat is.

Az Ansible Towerben azonban nincsenek ilyen típusú hitelesítő adatok, amelyekben megadhatná ezeket az adatokat a ServiceNow számára. De az Ansible Tower lehetővé teszi számunkra, hogy meghatározzuk egyéni hitelesítő adatok típusai, erről a cikkben olvashat bővebben "Ansible Tower Feature Spotlight: Egyedi hitelesítő adatok".

A mi esetünkben a ServiceNow egyéni hitelesítő adatainak beviteli konfigurációja így néz ki:

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

Ezek a hitelesítő adatok azonos nevű környezeti változókként jelennek meg. Ez az injektor konfigurációjában van leírva:

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

Tehát meghatároztuk a szükséges hitelesítő adattípust, most hozzáadhatunk egy ServiceNow-fiókot, és beállíthatjuk a példányt, a felhasználónevet és a jelszót, így:

Az Ansible Towerben található Ansible Content Collections készletbővítményeinek használata

Leltárt készítünk

Tehát most mindannyian készen állunk egy leltár létrehozására az Ansible Towerben. Nevezzük ServiceNow-nak:

Az Ansible Towerben található Ansible Content Collections készletbővítményeinek használata

A leltár létrehozása után adatforrást tudunk csatolni hozzá. Itt adjuk meg a korábban létrehozott projektet, és adjuk meg a YAML leltárfájlunk elérési útját a forrásvezérlő lerakatában, esetünkben ez servicenow.yml a projektgyökérben. Ezenkívül össze kell kapcsolnia ServiceNow-fiókját.

Az Ansible Towerben található Ansible Content Collections készletbővítményeinek használata

Ha ellenőrizni szeretné, hogyan működik minden, próbáljunk meg szinkronizálni az adatforrással az „Összes szinkronizálása” gombra kattintva. Ha minden megfelelően van beállítva, akkor a csomópontokat importálni kell a leltárunkba:

Az Ansible Towerben található Ansible Content Collections készletbővítményeinek használata

Felhívjuk figyelmét, hogy a szükséges csoportokat is létrehoztuk.

Következtetés

Ebben a bejegyzésben megvizsgáltuk, hogyan használhatjuk az Ansible Tower gyűjteményeiből származó készletbővítményeket a ServiceNow beépülő modul példájával. Ezenkívül biztonságosan regisztráltunk hitelesítő adatokat a ServiceNow-példányunkhoz való csatlakozáshoz. A projektből származó leltárbővítmény összekapcsolása nem csak harmadik féltől származó vagy egyéni beépülő modulokkal működik, hanem bizonyos szabványos készletek működésének módosítására is használható. Ezáltal az Ansible Automation Platform egyszerűen és zökkenőmentesen integrálható a meglévő eszközökkel az egyre bonyolultabb IT-környezetek automatizálása során.

Az ebben a bejegyzésben tárgyalt témákról, valamint az Ansible használatának egyéb vonatkozásairól itt talál további információt:

*A Red Hat nem garantálja, hogy az itt található kód helyes. Valamennyi anyagot nem jóváhagyás alapján bocsátunk rendelkezésre, kivéve, ha kifejezetten másként szerepel.

Forrás: will.com

Hozzászólás