Tudjon meg többet a Feladatok Automatizálása Lehetséges Kézikönyvről

Tudjon meg többet az Ansible Playbookról a feladatok automatizálására.


Korábban a Lehetséges bevezetésről, a telepítési útmutatóról, majd a következőkben beszéltünk a Playbookról és annak építőelemeiről.

Mi az a lehetséges Playbook??

A játékkönyv egy lehetséges automatizálási nyelv. Ez egy egyszerű fájl, amely utasításokat tartalmaz. A játékkönyvekben definiáljuk, mit akarunk. A játékrajzok olyan lejátszásokat tartalmaznak, amelyek feladatokat futtatnak, és ezek a feladatok modulokat futtatnak. Feladatukat egymást követve hajtják végre.

Például annyira egyszerű lehet, hogy egy parancs-sorozatot futtat különféle szerveren egymás után, és sorrendben újraindíthatja azokat. Vagy ugyanolyan összetett lehet, mint több száz virtuális gép telepítése és biztosítása nyilvános és magán felhőben, beleértve a terheléselosztást, a figyelést, a hálózati beállításokat.

Playbook nyelv

A játékrajzok egyszerű fájlok, YAML kóddal írva.

YAML egy adat-sorosítási nyelv. Ez emberi és géppel olvasható. A YAML kódok írásához nincs szükség speciális kódolási ismeretekre. Az adatok sorosítási nyelvét fordítónak tekintheti, ha az összes adatszerkezetét lebontja, és sorba rendezheti azokat olyan sorrendben, amely későbbi felhasználás céljából újra rekonstruálható. Használhatja ezt a rekonstruált adatszerkezetet ugyanabban a környezetben, vagy akár egy másik környezetben is.

Az alábbiakban található egy minta YAML fájl a mysql telepítéséhez:


– név: A MySQL telepítése
házigazdák: geekflare-mysql-service
feladatok:
– név: A MySQL telepítése
művelet: $ ansible_pkg_mgr pkg = mysql-szerver állapota = telepítve
– név: A Python MySQL DB hozzáadása
művelet: $ ansible_pkg_mgr pkg = python-mysqldb state = telepítve

Lehetséges Playbook alapjai

A cikk e része lefedi az alapvető lehetséges koncepciókat, hogy jobban megértsék az Ansible Playbook-ot.

Gazdagépek és felhasználók

Az Ansible igényeinek megfelelő gépek vannak az infrastruktúrában azon az infrastruktúrán, amelyen a játékot ki kell helyezni az Ansible Playbookból. A gazdagépeket az IP-címeikkel hozzáadják az Lehetséges készlethez. A gazdák egy vagy több csoport vagy gazdagép mintázat felsorolása, amelyet kettőspont választ el egymástól. A remote_user tartalmazza a felhasználói fiók nevét.


– gazdagépek: ProdServers
remote_user: geekflare

változók

A változók lehetővé teszik, hogy megváltoztassa a játékleírás futtatását. Szinte mindenütt felhasználhatók a kéziratokban, és örökölhetők egy leltárból, amelyet kifejezetten futási időre állítanak fel, és amelyet egy playbook futtatás elején fedeztek fel. A változó nevét betűk, számok és aláhúzások segítségével definiálhatja, de csak betűvel kell kezdődnie.

Például a port_01 egy érvényes változó, míg a 01_post egy érvénytelen változó. Íme egy példa a változókra egy Ansible Playbook-ban:

vars:
http_port: 80
max_ ügyfelek: 200

Készletek

A playbook futtatásához szükség van egy olyan célok listájára, amelyeken az automatizálás megtörténik. Ez az, amit a leltár csinál. A készletlisták többféle módon is összeállíthatók és tárolhatók, ideértve a statikus fájlokat is, azaz a lehetséges gazdagépeket. Vagy dinamikusan generálható leltári szkript segítségével, amely összeállítja a külső forrás gazdagépeinek listáját.

A változót a készletlistában is meghatározhatja. A készletek végül azoknak a dolgoknak a felsorolása, amelyeket automatizálni szeretne.

[Webszerverek]
192.168.20.1
192.168.20.2
192.168.20.4
[Dbservers]
172.17.1.56
172.17.1.57

feladatok

Lejátszható lehetséges playbook-futtatási feladatokban. A feladat felelős a lehetséges modulok futtatásáért. Egy időben csak egy feladat futtatható, és a feladatok sorrendben kerülnek végrehajtásra. Feladatukat a YAML nyelven írják, ami nagyjából angol, mint a nyelv.

Példák: a csomag_neve telepítése, a szoftver_neve frissítése stb. Az alábbiakban egy példa található a Lehetséges játékkönyv telepítésére a httpd telepítéséhez:

feladatok:
– név: Telepítse a httpd csomagot
yum: name = httpd state = legújabb

rakodók

A kezelők speciális feladatok.

Egy feladat elindíthatja őket, és a játék végén egyszer futtathatók. Értesítések küldésére szolgál, ha megváltozik a konfigurációs fájl, például értesíti a szolgáltatást, hogy az apache elinduljon, amint telepítve van. Az „értesítés” szintaxist a kezelők hívására használják. Az alábbiakban egy példa az apache újraindítására szolgáló kezelőre:


– házigazdák: mind
feladatok:
– név: győződjön meg arról, hogy az apache legújabb verziója van
yum: name = httpd state = legújabb
értesíti:
– indítsa újra az apache-t
– név: ellenőrizze, hogy az apache fut-e (és indításkor engedélyezze)
szolgáltatás: név = httpd állapot = elindítva engedélyezve = igen
rakodók:
– név: indítsa újra az apache-t
szolgáltatás: név = httpd állapot = újraindítva

Készítse el és futtassa az első lehetséges játékfüzetet

Hadd mondjam el, hogyan kell egy playbookot írni. Minden játékfüzet tetején három vonallal (-) kezdődik.

Az első dolog, amelyet megemlít egy Ansible Playbook-ban, a gazdagépek, amelyeken a playbookot futtatni szeretné.

Akkor tények összegyűjtésével megemlítheti a változókat; akkor megemlítheti a végrehajtandó különféle feladatokat. Ne felejtse el, hogy a feladat ugyanabban a sorrendben lesz végrehajtva, mint ahova írta. Például először az A szoftvert, majd a B szoftvert szeretné telepíteni, győződjön meg arról, hogy az első, a játékleírásban írt feladat az A szoftver telepítése, és a következő feladat a B szoftver telepítését jelenti..

Akkor van egy kezelő az alján. A kezelők szintén feladatok, de a különbség az, hogy a kezelők végrehajtásához valamilyen indítóra van szükségük a kezelők futtatásához szükséges feladatok listájához..

Hadd mutassam meg, hogyan lehet létrehozni egy lehetséges leírásfüzetet az nginx telepítéséhez és elindításához a gazdagépen, és elindítva.

Hozzon létre egy .yml fájlt, ahova beilleszti a YAML-kódjait, hogy létrehozhasson egy lehetséges táblázatokat.

gedit nginx.yml

Helyezze az alábbi YAML kódot ebbe a fájlba, és mentse el a fájlt.


– házigazdák: Ügyfél
sudo: igen
vars:
– kiszolgáló_port: 8080

feladatok:
– név: Telepíti az nginx webszervert
apt: pkg = nginx state = install update_cache = true
értesíti:
– Start nginx

rakodók:
– név: start nginx
szolgáltatás: név = nginx állapot = elindítva

A fenti YAML fájl hostokkal kezdődik, szeretném futtatni ezt a játékfüzetet az ügyfélgépen (Client). Az ügyfél IP-címét már mentettük az / etc / ansible / hosts fájlba.

A következő sor lehetővé teszi a feladatok futtatását sudo jogosultságokkal.

Aztán definiáltam a server_port változót ebben a playbook-ban.

Ezután jön az első feladatom ebben a lehetséges leírásban egy Nginx webszerver telepítéséhez. Ez a feladat értesítési paraméterrel is rendelkezik, ami azt jelenti, hogy ennek a feladatnak az után egy kezelő fut.

Végül írtam egy kezelőt az nginx elindításához az ügyfélgépen.

Most, hogy tisztában van a lehetséges YAML-kódokkal a lehetséges playbookban, futtassuk a playbookot. Az alábbiakban egy szintaxist használhatunk egy lehetséges táblázatok futtatásához:

ansible-playbook file_name.yml

Most el fogom futtatni a lehetséges táblázatokat, amelyeket az nginx telepítéséhez és indításához hoztam létre.

[Email protected]: / home / geekflare # ansible-playbook nginx.yml

JÁTÉK [Ügyfél] ********************************************** ********************

FELADAT [Tények gyűjtése] **************************************************** ************
rendben: [node1]

FELADAT [Telepíti az nginx webszervert] ************************************************** ****

megváltozott: [node1]

FUTÓ KEZELŐ [start nginx] *************************************************** ******
rendben: [node1]

Játssz RECAP ************************************************* *********************
node1: ok = 3 megváltozott = 1 elérhetetlen = 0 sikertelen = 0 kihagyva = 0 megmentett = 0 figyelmen kívül hagyva = 0

Futtassa az alábbi parancsot annak ellenőrzéséhez, hogy az nginx szervert telepítették-e és megfelelően indította-e el az esetleges kézirajz.

[Email protected]: / home / geekflare # ps waux | grep nginx
gyökér 3021 0,0 0,0 77676 1516? Ss 15:27 0:00 nginx: fő folyamat / usr / sbin / nginx -g démon be; master_process be;

Következtetés

Ez az Ansible playbookról szól. Remélem, ez a cikk segített megtanulni, hogyan lehet létrehozni és futtatni egy Ansible Playbook-ot. Nézd meg ezt Tanfolyam, ha speciális témákat szeretne megtanulni az Ansible alkalmazásban, ideértve a Szerepek, a Jinja2, a Keresés, a Szűrő, az Egyéni modulokat,.

CÍMKÉK:

  • Ansible

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map