Ansible Tutorial - Tanuljon meg írni Ansible Playbooks

Ebben az Ansible Tutorial blogban megtanulhatja, hogyan kell írni az Ansible playbookokat, adhoc parancsokat, és hogyan kell gyakorlatot végrehajtani az Nginx telepítéséhez a gazdagépen.

Ansible bemutató

Remélem, hogy átnézte az előző blogomat, hogy tanuljon és az Ansible leggyakrabban használt terminológiáit. Ha még nem tette meg, kérjük, ellenőrizze, hogy jobban megismerhesse ezt az Ansible bemutatót.Azt is tudnia kell, hogy az Ansible kulcsfontosságú részét képezi a konfigurációkezelés, a telepítés és a hangszerelés eszközeként.



Hadd adjak áttekintést erről az „Ansible Tutorial” -ról:



Ansible Playbook bemutató | DevOps képzés | Edureka

Ansible Tutorial - Ansible Playbooks írása

Az Ansible lejátszási könyveket YAML formátumban írják. Ez egy ember által olvasható adatszerializációs nyelv. Általában konfigurációs fájlokhoz használják. Sok olyan alkalmazásban is használható, ahol adatokat tárolnak.



Az Ansible esetében szinte minden YAML fájl listával kezdődik. A lista minden eleme a kulcs / érték párok listája, amelyeket általában „hash” -nak vagy „szótárnak” neveznek. Tehát tudnunk kell, hogyan kell listákat és szótárakat írni a YAML-ben.

A lista minden tagja ugyanazon a behúzási szinten kezdődő sorok kezdőbetűje „-” (kötőjel és szóköz). Bonyolultabb adatstruktúrák lehetségesek, például szótárak listája vagy vegyes szótárak, amelyek értékei listák vagy mindkettő keveréke.

például. Az edurekai osztályok listája:



osztályok: - marketing - értékesítés - megoldások - tartalomírás - támogatás - termék

Most hadd mondjak egy példát egy szótárra:

-USA-kontinens: Észak-Amerika -főváros: Washington DC-népesség: 319 millió

Gazdák és felhasználók:

A játékkönyv minden egyes játékához ki kell választania, hogy az infrastruktúrájában mely gépeket célozza meg, és mely távoli felhasználókat hajtsa végre a feladatok elvégzésével. A gazdagépek felvétele az Ansible leltárba a hosztgépek IP-címeit fogja használni.

A gazdagépek általában egy vagy több csoportot vagy gazdagép mintát sorolnak fel, kettőspontokkal elválasztva. A távoli felhasználó csak a felhasználói fiók neve.

Változók:

Az Ansible a korábban definiált változókat használja a játékkönyvek és szerepek nagyobb rugalmasságának lehetővé tételéhez. Használhatók egy adott érték halmazának áttekintésére, különféle információk elérésére, például egy rendszer gazdagépnevére, és a sablonokban található egyes karakterláncok konkrét értékekkel való helyettesítésére.

Az Ansible már meghatározza a változók gazdag halmazát, az egyes rendszerekhez külön-külön. Amikor az Ansible egy rendszeren fut, az összes tényt és információt összegyűjti és változóként állítja be.

De van egy szabály változók megnevezéséhez. A változó neveknek betűknek, számoknak és aláhúzásnak kell lenniük. A változóknak mindig betűvel kell kezdődniük. Például. A wamp_21, a port5 érvényes változónevek, míg a 01_port, _server érvénytelen.

Feladatok:

A Feladatok lehetővé teszik a konfigurációs házirend bitjeinek felbontását kisebb fájlokra. A feladat tartalmazza a más fájlokból történő letöltést. Az Ansible feladatai nagyjából az angol jelentéssel járnak.

Pl .: Telepítés, frissítés stb.

Kezelők:

A kezelők ugyanolyanok, mint az Ansible playbook rendszeres feladatai, de csak akkor futtathatók, ha a Feladat tartalmaz értesítési utasítást, és azt is jelzi, hogy ez valamit megváltoztatott. Például, ha módosít egy konfigurációs fájlt, akkor a konfigurációs fájlra hivatkozó feladat értesítheti a szolgáltatás újraindítási kezelőjét.

Mondok egy példát egy játékkönyvre, amely elindítja az Apache httpd kiszolgáló programot:

----otthont ad: webszerverek akinek: http_port: 80 max_clients: 200 remote_user: gyökér feladatok: - név: győződjön meg arról, hogy az apache a legújabb verzió yum: név = httpd állapot = legújabb - név: írja az apache konfigurációs fájlt sablon: src = / srv / httpd.j2 dest = / etc / httpd.conf értesíteni: - indítsa újra az apache-t - név: győződjön meg arról, hogy az apache fut (és engedélyezze indításkor) szolgáltatás: név = httpd állapot = elindítva engedélyezve = igen kezelők: - név: indítsa újra az apache-t szolgáltatás: név = httpd állapot = újraindult

Remélem, hogy a példa a játékkönyv-összetevők összes leírásához fog kapcsolódni, amelyeket fent említettem. Ha még mindig nem világos számodra, ne aggódj, minden kétséged egyértelművé válik a blog későbbi részében.

Ez a játékkönyvekről szól. A játékkönyveket, amelyeket te írsz. De az Ansible a modulok széles skáláját is kínálja, amelyeket használhat.

Ansible Tutorial - modulok

Az Ansible moduljai idempotensek. A RESTful szolgáltatás szempontjából, hogy egy művelet (vagy szervizhívás) idempotens legyen, az ügyfelek ugyanazt a hívást többször is elvégezhetik, miközben ugyanazt az eredményt produkálják. Más szóval, ha több azonos kérést ad meg, ugyanaz a hatása, mint egyetlen kérésnek.

Különböző típusú modulok vannak az Ansible-ben

  • Alapmodulok
  • extrák modulok

Core modulok

Ezeket a modulokat az alapvető Ansible csapat tartja fenn, és mindig magával szállítja. Valamennyi kérésnél valamivel magasabb prioritást kapnak, mint az „extrák” repókban.

Ezeknek a moduloknak a forrását az Ansible tárolja a GitHubon az Ansible-modules-core-ban.

Extrák modulok

Ezeket a modulokat jelenleg az Ansible csomagban szállítjuk, de a jövőben külön is szállíthatók. Ezeket többnyire az Ansible közösség is fenntartja. A nem magfontosságú modulok továbbra is teljes mértékben használhatók, de valamivel alacsonyabb válaszadási arányt kaphatnak a kérdésekre és a lekérdezésekre.

A népszerű „extrák” modulokat idővel népszerűsíteni lehet alapmodulokká.

Ezeknek a moduloknak a forrását az Ansible tárolja a GitHub-on, az Ansible-modules-extrákban.

Például: A Távfelügyeleti modulok egyik extrájának modulja az ipmi_power modul, amely a távoli gépek számára tápfeszültséget jelent. A futtatásához python 2.6 vagy újabb és pyghmi szükséges.

Használhatja ezt a modult egy adhoc parancs megírásával, amelyet az alábbiakban írtam:

mély másolat vs sekély másolat java
ipmi_power: name = 'test.domain.com' user = 'localhost' password = 'xyz' state = 'on'

Ansible Tutorial - Visszatérési értékek

Az Ansible modulok általában olyan adatstruktúrát adnak vissza, amely regisztrálható egy változóba, vagy közvetlenül megtekinthető, amikor az Ansible program kimeneti. Minden modul opcionálisan dokumentálhatja saját egyedi visszatérési értékeit.

Néhány példa a visszatérési értékekre:

  • megváltozott: logikai értékkel tér vissza, valahányszor a feladat bármilyen változtatást végrehajt.
  • sikertelen: logikai értéket ad vissza, ha a feladat sikertelen
  • msg: egy karakterláncot ad vissza, amelynek általános üzenete van továbbítva a felhasználónak.

Ansible Tutorial - AdHoc parancsok

Az adhoc parancsok egyszerűek, egy sorosak valamilyen művelet végrehajtására. Az Ansible parancsokkal futó modulok adhoc parancsok.

Például:

ansible host -m netscaler -a 'nsc_host = nsc.example.com felhasználó = apiuser jelszó = apipass' 

A fenti adhoc parancs a netscaler modult használja a kiszolgáló letiltására. Több száz modul érhető el az Ansible-ban, ahonnan hivatkozhat és írhat adhoc parancsokat.

Nos, elég az összes elméleti magyarázattal, hadd magyarázzam meg néhány kézzel az Ansible-t.

Ansible bemutató - kéz

Playbook-ot fogok írni, hogy telepítsem az Nginx-et a csomópontomra / gazdagépemre.

Kezdjük :)

1. lépés: Csatlakozzon a gazdagépekhez az SSH használatával. Ehhez létre kell hoznia egy nyilvános SSH-kulcsot.

Használja az alábbi parancsot:

ssh-keygen

Generáljon Ssh Key-t - Ansible Tutorial - Edureka

Amint a fenti pillanatképen látható, a parancs ssh-keygen generált egy nyilvános SSH kulcsot.

2. lépés: A következő feladatod a nyilvános SSH kulcs másolása a gazdagépeken. Ehhez használja az alábbi parancsot:

ssh-copy-id -i gyökér @

A fenti pillanatkép azt mutatja, hogy az SSH kulcs átmásolásra kerül a gazdagépekre.

3. lépés: Sorolja fel a gazdagépek / csomópontok IP-címeit a készletben.

Használja a következő parancsot:

vi / etc / ansible / hosts

szkenner használata java-ban

Ez megnyit egy vi szerkesztőt, ahol felsorolhatja a gazdagépek IP-címeit. Ez most a készleted.

4. lépés: Győződjünk meg arról, hogy létrejött-e a kapcsolat.

A fenti pillanatkép megerősíti, hogy kapcsolat jött létre a vezérlőgép és a gazdagép között.

5. lépés: Írjunk most egy játékkönyvet az Nginx telepítésére a gazdagépre. A játékkönyvét a vi szerkesztőbe írhatja. Ehhez egyszerűen hozza létre a játékkönyvet a következő paranccsal:

vi

Az alábbi pillanatkép bemutatja a játékkönyvemet a Nginx telepítéséhez, YAML formátumban írva.

A játékkönyv feladatait a YAML szótárak listájaként definiálja, és fentről lefelé hajtja végre. Ha több gazdagépünk van, akkor minden feladatot megpróbálunk minden állomáshoz, mielőtt továbblépnénk a következőre. Minden feladatot szótárként definiálunk, amelynek több kulcsa lehet, például „név” vagy „sudo”, amelyek jelzik a feladat nevét és azt, hogy sudo jogosultságokra van-e szükség.

Egy változó szerver port van beállítva, amely a TCP porton hallgat 8080 beérkező kérésekhez.

Itt az első feladat az Nginx telepítéséhez szükséges csomag megszerzése, majd telepítése.Belsőleg az Ansible ellenőrzi, hogy létezik-e a könyvtár, és létrehozza-e, ha nem, különben nem tesz semmit.

A következő feladat az Nginx konfigurálása.Az Nginx-ben az összefüggések a konfiguráció részleteit tartalmazzák.

Itt a sablon egy fájl, amelyet telepíthet a gazdagépekre. A sablonfájlok azonban tartalmaznak néhány referenciaváltozót is, amelyeket az Ansible playbook részeként definiált változókból vagy a gazdagépektől összegyűjtött tényekből nyernek. A konfigurációs részleteket tartalmazó tényeket egy forráskönyvtárból húzzuk, és másoljuk a célkönyvtárba.

A kezelők itt határozzák meg a végrehajtandó műveletet csak a feladatok vagy az állapotváltozások értesítése után. Ebben a játékkönyvben definiáltuk, értesítsük: indítsuk újra az Nginx kezelőt, amely újraindítja az Nginx szolgáltatást, amint a fájlokat és sablonokat átmásoljuk a gazdagépekre.

Most mentse el a fájlt, és lépjen ki.

6. lépés: Most futtassuk ezt a játékkönyvet az alábbi paranccsal:

ansible-playbook .yml

A fenti képernyőképen láthatjuk, hogy a feladatunk végrehajtja az Nginx telepítését.

7. lépés: Ellenőrizzük, hogy az Nginx telepítve van-e a gépemre. Használja az alábbi parancsot:

ps waux | grep nginx

A fenti képernyőképen látható, hogy különböző 3555 és 103316 folyamatazonosítók futnak, amelyek biztosítják, hogy az Nginx futjon a gazdagépeken.

Gratulálunk! Sikeresen telepítette az Nginx-et a gazdagépére az Ansible playbook használatával. Remélem, örömmel olvasta ezt az Ansible Tutorial blogot. Kérjük, tudassa velem, ha bármilyen kérdése van az alábbi megjegyzés részben.

Ha megtalálta ezt Ansible bemutató ' ide vonatkozó, nézd meg a az Edureka, egy megbízható online tanulási vállalat, amelynek több mint 250 000 elégedett tanulóval rendelkező hálózata elterjedt az egész világon. Az Edureka DevOps tanúsító tanfolyam segíti a tanulókat, hogy az SDLC több lépésének automatizálásához szakértelmet szerezzenek a DevOps különféle folyamataiban és eszközeiben, mint például a Báb, a Jenkins, az Ansible, a Nagios és a Git.