ProHoster > blog > administratie > Inventarisplug-ins van Ansible Content Collections gebruiken in Ansible Tower
Inventarisplug-ins van Ansible Content Collections gebruiken in Ansible Tower
IT-omgevingen worden steeds complexer. Onder deze omstandigheden is het van cruciaal belang dat het IT-automatiseringssysteem over actuele informatie beschikt over de knooppunten die aanwezig zijn in het netwerk en die worden verwerkt. In het Red Hat Ansible Automation Platform wordt dit probleem opgelost via de zogenaamde inventory (inventaris) – lijsten met beheerde knooppunten.
In de eenvoudigste vorm is inventaris een statisch bestand. Dit is ideaal als je met Ansible gaat werken, maar naarmate de automatisering toeneemt, wordt dit onvoldoende.
En hier is waarom:
Hoe update en onderhoud je een volledige lijst met bewaakte knooppunten wanneer zaken voortdurend veranderen, wanneer werklasten (en vervolgens de knooppunten waarop ze draaien) komen en gaan?
Hoe kunnen de componenten van de IT-infrastructuur worden geclassificeerd om specifiek knooppunten te selecteren voor het toepassen van een bepaalde automatisering?
Dynamische inventarisatie biedt antwoorden op beide vragen (dynamische inventaris) – een script of plug-in die zoekt naar knooppunten die moeten worden geautomatiseerd, verwijzend naar de bron van de waarheid. Bovendien classificeert de dynamische inventaris knooppunten automatisch in groepen, zodat u nauwkeuriger doelsystemen kunt selecteren voor het uitvoeren van specifieke Ansible-automatisering.
Voorraadplug-ins geef de Ansible-gebruiker de mogelijkheid om toegang te krijgen tot externe platforms om dynamisch naar doelknooppunten te zoeken en deze platforms te gebruiken als een bron van waarheid bij het maken van een inventaris. De standaardlijst met bronnen in Ansible omvat cloudplatforms AWS EC2, Google GCP en Microsoft Azure, en er zijn ook veel andere inventarisplug-ins voor Ansible.
Ansible Tower wordt geleverd met een aantal inventaris plug-ins, die direct uit de doos werken en, naast de hierboven genoemde cloudplatforms, integratie bieden met VMware vCenter, Red Hat OpenStack Platform en Red Hat Satellite. Voor deze plug-ins hoeft u alleen maar inloggegevens op te geven om verbinding te maken met het doelplatform, waarna ze kunnen worden gebruikt als bron van inventarisgegevens in Ansible Tower.
Naast de standaard plug-ins die bij Ansible Tower worden geleverd, worden er nog andere inventarisplug-ins ondersteund door de Ansible-gemeenschap. Met de overgang naar Red Hat Ansible-inhoudscollecties deze plug-ins werden opgenomen in de overeenkomstige collecties.
In dit bericht nemen we een voorbeeld van het werken met de inventarisplug-in voor ServiceNow, een populair IT-servicebeheerplatform waarin klanten vaak informatie over al hun apparaten opslaan in de CMDB. Bovendien kan de CMDB context bevatten die nuttig is voor automatisering, zoals informatie over servereigenaren, serviceniveaus (productie/niet-productie), geïnstalleerde updates en onderhoudsvensters. De Ansible inventarisplug-in kan werken met ServiceNow CMDB en maakt deel uit van de collectie service nu op de portal galaxy.ansible.com.
Git-opslagplaats
Om een inventarisplug-in uit een collectie in Ansible Tower te gebruiken, moet deze als projectbron worden ingesteld. In Ansible Tower is een project een integratie met een soort versiebeheersysteem, zoals een git-repository, dat kan worden gebruikt om niet alleen automatiseringsplaybooks te synchroniseren, maar ook variabelen en inventarislijsten.
Het servicenow.yml-bestand bevat details voor de plug-ininventaris. In ons geval specificeren we eenvoudigweg de tabel in de ServiceNow CMDB die we willen gebruiken. We stellen ook de velden in die worden toegevoegd als knooppuntvariabelen, plus bepaalde informatie over de groepen die we willen maken.
Houd er rekening mee dat dit niet de ServiceNow-instantie specificeert waarmee we op welke manier dan ook verbinding zullen maken, en dat er geen inloggegevens voor verbinding worden gespecificeerd. We zullen dit allemaal later configureren in Ansible Tower.
Bestandsverzamelingen/vereisten.yml nodig zodat Ansible Tower de vereiste collectie kan downloaden en daarmee de vereiste inventarisplug-in kan verkrijgen. Anders zouden we deze verzameling handmatig op al onze Ansible Tower-knooppunten moeten installeren en onderhouden.
Zodra we deze configuratie naar versiebeheer hebben gepusht, kunnen we een project in Ansible Tower maken dat verwijst naar de overeenkomstige repository. Het onderstaande voorbeeld koppelt Ansible Tower aan onze github-repository. Let op de SCM-URL: hiermee kunt u een account registreren om verbinding te maken met een privérepository, en een specifieke branch, tag of commit specificeren om uit te checken.
Inloggegevens voor ServiceNow aanmaken
Zoals gezegd bevat de configuratie in onze repository geen inloggegevens om verbinding te maken met ServiceNow en wordt niet gespecificeerd met welke ServiceNow-instantie we zullen communiceren. Om deze gegevens in te stellen, zullen we daarom inloggegevens aanmaken in Ansible Tower. Volgens Documentatie voor de ServiceNow-inventarisplug-in, zijn er een aantal omgevingsvariabelen waarmee we de verbindingsparameters bijvoorbeeld als volgt zullen instellen:
= 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
Als in dit geval de omgevingsvariabele SN_USERNAME is ingesteld, gebruikt de inventarisplug-in deze als account om verbinding te maken met ServiceNow.
We moeten ook de variabelen SN_INSTANCE en SN_PASSWORD instellen.
We hebben dus het inloggegevenstype gedefinieerd dat we nodig hebben, nu kunnen we een ServiceNow-account toevoegen en de instantie, gebruikersnaam en wachtwoord als volgt instellen:
Wij creëren inventaris
Dus nu zijn we allemaal klaar om een inventaris te maken in Ansible Tower. Laten we het ServiceNow noemen:
Nadat we de inventaris hebben gemaakt, kunnen we er een gegevensbron aan koppelen. Hier specificeren we het project dat we eerder hebben gemaakt en voeren we het pad in naar ons YAML-inventarisbestand in de bronbeheerrepository. In ons geval is dit servicenow.yml in de projectroot. Daarnaast moet u uw ServiceNow-account koppelen.
Om te controleren hoe alles werkt, proberen we te synchroniseren met de gegevensbron door op de knop "Alles synchroniseren" te klikken. Als alles correct is geconfigureerd, moeten de knooppunten in onze inventaris worden geïmporteerd:
Houd er rekening mee dat de groepen die we nodig hebben ook zijn aangemaakt.
Conclusie
In dit bericht hebben we gekeken hoe u voorraadplug-ins uit collecties in Ansible Tower kunt gebruiken met de ServiceNow-plug-in als voorbeeld. We hebben ook veilig de inloggegevens geregistreerd om verbinding te maken met onze ServiceNow-instantie. Het koppelen van een inventarisplug-in vanuit een project werkt niet alleen met plug-ins van derden of aangepaste plug-ins, maar kan ook worden gebruikt om de werking van sommige standaardinventarissen te wijzigen. Hierdoor kan Ansible Automation Platform eenvoudig en naadloos worden geïntegreerd met bestaande tools bij het automatiseren van steeds complexere IT-omgevingen.
Meer informatie over de onderwerpen die in dit bericht worden besproken, evenals andere aspecten van het gebruik van Ansible, vindt u hier:
*Red Hat garandeert niet dat de code hierin correct is. Alle materialen worden verstrekt op niet-goedkeuringsbasis, tenzij uitdrukkelijk anders vermeld.