AnvÀndning av inventeringsplugins frÄn Ansible Content Collections i Ansible Tower.

IT-miljöer blir allt mer komplexa. Under dessa förhĂ„llanden Ă€r det kritiskt för systemet för IT-automatisering att ha aktuell information om noder som finns i nĂ€tverket och ska hanteras. I Red Hat Ansible Automation Platform hanteras denna frĂ„ga genom sĂ„ kallade inventarier (inventory) – listor över hanterade noder.

AnvÀndning av inventeringsplugins frÄn Ansible Content Collections i Ansible Tower.

I sin enklaste form Àr inventariet en statisk fil. Detta Àr det perfekta alternativet nÀr du börjar arbeta med Ansible, men i takt med att automatiseringen expanderar, blir det otillrÀckligt.

Och hÀr Àr varför:

  1. Hur uppdaterar och underhĂ„ller man den fullstĂ€ndiga listan över kontrollerade noder nĂ€r nĂ„got stĂ€ndigt förĂ€ndras, nĂ€r arbetsbelastningar – och dĂ€rmed noderna dĂ€r de körs – hela tiden kommer och gĂ„r?
  2. Hur klassificerar man komponenter i IT-infrastrukturen för att noggrant vÀlja noder för att tillÀmpa vissa automatiseringar?

Svar pĂ„ bĂ„da dessa frĂ„gor ges av dynamiska inventarier (dynamic inventory) – ett skript eller en plugin som söker efter noder som Ă€r under automatisering och tar hjĂ€lp av kĂ€llan till sanningen (source of truth). Dessutom klassificerar det dynamiska inventariet automatiskt noder i grupper, vilket gör att du kan vĂ€lja mĂ„lsystem med större precision för att utföra olika Ansible-automatiseringar.

Inventari-plugins ger Ansible-anvÀndaren möjlighet att interagera med externa plattformar för dynamisk sökning av mÄl noder och anvÀnda dessa plattformar som kÀlla till sanningen vid skapandet av inventarier. Den standardiserade listan över kÀllor i Ansible inkluderar molnplattformar som AWS EC2, Google GCP och Microsoft Azure, och det finns ocksÄ mÄnga andra inventari-plugins för Ansible.

Ansible Tower levereras med en uppsÀttning inventari-plugins, som fungerar direkt "ur lÄdan" och förutom ovan nÀmnda molnplattformar erbjuder ocksÄ integration med VMware vCenter, Red Hat OpenStack Platform och Red Hat Satellite. För dessa plugins rÀcker det att tillhandahÄlla autentiseringsuppgifter för att ansluta till den mÄlplattform, efter vilket de kan anvÀndas som kÀlla för inventariedata i Ansible Tower.

Utöver de medföljande plugins frÄn Ansible Towers leverans finns det Àven andra inventari-plugins som stöds av Ansible-communityn. Med övergÄngen till Red Hat Ansible Content Collections blir dessa plugins en del av de relevanta samlingarna.

I det hÀr inlÀgget kommer vi att gÄ igenom hur man arbetar med inventarie-plugin för ServiceNow, en populÀr plattform för IT-tjÀnstehantering, dÀr kunder ofta lagrar information om alla sina enheter i CMDB. Dessutom kan CMDB innehÄlla anvÀndbar kontext för automatisering, sÄsom information om serverÀgare, service-nivÄer (production/non-production), installerade uppdateringar och underhÄllsfönster. Ansible-inventariepluginet kan arbeta med CMDB ServiceNow och ingÄr i kollektionen servicenow pÄ portalen galaxy.ansible.com.

Git-repository

För att anvÀnda inventariepluginet i Ansible Tower frÄn kollektion mÄste det anges som projektkÀlla. I Ansible Tower Àr ett projekt en integration med nÄgot versionshanteringssystem, som ett git-repo, som kan anvÀndas för att synkronisera inte bara automatiseringsspelplaner, utan Àven variabler och inventarielistor.

VÄrt repo Àr faktiskt vÀldigt enkelt:

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

Filen servicenow.yml innehÄller detaljer för inventariepluginet. I vÄrt fall anger vi bara tabellen i CMDB ServiceNow som vi vill anvÀnda. Vi specificerar ocksÄ de fÀlt som ska lÀggas till som nodvariabler, samt viss information om grupper som vi vill skapa.

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

Observera att hÀr specificeras ingen instans av ServiceNow som vi kommer att koppla till, och inga autentiseringsuppgifter anges för anslutningen. Allt detta kommer vi att konfigurera senare i Ansible Tower.

Filen collections/requirements.yml behövs sÄ att Ansible Tower kan ladda ner den nödvÀndiga kollektionen och dÀrmed fÄ den nödvÀndiga inventariepluginet. Annars skulle vi behöva installera och underhÄlla denna kollektion manuellt pÄ alla vÄra Ansible Tower-noder.

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

- name: servicenow.servicenow

Efter att vi har skickat denna konfiguration till versionshanteringssystemet kan vi skapa ett projekt i Ansible Tower som hÀnvisar till det relevanta arkivet. I exemplet nedan kopplas Ansible Tower till vÄrt arkiv pÄ github. Observera SCM URL:en, som gör att du kan ange ett konto för att ansluta till det privata arkivet, samt specificera en viss gren, etikett eller commit som ska hÀmtas.

AnvÀndning av inventeringsplugins frÄn Ansible Content Collections i Ansible Tower.

Skapar inloggningsuppgifter för ServiceNow

Som redan nÀmnts innehÄller inte konfigurationen i vÄrt arkiv nÄgra inloggningsuppgifter för att ansluta till ServiceNow och specificerar inte den ServiceNow-instans som vi kommer att kommunicera med. DÀrför kommer vi att skapa inloggningsuppgifter i Ansible Tower för att ange dessa uppgifter. Enligt dokumentationen för ServiceNow-inventarplugin, finns det ett antal miljövariabler som vi kan anvÀnda för att specificera anslutningsparametrarna, till exempel sÄ hÀr:

= anvÀndarnamn
    	ServiceNow-anvÀndarkonto, det bör ha rÀtt att lÀsa cmdb_ci_server (standard) eller tabellen som specificerats av SN_TABLE

    	set_via:
      	env:
      	- namn: SN_USERNAME

I detta fall, om miljövariabeln SN_USERNAME Àr angiven, kommer inventarpluginet att anvÀnda den som konto för att ansluta till ServiceNow.

Vi mÄste ocksÄ ange variablerna SN_INSTANCE och SN_PASSWORD.

Dock finns det inga sÄdana inloggningsuppgifter av denna typ i Ansible Tower, dÀr vi kan ange dessa uppgifter för ServiceNow. Men Ansible Tower lÄter oss definiera anpassade typer av inloggningsuppgifter, mer information om detta kan lÀsas i artikeln «Ansible Tower Feature Spotlight: Custom Credentials».

I vÄrt fall ser input-konfigurationen för de anpassade inloggningsuppgifterna för ServiceNow ut som följer:

fields:
  - id: SN_USERNAME
	typ: strÀng
	etikett: AnvÀndarnamn
  - id: SN_PASSWORD
	typ: strÀng
	etikett: Lösenord
	hemlig: true
  - id: SN_INSTANCE
	typ: strÀng
	etikett: Snowinstans
required:
  - SN_USERNAME
  - SN_PASSWORD
  - SN_INSTANCE

Dessa inloggningsuppgifter kommer att exponeras som miljövariabler med samma namn. Detta beskrivs i injector-konfigurationen:

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

SÄ vi har definierat den typ av inloggningsuppgift vi behöver, nu kan vi lÀgga till ServiceNow-kontot och ange instansen, anvÀndarnamnet och lösenordet pÄ följande sÀtt:

AnvÀndning av inventeringsplugins frÄn Ansible Content Collections i Ansible Tower.

Skapar inventarier

SÄ nu Àr vi redo att skapa en inventarie i Ansible Tower. Vi kallar den ServiceNow:

AnvÀndning av inventeringsplugins frÄn Ansible Content Collections i Ansible Tower.

Efter att ha skapat inventariet kan vi koppla en datakÀlla till det. HÀr anger vi projektet som vi skapade tidigare och anger sökvÀgen till vÄr inventariefil YAML i versionshanteringssystemet, i vÄrt fall servicenow.yml i projektets rotmapp. Dessutom mÄste vi koppla vÄrt ServiceNow-konto.

AnvÀndning av inventeringsplugins frÄn Ansible Content Collections i Ansible Tower.

För att kontrollera hur allt fungerar, lÄt oss försöka synkronisera med datakÀllan genom att klicka pÄ knappen «Sync all». Om allt Àr korrekt instÀllt bör noderna importeras till vÄrt inventarium:

AnvÀndning av inventeringsplugins frÄn Ansible Content Collections i Ansible Tower.

Observera att de nödvÀndiga grupperna ocksÄ har skapats.

Slutsats

I det hÀr inlÀgget har vi granskat hur man anvÀnder inventariplugin frÄn samlingar i Ansible Tower med fokus pÄ pluginet ServiceNow. Vi har ocksÄ sÀkert angett autentiseringsuppgifterna för att ansluta till vÄr ServiceNow-instans. Kopplingen av inventariplugin frÄn projektet fungerar inte bara med externa eller anpassade plugins, utan kan Àven tillÀmpas för att Àndra funktionen hos vissa inbyggda inventarier. Tack vare detta integreras Ansible Automation Platform smidigt med befintliga verktyg vid automatisering av IT-miljöer som blir alltmer komplexa.

Du kan hitta mer information om de Àmnen som behandlas i det hÀr inlÀgget samt andra aspekter av Ansible hÀr:

*Red Hat lÀmnar inga garantier för korrektheten hos den kod som anges hÀr. Allt material tillhandahÄlls utan support, om inte annat uttryckligen anges.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster