Ansible

Hur man bygger Ansible Inventory i JSON-format

Hur man bygger Ansible Inventory i JSON-format
Som standard använder en Ansible inventeringsfil INI-konfigurationsformatet. Du kan också använda JSON (JavaScript Object Notation) konfigurationsformat för Ansible inventeringsfiler också.

I den här artikeln ska jag visa dig hur du använder JSON-konfigurationsformatet för att bygga Ansible inventeringsfiler. Så, låt oss komma igång.

Förutsättningar:

Om du vill prova exemplen på den här artikeln,

1) Du måste ha Ansible installerat på din dator.
2) Du måste ha minst 6 Linux-värdar konfigurerade för Ansible-automatisering.

Det finns många artiklar om LinuxHint tillägnad Installera Ansible och konfigurera värdar för Ansible-automatisering. Du kan kolla in dem om det behövs.

Skapa en projektkatalog:

I den här artikeln ska jag använda Visual Studio-koden för att redigera Ansible-konfigurationsfilen, inventeringsfilen och playbooks. Du kan använda vilken redigerare eller IDE du vill.

Innan du börjar, låt oss skapa en projektkatalog så att vi kan organisera våra projektfiler.

Jag har skapat en ny projektkatalog json-inventering / i min HEM katalog som du kan se på skärmdumpen nedan.

När du har skapat en ny projektkatalog öppnar du den med din favorittextredigerare eller IDE.

Gå till Visual Studio Code Fil > Öppen mapp… som markerat i skärmdumpen nedan.

Välj nu projektkatalogen json-inventering / och klicka på OK.

Projektkatalogen ska öppnas med Visual Studio Code.

Klicka nu på Ny fil  och skapa en ny fil ansible.cfg.

Skriv sedan in följande rader i ansible.cfg fil.

[standard]
inventering = värdar.json
host_key_checking = Falskt

När du är klar trycker du på + S för att spara ansible.cfg fil.

På samma sätt skapa en värdar.json fil. Detta är JSON-inventeringsfilen. Lämna det tomt för nu. Vi kommer att arbeta med det senare.

Klicka nu på Ny mapp  och skapa en ny katalog spelböcker som visas på skärmdumpen nedan.

Lägga till värdar i JSON-inventeringsfilen:

I det här avsnittet ska jag visa dig hur du lägger till värdar i din inventeringsfil i JSON-format.

I värdar.json inventeringsfil, lägger du till en Allt sektion.


"Allt":

I Allt avsnitt, lägger du till en värd avsnittet och lägg till dina värdar.


"Allt":
"värdar":
"host1": null,
"host2": null


Du kan till exempel lägga till värdarna vm1.nodekite.com och vm2.nodekite.com i värdar.json inventeringsfilen enligt följande.


"Allt":
"värdar":
"vm1.nodekite.com ": null,
"vm2.nodekite.com ": null


När du är klar trycker du på + S för att spara värdar.json fil.

Du kan kontrollera vilka värdar som är tillgängliga i din inventeringsfil med följande kommando:

$ ansible - list-hosts alla

Som du ser är de värdar som jag har lagt till i min inventeringsfil (vm1.nodekite.com och vm2.nodekite.com) är listade.

Gruppera värdar i JSON-inventeringsfilen:

I det här avsnittet ska jag visa dig hur du grupperar värdar i din JSON-inventeringsfil.

Standardvärdgruppen i Ansible är Allt. De Allt gruppen har alla värdar från varje grupp (inklusive värdarna från Allt grupp).

Du lägger till värdgrupper i barn avsnitt i din JSON-inventeringsfil.


"Allt":
..
"barn":
"grupp 1":
,
"grupp2":



Till exempel för att lägga till värdarna vm3.nodekite.com och vm4.nodekite.com i webb grupp och för att lägga till värdarna vm5.nodekite.com och vm6.nodekite.com i db grupp, skriv in följande rader i din JSON-inventeringsfil.


"Allt":
"värdar":
"vm1.nodekite.com ": null,
"vm2.nodekite.com ": null
,
"barn":
"webb":
"värdar":
"vm3.nodekite.com ": null,
"vm4.nodekite.com ": null

,
"db":
"värdar":
"vm5.nodekite.com ": null,
"vm6.nodekite.com ": null




När du är klar trycker du på + S för att spara värdar.json fil.

Här lägger de markerade raderna till värdarna vm3.nodekite.com och vm4.nodekite.com i webb grupp.

De markerade raderna lägger till värdarna vm5.nodekite.com och vm6.nodekite.com i db grupp.

Nu kan du lista alla tillgängliga värdar i din JSON-inventeringsfil med följande kommando:

$ ansible - list-hosts alla

Som du kan se, är alla värdar från varje grupp (webb, db, och Allt) visas.

För att lista de tillgängliga värdarna från webb grupp endast, kör följande kommando:

$ ansible - list-hosts webb

Som du kan se, alla värdar i webb grupp visas.

På samma sätt kan du lista alla tillgängliga värdar från db grupp med följande kommando:

$ ansible --list-hosts db

Som du kan se, alla värdar i db grupp visas.

Lägga till globala fakta i JSON-inventeringsfilen:

I Ansible kallas variabler också fakta. Globala fakta eller globala variabler är tillgängliga från alla värdar i varje grupp i din JSON-inventeringsfil. I det här avsnittet ska jag visa dig hur du lägger till globala fakta eller globala variabler i synligt.

Du kan lägga till globala fakta eller globala variabler i vars sektion inuti Allt avsnittet i din JSON-inventeringsfil enligt följande:


"Allt":
"värdar":
..
,
"vars":
"variable1": "value1",
"variable2": "value2"
,
"barn":
"webb":
..
,
"db":
..



Du kan till exempel lägga till globala fakta / variabler webroot och index i vars avsnittet i din JSON-inventeringsfil enligt följande:


"Allt":
"värdar":
"vm1.nodekite.com ": null,
"vm2.nodekite.com ": null
,
"vars":
"webroot": "/ var / www / html",
"index": "index.php "
,
"barn":
"webb":
"värdar":
"vm3.nodekite.com ": null,
"vm4.nodekite.com ": null

,
"db":
"värdar":
"vm5.nodekite.com ": null,
"vm6.nodekite.com ": null




När du är klar trycker du på + S för att spara JSON-inventeringsfilen.

För att kontrollera om de globala fakta / variablerna fungerar ska jag skapa en ny spelbok print_vars1.yaml. Syftet med denna spelbok är att skriva ut fakta / variabler med hjälp av felsöka modul av Ansible. Det kommer också att hjälpa oss att förstå fakta / variabel företräde senare.

Så skapa en ny spelbok print_vars1.yaml i din spelböcker / katalog och skriv in följande rader i din print_vars1.yaml fil.

- värdar: alla
användare: ansible
uppgifter:
- namn: Skriv ut webroot och indexera
felsöka:
msg: 'WebRoot webroot och indexera index'

När du är klar trycker du på + S för att spara print_vars1.yaml fil.

För att kontrollera om de globala fakta / variablerna fungerar, kör du print_vars1.yaml spelbok enligt följande:

$ ansible-playbook playbooks / print_vars1.yaml

Spelboken ska köras framgångsrikt.

Bläddra tillbaka till UPPGIFT sektion. Som du kan se webroot och index fakta / variabler tillämpas på varje värd i min JSON-inventeringsfil. Så globala fakta / variabler fungerar.

Lägga till gruppfakta i JSON-inventeringsfilen:

Du kan också lägga till fakta / variabler för en viss värdgrupp. I det här avsnittet ska jag visa dig hur du lägger till gruppfakta / variabler i din JSON-inventeringsfil.

Jag kommer att lägga till detsamma webroot och index fakta i webb värdgrupp i min JSON-inventeringsfil. Värdet av dessa fakta kommer att vara annorlunda. Jag har gjort det så att du också kan förstå hur fakta / variabel företräde fungerar i Ansible.

För att lägga till fakta webroot och index i webb värdgrupp, lägg till en vars avsnittet i webb avsnittet i din JSON-inventeringsfil enligt följande:


"Allt":
"värdar":
"vm1.nodekite.com ": null,
"vm2.nodekite.com ": null
,
"vars":
"webroot": "/ var / www / html",
"index": "index.php "
,
"barn":
"webb":
"värdar":
"vm3.nodekite.com ": null,
"vm4.nodekite.com ": null
,
"vars":
"webroot": "/ web / public_html",
"index": "index.html "

,
"db":
"värdar":
"vm5.nodekite.com ": null,
"vm6.nodekite.com ": null




När du är klar trycker du på + S för att spara JSON-inventeringsfilen.

För att kontrollera fakta, kör print_vars1.yaml spelbok enligt följande:

$ ansible-playbook playbooks / print_vars1.yaml

Som ni kan se är gruppens fakta webroot och index är endast tillgängliga för värdarna vm3.nodekite.com och vm4.nodekite.com, värdarna i webb grupp.

Lägg också märke till att gruppens fakta (webroot och index) ersatte de globala fakta (webroot och index). Så du kan säga att gruppfakta har högre företräde än de globala fakta.

Lägga till värdfakta i JSON-inventeringsfilen:

Du kan också lägga till värdspecifika fakta / variabler i din JSON-inventeringsfil. I det här avsnittet ska jag visa dig hur du lägger till värdspecifika fakta / variabler i din JSON-inventeringsfil.

För globala fakta eller gruppfakta har vi behållit värdens värdar null.

För att lägga till värdfakta, byt ut null med dina värdfakta i JSON-inventeringsfilen enligt följande:

"värdar":
"värd1":
"var1": "värde1",
"var2": "värde2",
,
"värd2":
"var2": "värde3",
"var3": "värde4",

Till exempel för att lägga till index värd fakta till vm5.nodekite.com värd, ersätt null med värdfakta enligt följande.


"Allt":
"värdar":
"vm1.nodekite.com ": null,
"vm2.nodekite.com ": null
,
"vars":
"webroot": "/ var / www / html",
"index": "index.php "
,
"barn":
"webb":
"värdar":
"vm3.nodekite.com ": null,
"vm4.nodekite.com ": null
,
"vars":
"webroot": "/ web / public_html",
"index": "index.html "

,
"db":
"värdar":
"vm5.nodekite.com ":
"index": "index.py "
,
"vm6.nodekite.com ": null




När du är klar trycker du på + S för att spara JSON-inventeringsfilen.

För att kontrollera tillgängliga fakta, kör print_vars1.yaml spelbok enligt följande:

$ ansible-playbook playbooks / print_vars1.yaml

Som du kan se index faktum är endast tillgängligt för vm5.nodekite.com värd.

Lägg också märke till att värdfakta ersatte det globala faktumet. Värdfakta / variabler har högsta prioritet i Ansible. Så värdfakta / variabler ersätter gruppfakta / variabler och globala fakta / variabler.

Slutsats:

I den här artikeln har jag visat dig hur du bygger en Ansible inventeringsfil i JSON-format. Jag har visat dig hur du lägger till värdar, lägger till värdgrupper, lägger till globala fakta, lägger till gruppfakta och lägger till värdfakta i din inventeringsfil i JSON-format.

Hur man visar FPS-räknare i Linux-spel
Linux-spel fick ett stort tryck när Valve tillkännagav Linux-stöd för Steam-klient och deras spel 2012. Sedan dess har många AAA- och indiespel tagit ...
Hur man laddar ner och spelar Sid Meier's Civilization VI på Linux
Introduktion till spelet Civilization 6 är ett modernt intag av det klassiska konceptet som introducerades i serien Age of Empires-spel. Idén var gans...
Hur man installerar och spelar Doom på Linux
Introduktion till Doom Doom-serien har sitt ursprung på 90-talet efter att den ursprungliga Doom släpptes. Det blev en omedelbar hit och från den tide...