Hvordan du bygger ansettelig inventar i JSON -format

Hvordan du bygger ansettelig inventar i JSON -format
Som standard bruker en Ansible Inventory -fil INI -konfigurasjonsformatet. Du kan også bruke JSON (JavaScript Object Notation) Konfigurasjonsformat også for Ansible Inventory Files.

I denne artikkelen skal jeg vise deg hvordan du bruker JSON -konfigurasjonsformatet til å bygge Ansible Inventory Files. Så la oss komme i gang.

Forutsetninger:

Hvis du vil prøve eksemplene på denne artikkelen,

1) Du må ha Ansible installert på datamaskinen din.
2) Du må ha minst 6 Linux -verter som er konfigurert for ANSIBLE Automation.

Det er mange artikler om Linuxhint dedikert til å installere Ansible og konfigurere verter for Ansible Automation. Du kan sjekke dem ut om nødvendig.

Opprette en prosjektkatalog:

I denne artikkelen skal jeg bruke Visual Studio -koden for å redigere Ansible Configuration -filen, lagerfilen og spillbøkene. Du kan bruke hvilken som helst redaktør eller IDE du vil ha.

Før du kommer i gang, la oss lage en prosjektkatalog slik at vi kan organisere prosjektfilene våre.

Jeg har opprettet en ny prosjektkatalog JSON-Inventory/ i min HJEM Katalog som du kan se på skjermdumpen nedenfor.

Når du har opprettet en ny prosjektkatalog, kan du åpne den med din favoritt tekstredigerer eller IDE.

Gå til Visual Studio Code, gå til Fil > Åpen mappe .. Som merket på skjermbildet nedenfor.

Velg nå prosjektkatalogen JSON-Inventory/ og klikk på Ok.

Prosjektkatalogen skal åpnes med Visual Studio Code.

Nå, klikk på Ny fil og opprette en ny fil Ansible.CFG.

Skriv deretter inn følgende linjer i Ansible.CFG fil.

[standardverdier]
Inventory = verter.JSON
host_key_checking = falsk

Når du er ferdig, trykk + S For å redde Ansible.CFG fil.

På samme måte, skape en verter.JSON fil. Dette er JSON Inventory -filen. La det være tomt for nå. Vi vil jobbe med det senere.

Nå, klikk på Ny mappe og opprette en ny katalog Playbooks Som vist på skjermbildet nedenfor.

Legge til verter i JSON Inventory -filen:

I dette avsnittet skal jeg vise deg hvordan du legger verter til lagerfilen din i JSON -format.

I verter.JSON Varebeholdningsfil, du legger til en alle seksjon.


"alle":

I alle seksjon, du legger til en vert Seksjon og legg til vertene dine.


"alle":
"Hosts":
"Host1": NULL,
"Host2": NULL


For eksempel kan du legge til vertene VM1.Nodekite.com og VM2.Nodekite.com i verter.JSON Lagerfilen som følger.


"alle":
"Hosts":
"VM1.Nodekite.com ": null,
"VM2.Nodekite.com ": null


Når du er ferdig, trykk + S For å redde verter.JSON fil.

Du kan sjekke hvilke verter som er tilgjengelige i varelagerfilen din med følgende kommando:

$ ansible-liste-vert alle

Som du kan se, vertene jeg har lagt til i inventarfilen min (VM1.Nodekite.com og VM2.Nodekite.com) er listet.

Gruppere verter i JSON Inventory -filen:

I denne delen skal jeg vise deg hvordan du grupperer verter i JSON -varelagerfilen din.

Standard vertsgruppe i Ansible er alle. De alle Group har alle vertene fra hver gruppe (inkludert vertene fra alle gruppe).

Du legger til vertsgrupper i barn delen av JSON -varelagerfilen din.


"alle":
..
"Barn":
"Group1":
,
"Group2":



For eksempel for å legge til vertene VM3.Nodekite.com og VM4.Nodekite.com i Web gruppe, og for å legge til vertene VM5.Nodekite.com og VM 6.Nodekite.com i db gruppe, skriv inn følgende linjer i JSON Inventory -filen.


"alle":
"Hosts":
"VM1.Nodekite.com ": null,
"VM2.Nodekite.com ": null
,
"Barn":
"Web":
"Hosts":
"VM3.Nodekite.com ": null,
"VM4.Nodekite.com ": null

,
"DB":
"Hosts":
"VM5.Nodekite.com ": null,
"VM 6.Nodekite.com ": null




Når du er ferdig, trykk + S For å redde verter.JSON fil.

Her legger de merkede linjene til vertene VM3.Nodekite.com og VM4.Nodekite.com i Web gruppe.

De markerte linjene legger til vertene VM5.Nodekite.com og VM 6.Nodekite.com i db gruppe.

Nå kan du liste opp alle tilgjengelige verter i JSON Inventory -filen med følgende kommando:

$ ansible-liste-vert alle

Som du kan se, alle vertene fra hver gruppe (Web, db, og alle) vises.

For å liste opp de tilgjengelige vertene fra Web Kun gruppe, kjør følgende kommando:

$ ANSIBLE-List-vert nett

Som du kan se, alle vertene i Web gruppe vises.

På samme måte kan du liste opp alle tilgjengelige verter fra db Gruppe med følgende kommando:

$ Ansible-List-verter DB

Som du kan se, alle vertene i db gruppe vises.

Legge til globale fakta i JSON Inventory -filen:

I Ansible kalles variabler også fakta. Globale fakta eller globale variabler er tilgjengelige fra hver vert for hver gruppe i JSON -varelagerfilen din. I dette avsnittet skal jeg vise deg hvordan du kan legge til globale fakta eller globale variabler i Ansible.

Du kan legge til globale fakta eller globale variabler i vars seksjon inne alle delen av JSON -varelagerfilen din på følgende måte:


"alle":
"Hosts":
..
,
"vars":
"Variable1": "Value1",
"Variable2": "Value2"
,
"Barn":
"Web":
..
,
"DB":
..



For eksempel kan du legge til de globale fakta/variabler Webroot og indeks i vars delen av JSON -varelagerfilen din på følgende måte:


"alle":
"Hosts":
"VM1.Nodekite.com ": null,
"VM2.Nodekite.com ": null
,
"vars":
"Webroot": "/var/www/html",
"Indeks": "Indeks.PHP "
,
"Barn":
"Web":
"Hosts":
"VM3.Nodekite.com ": null,
"VM4.Nodekite.com ": null

,
"DB":
"Hosts":
"VM5.Nodekite.com ": null,
"VM 6.Nodekite.com ": null




Når du er ferdig, trykk + S For å lagre JSON Inventory -filen.

For å sjekke om de globale fakta/variabler fungerer, skal jeg lage en ny spillbok print_vars1.Yaml. Hensikten med denne spillboken er å skrive ut fakta/variabler ved å bruke feilsøking Ansible modul. Det vil også hjelpe oss å forstå fakta/variabel forrang senere.

Så lage en ny spillbok print_vars1.Yaml i din Playbooks/ katalog og skriv inn følgende linjer i din print_vars1.Yaml fil.

- Verter: Alle
Bruker: Ansible
oppgaver:
- Navn: Skriv ut Webroot og indeks
Debug:
msg: 'webroot webroot og indeks index'

Når du er ferdig, trykk + S For å redde print_vars1.Yaml fil.

For å sjekke om de globale fakta/variabler fungerer, kjører du print_vars1.Yaml Playbook som følger:

$ Ansible-Playbook Playbooks/Print_Vars1.Yaml

Playbooken skal kjøre vellykket.

Bla tilbake til OPPGAVE seksjon. Som du kan se, Webroot og indeks Fakta/variabler brukes på hver vert i JSON -varelagerfilen min. Så globale fakta/variabler fungerer.

Legge til gruppefakta i JSON Inventory -filen:

Du kan også legge til fakta/variabler for en bestemt vertsgruppe. I denne delen skal jeg vise deg hvordan du legger til gruppefakta/variabler i JSON -varelagerfilen din.

Jeg skal legge til det samme Webroot og indeks fakta i Web Vertsgruppen i JSON -varelagerfilen min. Verdien av disse fakta vil være annerledes. Jeg har gjort det slik at du også kan forstå hvordan fakta/variabel forrang fungerer i Ansible.

For å legge til fakta Webroot og indeks i Web vertsgruppe, legg til en vars seksjon i Web delen av JSON -varelagerfilen din på følgende måte:


"alle":
"Hosts":
"VM1.Nodekite.com ": null,
"VM2.Nodekite.com ": null
,
"vars":
"Webroot": "/var/www/html",
"Indeks": "Indeks.PHP "
,
"Barn":
"Web":
"Hosts":
"VM3.Nodekite.com ": null,
"VM4.Nodekite.com ": null
,
"vars":
"Webroot": "/web/public_html",
"Indeks": "Indeks.html "

,
"DB":
"Hosts":
"VM5.Nodekite.com ": null,
"VM 6.Nodekite.com ": null




Når du er ferdig, trykk + S For å lagre JSON Inventory -filen.

For å sjekke fakta, kjører du print_vars1.Yaml Playbook som følger:

$ Ansible-Playbook Playbooks/Print_Vars1.Yaml

Som du ser, gruppefakta Webroot og indeks er bare tilgjengelig for vertene VM3.Nodekite.com og VM4.Nodekite.com, vertene i Web gruppe.

Legg også merke til at gruppefakta (Webroot og indeks) erstattet de globale fakta (Webroot og indeks). Så du kan si at gruppefakta har høyere forrang enn de globale fakta.

Legge til vertsfakta i JSON Inventory -filen:

Du kan også legge til vertsspesifikke fakta/variabler i JSON Inventory-filen. I dette avsnittet skal jeg vise deg hvordan du legger til vertsspesifikke fakta/variabler i JSON Inventory-filen.

For globale eller gruppefakta har vi holdt verdien av vertene null.

For å legge til vertsfakta, erstatt null Med vertsfakta i JSON Inventory -filen som følger:

"Hosts":
"vert1":
"var1": "Value1",
"var2": "Value2",
,
"host2":
"var2": "Value3",
"var3": "Value4",

For eksempel for å legge til indeks vert faktum til VM5.Nodekite.com vert, erstatt null med vertsfakta som følger.


"alle":
"Hosts":
"VM1.Nodekite.com ": null,
"VM2.Nodekite.com ": null
,
"vars":
"Webroot": "/var/www/html",
"Indeks": "Indeks.PHP "
,
"Barn":
"Web":
"Hosts":
"VM3.Nodekite.com ": null,
"VM4.Nodekite.com ": null
,
"vars":
"Webroot": "/web/public_html",
"Indeks": "Indeks.html "

,
"DB":
"Hosts":
"VM5.Nodekite.com ":
"Indeks": "Indeks.py "
,
"VM 6.Nodekite.com ": null




Når du er ferdig, trykk + S For å lagre JSON Inventory -filen.

For å sjekke tilgjengelige fakta, kjører du print_vars1.Yaml Playbook som følger:

$ Ansible-Playbook Playbooks/Print_Vars1.Yaml

Som du kan se, indeks faktum er bare tilgjengelig for VM5.Nodekite.com vert.

Legg også merke til at vertsfakta erstattet det globale faktum. Vertsfakta/variabler har den høyeste forrang i Ansible. Så vertsfakta/variabler vil erstatte gruppefakta/variabler og globale fakta/variabler.

Konklusjon:

I denne artikkelen har jeg vist deg hvordan du bygger en Ansible Inventory -fil i JSON -format. Jeg har vist deg hvordan du legger til verter, legger til vertsgrupper, legger til globale fakta, legger til gruppefakta og legger til vertsfakta i lagerfilen din i JSON -format.