Sådan bruges statiske og dynamiske fortegnelser i Ansible – Del 4

I denne del 4 af Ansible-serien forklarer vi, hvordan man bruger statisk og dynamisk fortegnelse til at definere grupper af værter i Ansible.

I Ansible defineres administrerede værter eller servere, som styres af Ansible-kontrolknuden, i en værtsfortegnelsesfil, som forklaret i. En værtsopgørelsesfil er en tekstfil, der består af værtsnavne eller IP-adresser for administrerede værter eller fjernservere.

De administrerede værter kan enten være opført som individuelle poster eller kategoriseret under et gruppenavn, som vi senere skal se. I Ansible er der to typer af inventarfiler: Statisk og dynamisk.

Lad os kigge på hver af disse og se, hvordan vi kan administrere dem. Vi antager nu, at du allerede har installeret Ansible på din kontrolnode og konfigureret Passwordless SSH-forbindelse til dine administrerede værter.

Statisk værtsinventarfil

I Ansible er en statisk inventarfil en almindelig tekstfil, der indeholder en liste over administrerede værter, der er angivet under en værtsgruppe ved hjælp af enten værtsnavne eller IP-adresser.

Et værtsgruppebetegnelse er omsluttet af firkantede parenteser, dvs. . De administrerede værtsposter er senere anført under gruppens navn, hver på sin egen linje. Som tidligere omtalt er værterne opført ved hjælp af enten værtsnavne eller IP-adresser.

Host A ip_address Host B ip_addressHost c ip_address

Til illustration skal vi oprette en statisk opgørelsesfil.

# mkdir test_lab && cd test_lab# vim hosts
Statisk opgørelsesfil
173.82.115.165173.82.220.239webserversdatabase_servers

Spar filen og afslut.

Som du kan se i opgørelsesfilen ovenfor, har vi oprettet 2 værtsgrupper: webservers og database_servers. Vi har også oprettet en ekstra gruppe kaldet datacenter, der indeholder en gruppe af værtsgrupper betegnet med ': children'-suffiks, som det ses ovenfor.

Ansible tillader også, at grupper af værter kan placeres under et gruppenavn. I ovenstående inventarfil er grupperne webservers og database_servers blevet placeret under datacenter.

BEMÆRK: Det er ikke obligatorisk at placere administrerede værter i en værtsgruppe. Du kan blot liste dem ved hjælp af deres værtsnavne eller IP-adresser for eksempel.

173.82.202.239172.82.115.165load_balancer.pnl.com

Lad os nu bruge et par Ansible-kommandoer til at henvise til værtsfortegnelsesfilen. Den grundlæggende syntaks for inventarstyring er som vist.

$ ansible {host-pattern} -i /path/of/inventory/file --list-hosts

For eksempel,

$ ansible all -i /root/test_labs/hosts --list-hosts
List Ansible Hosts

Alternativt kan du bruge jokertegnet * til at erstatte 'all'-argumentet.

$ ansible * -i /root/test_labs/hosts --list-hosts
Liste over Ansible-værter ved hjælp af jokertegn

For at få vist værter i en gruppe skal du angive værtsgruppen i stedet for host-pattern.

$ ansible webservers -i /root/test_labs/hosts --list-hosts
Liste over Ansible-værter i gruppe

Dynamisk værtsopgørelsesfil

I en konfiguration – især en cloudopsætning som AWS, hvor opgørelsesfilen hele tiden ændrer sig, når du tilføjer eller nedlægger servere, bliver det en reel udfordring at holde styr på de værter, der er defineret i opgørelsesfilen. Det bliver besværligt at gå tilbage til værtsfilen og opdatere listen over værter med deres IP-adresser.

Og det er her, at en dynamisk fortegnelse kommer i spil. Så hvad er en dynamisk fortegnelse? En dynamisk opgørelse er et script, der er skrevet i Python, PHP eller et andet programmeringssprog. Det er praktisk i cloud-miljøer som AWS, hvor IP-adresser ændres, når en virtuel server stoppes og startes igen.

Ansible har allerede udviklet opgørelsesscripts til offentlige cloud-platforme som Google Compute Engine, Amazon EC2-instans, OpenStack, RackSpace, cobbler, blandt andre.

Hvad er fordelene ved en dynamisk opgørelse i forhold til en statisk opgørelse?
  • Dynamiske opgørelser gør et perfekt stykke arbejde med at reducere menneskelige fejl, da oplysningerne indsamles ved hjælp af scripts.
  • Det kræver minimal indsats at administrere opgørelser.

Du kan skrive din egen tilpassede dynamiske opgørelse i et programmeringssprog efter eget valg. Opgørelsen skal returnere et format i JSON, når de relevante indstillinger er overgivet.

Udnyt et eksisterende dynamisk opgørelsesscript

Et script, der bruges til at oprette en dynamisk opgørelse, skal gøres eksekverbart, så Ansible kan bruge det.

For at hente oplysninger om værterne inde i et dynamisk opgørelsesscript skal du blot køre.

# ./script --list 

Som tidligere påpeget, skal output være i JSON i nedenstående format.

En ordbog, der består af grupper (i.e webservers, database_Servers)
  • En liste over administrerede værter pr. gruppe
  • En ordbog med variabler
Metaordbog
  • Hosts og hostvars
Eksempel på output
Slutning

I denne artikel har vi vist, hvordan man opretter både statiske og dynamiske fortegnelser. Sammenfattende er en statisk fortegnelsesfil en almindelig tekstfil, der indeholder en liste over administrerede værter eller fjernknudepunkter, hvis numre og IP-adresser forbliver nogenlunde konstante.

En dynamisk værtsfil ændrer sig derimod hele tiden, efterhånden som du tilføjer nye værter eller nedlægger gamle værter. Værternes IP-adresser er også dynamiske, når du stopper og starter nye værtssystemer. Vi håber, at du fandt denne vejledning informativ.