V tem članku vam bom pokazal, kako uporabiti konfiguracijski format JSON za izdelavo datotek inventarja Ansible. Torej, začnimo.
Pogoji:
Če želite preizkusiti primere tega članka,
1) V računalniku mora biti nameščen Ansible.
2) Za avtomatizacijo Ansible morate imeti konfiguriranih vsaj 6 gostiteljev Linuxa.
V LinuxHintu je veliko člankov, namenjenih namestitvi programa Ansible in konfiguriranju gostiteljev za avtomatizacijo Ansible. Po potrebi jih lahko preverite.
Ustvarjanje imenika projektov:
V tem članku bom Visual Studio Code uporabil za urejanje konfiguracijske datoteke Ansible, datoteke inventarja in knjig predvajanja. Uporabite lahko kateri koli urejevalnik ali IDE, ki ga želite.
Preden začnemo, ustvarimo imenik projektov, da bomo lahko organizirali svoje projektne datoteke.
Ustvaril sem nov imenik projektov json-inventura / v mojem DOMOV imenik, kot lahko vidite na spodnjem posnetku zaslona.
Ko ustvarite nov imenik projekta, ga odprite s svojim najljubšim urejevalnikom besedil ali IDE.
V Visual Studio Code pojdite na mapa > Odpri mapo… kot je označeno na spodnjem posnetku zaslona.
Zdaj izberite imenik projekta json-inventura / in kliknite na v redu.
Imenik projekta je treba odpreti s kodo Visual Studio.
Zdaj kliknite Nova datoteka in ustvarite novo datoteko ansible.prim.
Nato v vrstico vnesite naslednje vrstice ansible.prim mapa.
[privzeto]inventar = gostitelji.json
host_key_checking = False
Ko končate, pritisnite
Na enak način ustvarite a gostitelji.json mapa. To je datoteka z inventarjem JSON. Za zdaj pustite prazno. Kasneje bomo delali na tem.
Zdaj kliknite Nova mapa in ustvarite nov imenik igralne knjige kot je prikazano na spodnjem posnetku zaslona.
Dodajanje gostiteljev v datoteko inventarja JSON:
V tem razdelku vam bom pokazal, kako v svojo datoteko inventarja dodate gostitelje v obliki JSON.
V gostitelji.json datoteko inventarja, dodate vse odsek.
"vse":
V vse razdelku, dodate a gostitelj in dodajte svoje gostitelje.
"vse":
"gostitelji":
"gostitelj1": nič,
"gostitelj2": nič
Na primer, lahko dodate gostitelje vm1.nodekite.com in vm2.nodekite.com v gostitelji.json spisek, kot sledi.
"vse":
"gostitelji":
"vm1.nodekite.com ": nič,
"vm2.nodekite.com ": nič
Ko končate, pritisnite
Kateri gostitelji so na voljo v vaši inventarni datoteki, lahko preverite z naslednjim ukazom:
$ ansible --list-gosti vse
Kot lahko vidite, gostitelji, ki sem jih dodal v svojo inventarno datoteko (vm1.nodekite.com in vm2.nodekite.com).
Združevanje gostiteljev v datoteko inventarja JSON:
V tem razdelku vam bom pokazal, kako združiti gostitelje v datoteko inventarja JSON.
Privzeta gostiteljska skupina v Ansible je vse. The vse skupina ima vse gostitelje iz vsake skupine (vključno z gostitelji iz vse skupina).
Skupine gostiteljev dodate v otroci odsek datoteke z inventarjem JSON.
"vse":
..
"otroci":
"group1":
,
"group2":
Na primer, da dodate gostitelje vm3.nodekite.com in vm4.nodekite.com v splet in dodajte gostitelje vm5.nodekite.com in vm6.nodekite.com v db skupini vnesite naslednje vrstice v svojo inventarno datoteko JSON.
"vse":
"gostitelji":
"vm1.nodekite.com ": nič,
"vm2.nodekite.com ": nič
,
"otroci":
"splet":
"gostitelji":
"vm3.nodekite.com ": nič,
"vm4.nodekite.com ": nič
,
"db":
"gostitelji":
"vm5.nodekite.com ": nič,
"vm6.nodekite.com ": nič
Ko končate, pritisnite
Tu označene vrstice dodajo gostitelje vm3.nodekite.com in vm4.nodekite.com v splet skupini.
Označene vrstice dodajo gostitelje vm5.nodekite.com in vm6.nodekite.com v db skupini.
Zdaj lahko v svoji inventarni datoteki JSON navedete vse razpoložljive gostitelje z naslednjim ukazom:
$ ansible --list-gosti vse
Kot lahko vidite, so vsi gostitelji iz vsake skupine (splet, db, in vse).
Za seznam razpoložljivih gostiteljev iz splet samo skupina, zaženite naslednji ukaz:
$ ansible --list-hosts web
Kot lahko vidite, so vsi gostitelji v splet skupino.
Na enak način lahko iz programa db skupina z naslednjim ukazom:
$ ansible --list-hosts db
Kot lahko vidite, so vsi gostitelji v db skupino.
Dodajanje globalnih dejstev v datoteko inventarja JSON:
V Ansible spremenljivke imenujemo tudi dejstva. Globalna dejstva ali globalne spremenljivke so dostopne vsem gostiteljem vseh skupin v vaši inventarni datoteki JSON. V tem poglavju vam bom pokazal, kako v ansible dodati globalna dejstva ali globalne spremenljivke.
Globalne dejstva ali globalne spremenljivke lahko dodate v vari odsek znotraj vse odsek datoteke z inventarjem JSON, kot sledi:
"vse":
"gostitelji":
..
,
"vars":
"variable1": "value1",
"variable2": "value2"
,
"otroci":
"splet":
..
,
"db":
..
Na primer, lahko dodate globalna dejstva / spremenljivke spletna korenina in indeks v vari odsek datoteke z inventarjem JSON, kot sledi:
"vse":
"gostitelji":
"vm1.nodekite.com ": nič,
"vm2.nodekite.com ": nič
,
"vars":
"webroot": "/ var / www / html",
"index": "indeks.php "
,
"otroci":
"splet":
"gostitelji":
"vm3.nodekite.com ": nič,
"vm4.nodekite.com ": nič
,
"db":
"gostitelji":
"vm5.nodekite.com ": nič,
"vm6.nodekite.com ": nič
Ko končate, pritisnite
Da bi preveril, ali globalna dejstva / spremenljivke delujejo, bom ustvaril novo knjigo iger print_vars1.yaml. Namen te knjige je tiskati dejstva / spremenljivke s pomočjo odpravljanje napak modul Ansible. Kasneje nam bo pomagal razumeti prednost dejstev / spremenljivk.
Torej, ustvarite novo knjigo iger print_vars1.yaml v vašem igralne knjige / in vnesite naslednje vrstice v print_vars1.yaml mapa.
- gostitelji: vsiuporabnik: ansible
naloge:
- ime: Natisni spletno korenino in indeks
odpravljanje napak:
msg: 'WebRoot webroot in kazalo index'
Ko končate, pritisnite
Če želite preveriti, ali globalna dejstva / spremenljivke delujejo, zaženite print_vars1.yaml playbook, kot sledi:
$ ansible-playbook playbooks / print_vars1.yaml
Knjiga iger bi se morala uspešno izvajati.
Pomaknite se nazaj do NALOGA odsek. Kot lahko vidite, spletna korenina in indeks dejstva / spremenljivke se uporabljajo za vsakega gostitelja v moji inventarni datoteki JSON. Torej, globalna dejstva / spremenljivke delujejo.
Dodajanje skupinskih dejstev v datoteko inventarja JSON:
Dodate lahko tudi dejstva / spremenljivke za določeno gostiteljsko skupino. V tem razdelku vam bom pokazal, kako v zbirko datotek JSON dodate dejstva / spremenljivke skupine.
Dodal bom isto spletna korenina in indeks dejstva v splet gostiteljska skupina moje inventarne datoteke JSON. Vrednost teh dejstev bo drugačna. To sem naredil zato, da lahko tudi vi razumete, kako v Ansibleju delujejo dejstva / prednostna spremenljivka.
Da dodam dejstva spletna korenina in indeks v splet gostiteljsko skupino, dodajte vari v razdelku splet odsek datoteke z inventarjem JSON, kot sledi:
"vse":
"gostitelji":
"vm1.nodekite.com ": nič,
"vm2.nodekite.com ": nič
,
"vars":
"webroot": "/ var / www / html",
"index": "indeks.php "
,
"otroci":
"splet":
"gostitelji":
"vm3.nodekite.com ": nič,
"vm4.nodekite.com ": nič
,
"vars":
"webroot": "/ web / public_html",
"index": "indeks.html "
,
"db":
"gostitelji":
"vm5.nodekite.com ": nič,
"vm6.nodekite.com ": nič
Ko končate, pritisnite
Če želite preveriti dejstva, zaženite print_vars1.yaml playbook, kot sledi:
$ ansible-playbook playbooks / print_vars1.yaml
Kot lahko vidite, skupina dejstev spletna korenina in indeks so na voljo samo gostiteljem vm3.nodekite.com in vm4.nodekite.com, gostitelji v splet skupini.
Upoštevajte tudi, da skupina dejstev (spletna korenina in indeks) nadomestila globalna dejstva (spletna korenina in indeks). Torej lahko rečete, da imajo skupinska dejstva večjo prednost kot globalna dejstva.
Dodajanje dejstev o gostitelju v datoteko inventarja JSON:
Dejstva / spremenljivke, specifične za gostitelja, lahko dodate tudi v svojo inventarno datoteko JSON. V tem poglavju vam bom pokazal, kako v datoteko inventarja JSON dodate dejstva / spremenljivke, specifične za gostitelja.
Za globalna ali skupinska dejstva smo ohranili vrednost gostiteljev nič.
Če želite dodati dejstva gostitelja, zamenjajte nič z dejstvi gostitelja v datoteki inventarja JSON, kot sledi:
"gostitelji":"gostitelj1":
"var1": "vrednost1",
"var2": "vrednost2",
,
"gostitelj2":
"var2": "vrednost3",
"var3": "vrednost4",
Na primer, da dodate indeks gostiteljsko dejstvo vm5.nodekite.com gostitelj, zamenjaj nič z gostiteljskimi dejstvi, kot sledi.
"vse":
"gostitelji":
"vm1.nodekite.com ": nič,
"vm2.nodekite.com ": nič
,
"vars":
"webroot": "/ var / www / html",
"index": "indeks.php "
,
"otroci":
"splet":
"gostitelji":
"vm3.nodekite.com ": nič,
"vm4.nodekite.com ": nič
,
"vars":
"webroot": "/ web / public_html",
"index": "indeks.html "
,
"db":
"gostitelji":
"vm5.nodekite.com ":
"index": "indeks.pi "
,
"vm6.nodekite.com ": nič
Ko končate, pritisnite
Če želite preveriti razpoložljiva dejstva, zaženite print_vars1.yaml playbook, kot sledi:
$ ansible-playbook playbooks / print_vars1.yaml
Kot lahko vidite, indeks dejstvo je na voljo samo za vm5.nodekite.com gostitelj.
Upoštevajte tudi, da je gostiteljsko dejstvo nadomestilo globalno. Dejstva / spremenljivke gostitelja imajo v Ansibleju največjo prednost. Torej bodo gostiteljska dejstva / spremenljivke nadomestila skupinska dejstva / spremenljivke in globalna dejstva / spremenljivke.
Zaključek:
V tem članku sem vam pokazal, kako zgraditi datoteko inventarja Ansible v obliki JSON. Pokazal sem vam, kako dodati gostitelje, dodati gostiteljske skupine, dodati globalna dejstva, dodati skupinska dejstva in dodati dejstva gostitelja v svojo inventarno datoteko v obliki JSON.