Lehetséges

Hogyan készítsünk egy lehetséges készletet JSON formátumban

Hogyan készítsünk egy lehetséges készletet JSON formátumban
Alapértelmezés szerint egy Ansible készletfájl az INI konfigurációs formátumot használja. Használhatja a JSON (JavaScript Object Notation) konfigurációs formátumot az Ansible készletfájlokhoz is.

Ebben a cikkben bemutatom, hogyan lehet használni a JSON konfigurációs formátumot az Ansible készletfájlok felépítéséhez. Tehát kezdjük.

Előfeltételek:

Ha ki szeretné próbálni a cikk példáit,

1) A számítógépére telepítve kell lennie az Ansible programnak.
2) Legalább 6 Linux hosztnak kell konfigurálnia az Ansible automatizáláshoz.

A LinuxHint-en számos cikk foglalkozik az Ansible telepítésével és a gazdagépek konfigurálásával az Ansible automatizáláshoz. Szükség esetén megnézheti őket.

Projektkönyvtár létrehozása:

Ebben a cikkben a Visual Studio kódot fogom használni az Ansible konfigurációs fájl, a leltárfájl és a playbooks szerkesztésére. Bármely kívánt szerkesztőt vagy IDE-t használhat.

Mielőtt elkezdené, hozzunk létre egy projekt könyvtárat, hogy rendezhessük a projekt fájljainkat.

Létrehoztam egy új projekt könyvtárat json-leltár / az én ITTHON könyvtárat, amint az az alábbi képernyőképen látható.

Miután létrehozott egy új projektkönyvtárat, nyissa meg kedvenc szövegszerkesztőjével vagy IDE-jével.

A Visual Studio Code alkalmazásban lépjen a következőre: File > Nyitott mappa… az alábbi képernyőképen jelölt módon.

Most válassza ki a projekt könyvtárat json-leltár / és kattintson a gombra rendben.

A projekt könyvtárat a Visual Studio Code segítségével kell megnyitni.

Most kattintson a gombra Új fájl  és hozzon létre egy új fájlt lehetséges.vö.

Ezután írja be a következő sorokat a lehetséges.vö fájl.

[alapértelmezések]
leltár = hosztok.json
host_key_checking = Hamis

Ha végzett, nyomja meg a gombot + S hogy megmentse a lehetséges.vö fájl.

Ugyanígy hozzon létre egy otthont ad.json fájl. Ez a JSON készletfájl. Hagyja egyelőre üresen. Később dolgozunk rajta.

Most kattintson a gombra Új mappa  és hozzon létre egy új könyvtárat játékkönyvek az alábbi képernyőképen látható módon.

Gazdák hozzáadása a JSON készletfájlhoz:

Ebben a részben bemutatom, hogyan lehet gazdagépeket hozzáadni a készletfájljához JSON formátumban.

Ban,-ben otthont ad.json leltárfájl, hozzáad egy minden szakasz.


"minden":

Ban ben minden szakaszban hozzáad egy a házigazda részt, és adja hozzá a gazdagépeket.


"minden":
"otthont ad":
"host1": null,
"host2": null


Például felveheti a gazdagépeket vm1.nodekite.com és vm2.nodekite.com ban,-ben otthont ad.json leltárállomány az alábbiak szerint.


"minden":
"otthont ad":
"vm1.nodekite.com ": null,
"vm2.nodekite.com ": null


Ha végzett, nyomja meg a gombot + S hogy megmentse a otthont ad.json fájl.

A következő paranccsal ellenőrizheti, hogy mely állomások állnak rendelkezésre a készletfájlban:

$ ansible --list-hosts all

Amint láthatja, a gazdagépek, amelyeket felvettem a készletfájlomba (vm1.nodekite.com és vm2.nodekite.com) listázott.

Gazdagépek csoportosítása a JSON készletfájlban:

Ebben a részben bemutatom, hogyan csoportosíthatja a gazdagépeket a JSON-készletfájljában.

Az Ansible alapértelmezett hosztcsoportja minden. A minden csoport minden csoport összes gazdáját tartalmazza (beleértve a minden csoport).

Gazdacsoportokat ad hozzá a gyermekek szakasz a JSON készletfájlban.


"minden":

"gyerekek":
"group1":
,
"group2":



Például a gazdagépek hozzáadásához vm3.nodekite.com és vm4.nodekite.com ban,-ben web csoportot, és adja hozzá a gazdagépeket vm5.nodekite.com és vm6.nodekite.com ban,-ben db csoportba írja be a következő sorokat a JSON készletfájlba.


"minden":
"otthont ad":
"vm1.nodekite.com ": null,
"vm2.nodekite.com ": null
,
"gyerekek":
"web":
"otthont ad":
"vm3.nodekite.com ": null,
"vm4.nodekite.com ": null

,
"db":
"otthont ad":
"vm5.nodekite.com ": null,
"vm6.nodekite.com ": null




Ha végzett, nyomja meg a gombot + S hogy megmentse a otthont ad.json fájl.

Itt a megjelölt sorok hozzáadják a gazdagépeket vm3.nodekite.com és vm4.nodekite.com ban,-ben web csoport.

A megjelölt sorok hozzáadják a gazdagépeket vm5.nodekite.com és vm6.nodekite.com ban,-ben db csoport.

Most a következő paranccsal felsorolhatja a JSON-készletfájl összes elérhető állomását:

$ ansible --list-hosts all

Mint látható, minden csoport összes hostja (web, db, és minden) jelennek meg.

Az elérhető állomások felsorolásához a web csak a csoportot futtassa a következő parancsot:

$ ansible --list-hosts web

Amint láthatja, a web csoport jelenik meg.

Ugyanígy felsorolhatja az összes elérhető gazdagépet a db csoportot a következő paranccsal:

$ ansible --list-hosts db

Amint láthatja, a db csoport jelenik meg.

Globális tények hozzáadása a JSON készletfájlhoz:

Az Ansible-ben a változókat tényeknek is nevezzük. Globális tények vagy globális változók elérhetők a JSON-készletfájl minden csoportjának minden gazdagépétől. Ebben a részben bemutatom, hogyan adhat hozzá globális tényeket vagy globális változókat egy lehetségesbe.

Hozzáadhat globális tényeket vagy globális változókat a vars szakasz belül minden szakasz a JSON készletfájlban az alábbiak szerint:


"minden":
"otthont ad":

,
"vars":
"változó1": "érték1",
"változó2": "érték2"
,
"gyerekek":
"web":

,
"db":




Például felveheti a globális tényeket / változókat webgyökér és index ban,-ben vars szakasz a JSON készletfájlban az alábbiak szerint:


"minden":
"otthont ad":
"vm1.nodekite.com ": null,
"vm2.nodekite.com ": null
,
"vars":
"webroot": "/ var / www / html",
"index": "index.php "
,
"gyerekek":
"web":
"otthont ad":
"vm3.nodekite.com ": null,
"vm4.nodekite.com ": null

,
"db":
"otthont ad":
"vm5.nodekite.com ": null,
"vm6.nodekite.com ": null




Ha végzett, nyomja meg a gombot + S a JSON leltárfájl mentéséhez.

Annak ellenőrzésére, hogy a globális tények / változók működnek-e, új játékkönyvet fogok létrehozni print_vars1.yaml. A játékkönyv célja a tények / változók kinyomtatása a hibakeresés modulja az Ansible. Ez később a tény / változó elsőbbség megértésében is segít.

Tehát hozzon létre egy új játékkönyvet print_vars1.yaml a te játékkönyvek / könyvtárba, és írja be a következő sorokat a print_vars1.yaml fájl.

- házigazdák: mind
felhasználó: ansible
feladatok:
- név: Webgyökér és index nyomtatása
hibakeresés:
msg: 'WebRoot webroot és Index index'

Ha végzett, nyomja meg a gombot + S hogy megmentse a print_vars1.yaml fájl.

Annak ellenőrzéséhez, hogy a globális tények / változók működnek-e, futtassa a print_vars1.yaml játékkönyv az alábbiak szerint:

$ ansible-playbook playbooks / print_vars1.yaml

A játékkönyvnek sikeresen futnia kell.

Görgessen vissza a FELADAT szakasz. Mint láthatja, a webgyökér és index tények / változók a JSON-készletfájlom minden gazdagépére vonatkoznak. Tehát a globális tények / változók működnek.

Csoporttények hozzáadása a JSON készletfájlba:

Felvehet tényeket / változókat egy adott gazdagépcsoportra is. Ebben a részben bemutatom, hogyan adhat hozzá csoportos tényeket / változókat a JSON-készletfájljába.

Ugyanezt fogom hozzáfűzni webgyökér és index tények a web JSON készletfájlom gazdagépcsoportja. Ezeknek a tényeknek az értéke eltérő lesz. Azért tettem, hogy megértsd, hogyan működnek a tények / változó elsőbbség az Ansible-ben.

A tények hozzáadásához webgyökér és index ban,-ben web gazdagépcsoport, adjon hozzá egy vars szakasz a web szakasz a JSON készletfájlban az alábbiak szerint:


"minden":
"otthont ad":
"vm1.nodekite.com ": null,
"vm2.nodekite.com ": null
,
"vars":
"webroot": "/ var / www / html",
"index": "index.php "
,
"gyerekek":
"web":
"otthont ad":
"vm3.nodekite.com ": null,
"vm4.nodekite.com ": null
,
"vars":
"webroot": "/ web / public_html",
"index": "index.html "

,
"db":
"otthont ad":
"vm5.nodekite.com ": null,
"vm6.nodekite.com ": null




Ha végzett, nyomja meg a gombot + S a JSON leltárfájl mentéséhez.

A tények ellenőrzéséhez futtassa a print_vars1.yaml játékkönyv az alábbiak szerint:

$ ansible-playbook playbooks / print_vars1.yaml

Amint láthatja, a csoport tényei webgyökér és index csak a gazdagépek számára érhetők el vm3.nodekite.com és vm4.nodekite.com, a házigazdák a web csoport.

Vegye észre, hogy a csoport tényei (webgyökér és index) felváltotta a globális tényeket (webgyökér és index). Tehát azt mondhatja, hogy a csoportos tényeknek nagyobb az elsőbbsége, mint a globális tényeknek.

Gazdatények hozzáadása a JSON készletfájlba:

Felvehet gazdagép-specifikus tényeket / változókat a JSON-készletfájljába is. Ebben a részben bemutatom, hogyan adhat gazdagép-specifikus tényeket / változókat a JSON-készletfájljába.

Globális vagy csoportos tények szempontjából megtartottuk a gazdagépek értékét nulla.

A gazdagép tényeinek hozzáadásához cserélje le nulla a JSON leltárfájlban szereplő állomásadatokkal az alábbiak szerint:

"otthont ad":
"host1":
"var1": "value1",
"var2": "value2",
,
"host2":
"var2": "value3",
"var3": "value4",

Például a index fogadó tény a vm5.nodekite.com host, cserélje le nulla a fogadó tényekkel az alábbiak szerint.


"minden":
"otthont ad":
"vm1.nodekite.com ": null,
"vm2.nodekite.com ": null
,
"vars":
"webroot": "/ var / www / html",
"index": "index.php "
,
"gyerekek":
"web":
"otthont ad":
"vm3.nodekite.com ": null,
"vm4.nodekite.com ": null
,
"vars":
"webroot": "/ web / public_html",
"index": "index.html "

,
"db":
"otthont ad":
"vm5.nodekite.com ":
"index": "index.py "
,
"vm6.nodekite.com ": null




Ha végzett, nyomja meg a gombot + S a JSON leltárfájl mentéséhez.

A rendelkezésre álló tények ellenőrzéséhez futtassa a print_vars1.yaml játékkönyv az alábbiak szerint:

$ ansible-playbook playbooks / print_vars1.yaml

Mint láthatja, a index tény csak a vm5.nodekite.com házigazda.

Vegye figyelembe azt is, hogy a fogadó tény felváltotta a globális tényt. A fogadó tényeknek / változóknak az Ansible-ben van a legnagyobb prioritása. Tehát a fogadó tények / változók felváltják a csoport tényeket / változókat és a globális tényeket / változókat.

Következtetés:

Ebben a cikkben bemutattam, hogyan lehet egy Ansible készletfájlt JSON formátumban felépíteni. Megmutattam, hogyan lehet gazdagépeket hozzáadni, gazdagépcsoportokat hozzáadni, globális tényeket hozzáadni, csoporttényezőket hozzáadni és gazdagépeket hozzáadni a készletfájljához JSON formátumban.

Az Xdotool használata az egérkattintások és a billentyűleütések ösztönzéséhez Linux alatt
Az Xdotool egy ingyenes és nyílt forráskódú parancssori eszköz az egérkattintások és a billentyűleütések szimulálására. Ez a cikk egy rövid útmutatót ...
A top 5 ergonómikus számítógépes egértermék Linuxhoz
Hosszan tartó számítógép-használat okoz-e fájdalmat a csuklóján vagy az ujjain?? Merev ízületek szenvednek, és folyamatosan kezet kell rázniuk? Égő fá...
Az egér és az érintőpad beállításainak módosítása az Xinput használatával Linux alatt
A legtöbb Linux disztribúció alapértelmezés szerint „libinput” könyvtárral szállítja a rendszer bemeneti eseményeit. Feldolgozhatja a Wayland és az X ...