Lehetséges

Hogyan lehet használni az egyedi egyedi tényeket

Hogyan lehet használni az egyedi egyedi tényeket
A tények olyanok, mint az Ansible változók. Az Ansible sok tényt generál, attól függően, hogy milyen gazdagépet automatizál. Ha szükséges, az Ansible-ben egyéni tényeket / változókat is meghatározhat.

Az Ansible háromféle egyedi tényt definiálhat.

1) Globális tények: Ezek a tények a készletfájl minden állomásán elérhetők.
2) A csoport tényei: Ezek a tények csak egy adott gazdagépcsoportból vagy egy gazdagépcsoportból érhetők el.
3) Fogadó tények: Ezek a tények csak egy adott gazdagéptől érhetők el.

Ebben a cikkben megmutatom, hogyan kell működni az Ansible egyéni tényekkel. 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 beállítása:

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

Projekt könyvtár létrehozása egyedi tények / a te ITTHON könyvtárba, futtassa a következő parancsot:

$ mkdir -pv egyéni tények / playbooks, host_vars, group_vars

Most keresse meg a egyedi tények / könyvtárat az alábbiak szerint:

$ cd egyedi tények /

Hozzon létre egy Ansible konfigurációs fájlt lehetséges.vö a projekt könyvtárban az alábbiak szerint:

$ nano ansible.vö

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

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

Ha végzett, nyomja meg a gombot + x utána Y és hogy megmentse a lehetséges.vö konfigurációs fájl.

Most hozzon létre egy Ansible készletfájlt otthont ad a projekt könyvtárban az alábbiak szerint:

$ nano házigazdák

Írja be a következő sorokat a otthont ad leltárfájl.

vm1.nodekite.com
vm2.nodekite.com
[web]
vm3.nodekite.com
vm4.nodekite.com
[adatbázis]
vm [5: 6].nodekite.com

Ha végzett, nyomja meg a gombot + x utána Y és hogy megmentse a otthont ad leltárfájl.

Az összes elérhető gazdagép felsorolásához a készletfájlban futtassa a következő parancsot:

$ ansible all --list-hosts

Mint láthatja, hat gazdagép van a készletfájlomban.

A listában elérhető gazdagépek felsorolásához web a készletfájl csoportjához futtassa a következő parancsot:

$ ansible web --list-hosts

Amint láthatja, két gépem van (vm3.nodekite.com és vm4.nodekite.com) ban,-ben web a leltárfájlom csoportja.

A listában elérhető gazdagépek felsorolásához adatbázis a készletfájl csoportjához futtassa a következő parancsot:

$ ansible adatbázis - list-hosts

Amint láthatja, két gépem van (vm5.nodekite.com és vm6.nodekite.com) ban,-ben adatbázis a leltárfájlom csoportja.

Munka lehetséges globális tényekkel:

Ebben a részben bemutatom, hogyan definiálhatja az Ansible globális tényeket / változókat a készletfájljában, és hogyan érheti el azokat az Ansible playbookokból. Azt is megmutatom, hogyan definiálhatjuk a globális tényeket / változókat egy külön fájlban.

Először nyissa meg a otthont ad leltárfájl a következő paranccsal:

$ nano házigazdák

Most adja hozzá a megjelölt vonalakat a otthont ad leltárfájl. Ha végzett, nyomja meg a gombot + x utána Y és hogy elmentse a fájlt.

"

Globális tényeket ad hozzá a mind: vars szakasz. Itt adtam hozzá a web_url globális tény.

Hozzon létre egy új játékkönyvet print_global_fact.yaml ban,-ben játékkönyvek / könyvtárat az alábbiak szerint:

$ nano playbooks / print_global_fact.yaml

Ezután írja be a következő sorokat a print_global_fact.yaml fájl.

- házigazdák: mind
felhasználó: ansible
feladatok:
- név: A "web_url" globális tény értékének kinyomtatása
hibakeresés:
msg: 'Web URL: web_url'

A játékkönyv célja a web_url globális tény.

Ha végzett, nyomja meg a gombot + x utána Y és hogy megmentse a print_global_fact.yaml fájl.

Most futtassa a print_global_fact.yaml játékkönyv az alábbiak szerint:

$ ansible-playbook playbooks / print_global_fact.yaml

Amint láthatja, a leltárfájlomban található összes gazdagép hozzáférhet a globális tényhez web_url.

Globális tényeket külön fájlba is felvehet. Így tisztán tarthatja a leltárfájlt. Nézzük meg, hogyan kell csinálni.

Először távolítsuk el a globális tényeket a otthont ad leltárfájl.

$ nano házigazdák

Most távolítsa el a megjelölt sorokat a leltárfájlból, és nyomja meg az gombot + x, utána Y és a leltárfájl mentéséhez.

Ezután hozzon létre egy új fájlt minden ban,-ben group_vars / könyvtárat az alábbiak szerint:

$ nano group_vars / all

A globális tény hozzáadásával web_url, írja be a következő sort a group_vars / all fájl.

web_url: https: // www.linuxhint.com

Ha végzett, nyomja meg a gombot + x utána Y és hogy megmentse a group_vars / all fájl.

Annak ellenőrzése, hogy hozzáférhet-e a globális tényhez web_url, futtassa a print_global_fact.yaml játékkönyv a következőképpen:

$ ansible-playbook playbooks / print_global_fact.yaml

Mint láthatja, a leltárfájlomban található összes gazdagép hozzáférhet a globális tényhez web_url.

A csoport lehetséges tényeivel való munka:

Ebben a részben bemutatom, hogyan definiálhatja az Ansible csoport tényeket / változókat a leltárfájljában, és hogyan érheti el azokat az Ansible játékkönyvekből. Azt is megmutatom, hogyan definiálhatjuk a csoportos tényeket / változókat egy külön fájlban.

Először nyissa meg a otthont ad leltárfájl a következő paranccsal:

$ nano házigazdák

Ha van fogadó csoportod csoport1, akkor hozzáad egy csoport tényeket / változókat az adott gazdagéphez az a csoport1: vars szakasz a leltárfájlban.

[csoport1]

[group1: vars]
változó1 = érték1
változó2 = érték2

Például a csoport tények / változók hozzáadásához domain név és database_backends a web gazdagépcsoportot, beírhatja a készletfájlban a megjelölt sorokat.

Ha végzett, nyomja meg a gombot + x utána Y és a leltárfájl mentéséhez.

Nyomtatáshoz és annak teszteléséhez, hogy hozzáférhetünk-e a csoport tényeihez, hozzon létre egy új játékkönyvet print_group_facts.yaml ban,-ben játékkönyvek / könyvtárat az alábbiak szerint:

$ nano playbooks / print_group_facts.yaml

Írja be a következő sorokat a print_group_facts.yaml fájl.

- gazdagépek: web
felhasználó: ansible
feladatok:
- név: Csoporttények nyomtatása
hibakeresés:
msg: 'Domain név: domain_name Adatbázis háttérkép: database_backend'

Ha végzett, nyomja meg a gombot + x utána Y és hogy megmentse a print_group_facts.yaml fájl.

Most futtassa a print_group_facts.yaml játékkönyv az alábbiak szerint:

$ ansible-playbook playbooks / print_group_facts.yaml

Mint látható, a házigazdák a web csoport elérheti a domain név és database_backend csoport tények / változók.

Most tisztítsuk meg a leltárfájlt, és nézzük meg, hogyan adhatunk hozzá csoportos tényeket / változókat egy külön fájlba.

Először nyissa meg a otthont ad leltárállomány az alábbiak szerint:

$ nano tények

Távolítsa el a megjelölt vonalakat a otthont ad leltárfájl. Ha végzett, nyomja meg a gombot + x utána Y és hogy megmentse a otthont ad leltárfájl.

Ahogy hozzáadunk csoportváltozókat a web gazdagépcsoportot, hozzon létre egy új fájlt web (ugyanaz, mint a csoport neve) a group_vars / könyvtárat az alábbiak szerint:

$ nano group_vars / web

A csoport tényeinek hozzáadása domain név és database_backend a web gazdagépcsoport, adja hozzá a következő sorokat a group_vars / web fájl.

domain_name: web.linuxhint.com
database_backend: pgsql

Ha végzett, nyomja meg a gombot + x utána Y és hogy megmentse a group_vars / web fájl.

Annak ellenőrzése, hogy a web A csoport elérheti a csoport tényeit, futtathatja a print_group_facts.yaml játékkönyv az alábbiak szerint:

$ ansible-playbook playbooks / print_group_facts.yaml

Mint látható, a házigazdák a web csoport elérheti a domain név és database_backend csoport tények / változók.

Munka lehetséges gazda tényekkel:

Ebben a részben bemutatom, hogyan definiálhatja az Ansible host tényeket / változókat a készletfájljában, és hogyan érheti el azokat az Ansible playbookokból. Azt is megmutatom, hogyan definiálhatja a gazdagép tényeket / változókat egy külön fájlban.

Először nyissa meg a otthont ad leltárfájl a következő paranccsal:

$ nano házigazdák

A készletfájlban a gazdagép DNS-neve vagy IP-címe után adhatja hozzá a gazdagép tényeit / változóit az alábbiak szerint:

www.domain1.com változó1 = érték1 változó2 = érték2
192.168.22.2 változó1 = érték3 változó2 = érték4

Például felveheti a gazdagép tényeit / változóit domain név és database_backend a házigazdáknak vm3.nodekite.com és vm4.nodekite.com, az alábbi képernyőképen jelölt módon.

Figyelje meg, hogy a domain név és database_backend a tények / változók minden gazdagép esetében eltérőek.

Ha elkészült a gazdagép / változók hozzáadásával, nyomja meg a gombot + x, utána Y és hogy megmentse a otthont ad leltárfájl.

Mivel ugyanazokat a tényeket / változókat adtam hozzá, mint a csoport tények / változók példában, használhatjuk a print_group_facts.yaml játékkönyv e tények / változók hozzáférhetőségének tesztelésére is.

Futtassa a print_group_facts.yaml játékkönyv az alábbiak szerint:

$ ansible-playbook playbooks / print_group_facts.yaml

Amint láthatja, a gazdagép tényei / változói hozzáférhetők a megadott gazdagéphez. Az értékek minden gazdagép esetében is eltérőek.

Mivel a gazdagépek mindegyike külön sorban található a készletfájlomban, könnyen hozzáadhatom a gazdagép tényeit / változóit a készletfájlomba. De ha tartományokat használ a gazdagépek meghatározásához a készletfájlban, az alábbi képernyőképen jelölve, akkor nem adhat hozzá ilyen gazdagép-tényeket / változókat.

Fogadó tényeket / változókat külön fájlba is felvehet, csakúgy, mint a globális és csoportos tények / változók esetében.

Gazdatények / változók hozzáadása a vm5.nodekite.com gazdagép, hozzon létre egy új fájlt vm5.nodekite.com (ugyanaz, mint a gazdagép DNS-neve) a host_vars / könyvtárat az alábbiak szerint:

$ nano host_vars / vm5.nodekite.com

Hozzáadhatja a gazdagép tényeit / változóit db_port és db_name a házigazda számára vm5.nodekite.com a következő sorokkal.

db_port: 3306
db_név: demo1

Ha végzett, nyomja meg a gombot + x utána Y és hogy megmentse a vm5.nodekite.com fájl.

Ugyanígy hozzá kell adni a gazdagép tényeit / változóit a gazdagéphez vm6.nodekite.com, hozzon létre egy új fájlt vm6.nodekite.com ban,-ben host_vars / könyvtárat az alábbiak szerint:

$ nano host_vars / vm6.nodekite.com

Hozzáadhatja a gazdagép tényeit / változóit db_port és db_name a házigazda számára vm6.nodekite.com a következő sorokkal.

db_port: 8877
db_név: app1

Ha végzett, nyomja meg a gombot + x utána Y és hogy megmentse a vm6.nodekite.com fájl.

Nyomtatáshoz és annak teszteléséhez, hogy hozzáférhetünk-e a gazdagép tényekhez / változókhoz, hozzon létre egy új játékkönyvet print_host_facts.yaml ban,-ben játékkönyvek / könyvtárat az alábbiak szerint:

$ nano playbooks / print_host_facts.yaml

Írja be a következő sorokat a print_host_facts.yaml fájl.

- hosztok: adatbázis
felhasználó: ansible
feladatok:
- név: A gazdagép tényeinek nyomtatása
hibakeresés:
msg: 'Adatbázis neve: db_name Adatbázis port: db_port'

Ha végzett, nyomja meg a gombot + x utána Y és hogy megmentse a print_host_facts.yaml fájl.

Annak ellenőrzésére, hogy a gazdagép vm5.nodekite.com és vm6.nodekite.com hozzáférhet a gazdagép tényekhez / változókhoz, futtathatja a print_host_facts.yaml játékkönyv az alábbiak szerint:

$ ansible-playbook playbooks / print_host_facts.yaml

Mint látható, a házigazdák vm5.nodekite.com és vm6.nodekite.com hozzáférhet a db_name és db_port fogadó tények / változók.

Az összeset összefoglalva: Ansible Facts Precedence

Ebben a részben az Ansible fact / változó elsőbbségről fogok beszélni. Tehát kezdjük.

Mielőtt nekilátnánk, tisztítsuk meg a leltárfájlt.

Nyissa meg a otthont ad leltárfájl a következő paranccsal:

$ nano házigazdák

Távolítsa el a megjelölt szakaszt a készletfájlból.

Így kell kinéznie a készletfájljának ezen a ponton.

Most adja hozzá a megjelölt sort a készletfájljához. Ezek a sorok hozzáadják a globális tényeket / változókat tény_kör és kikötő.

Ezután adja hozzá a megjelölt sorokat a készletfájljához. Ezek a sorok hozzáadják a tény_kör és kikötő tények / változók a adatbázis csoport.

Végül adja hozzá a tény_kör és kikötő fogadó tények / változók a vm3.nodekite.com és vm4.nodekite.com gazdagépek, az alábbi képernyőképen látható módon.

Ha végzett, nyomja meg a gombot + x utána Y és a leltárfájl mentéséhez.

A globális, csoportos és gazda tények / változók értékének kinyomtatásához hozzon létre egy új játékkönyvet tény_precendencia.yaml ban,-ben játékkönyvek / könyvtárat az alábbiak szerint:

$ nano playbooks / fact_precedence.yaml

Írja be a következő sorokat a tény_precedencia.yaml fájl.

- házigazdák: mind
felhasználó: ansible
feladatok:
- név: Minden tény kinyomtatása
hibakeresés:
msg: 'Ténykör: fact_scope Port: port'

Ha végzett, nyomja meg a gombot + x utána Y és hogy megmentse a tény_precedencia.yaml fájl.

A globális, csoportos és gazdagép tények / változók kinyomtatásához futtassa a tény_precedencia.yaml játékkönyv az alábbiak szerint:

$ ansible-playbook playbooks / fact_precedence.yaml

Amint láthatja, a globális, csoportos és gazdagép tények / változók kinyomtatásra kerülnek.

Vegyük észre, hogy a csoportos tények / változók helyettesítették a globális tényeket / változókat (1). Ezenkívül vegye figyelembe, hogy a fogadó tények / változók helyettesítették a csoportos és a globális tényeket / változókat is (2).

Az Ansible tény / változó elsőbbsége a következő:

Host tény> Csoport tény> Globális tény

Következtetés:

A cikk elolvasása után képesnek kell lennie arra, hogy kényelmesen dolgozzon az Ansible globális, csoportos és fogadó tényekkel / változókkal. Ne feledje az Ansible egyéni ténybeli elsőbbséget. Ez segít az Ansible játékkönyvek egyszerűbb hibakeresésében.

Vulkan Linux felhasználók számára
A grafikus kártyák minden új generációjával azt látjuk, hogy a játékfejlesztők átlépik a grafikus hűség határait, és egy lépéssel közelebb kerülnek a ...
OpenTTD vs Simutrans
Saját közlekedési szimuláció létrehozása szórakoztató, pihentető és rendkívül csábító lehet. Ezért meg kell győződnie arról, hogy a lehető legtöbb ját...
OpenTTD bemutató
Az OpenTTD az egyik legnépszerűbb üzleti szimulációs játék. Ebben a játékban létre kell hoznia egy csodálatos szállítási vállalkozást. Azonban kezdete...