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
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
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
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
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: mindfelhaszná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
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
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
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.