Ansible Roles- Végső módja a Playbooks kibontásának



Ez az Ansible Roles blog arról szól, hogyan használják a szerepeket az összetett játékkönyvek olvashatóvá és újrafelhasználhatóvá tételéhez, a MEAN-verem felállításának demonstartiójával.

Az Ansible lehetővé teszi számunkra a rendszerek konfigurációkezelésének automatizálását, és tetszőleges számú ügyfél hozzáadását. Elgondolkodott már azon, hogy ez mennyire bonyolulttá válhat? Elgondolkodott már azon, hogy a játékkönyvek meddig és zavaróan nyúlhatnak el? Hogyan teszi az Ansible mégis szellőnek tűnni? Az Ansible Roles fogalmát használja, és erről fogunk beszélni ebben a blogban.

Lefedett témakörök:





Ha el akarod sajátítani a DevOps programot, ' természetesen a választási lehetőséged lenne.

megtalálja a legnagyobb számot a java tömbben

Bevezetés a lehetséges szerepekbe

Az Ansible Role olyan koncepció, amely inkább ötletekkel, mint eseményekkel foglalkozik. Alapvetően az absztrakció egy másik szintje, amelyet játékkönyvek szervezésére használnak. Vázat biztosítanak a változók, feladatok, sablonok, fájlok és modulok független és újrafelhasználható gyűjteményéhez, amelyek automatikusan betölthetők a játékkönyvbe. A játékkönyvek szerepek gyűjteménye. Minden szerep sajátos funkcióval rendelkezik.



Hadd magyarázzam el ezt egy példával. Tegyük fel, hogy azt szeretné, hogy a játékkönyve 10 különböző feladatot hajtson végre 5 különböző rendszeren, ehhez egyetlen játékkönyvet használna? Nem, egyetlen játékkönyv használata zavaróvá és hajlamossá teheti a baklövéseket. Ehelyett létrehozhat 10 különböző szerepet, ahol minden szerepkör egy feladatot fog végrehajtani. Ezután csak annyit kell tennie, hogy megnevezi a játékkönyvben szereplő szerep nevét, hogy felhívja őket. Ebben a blogban megtudhatja, hogyan használhatja tovább a szerepeket.

Az lehetséges szerepek újrafelhasználhatósága

Az Ansible Roles független egymástól. Az egyik szerep végrehajtása nem függ másoktól, ezért újra felhasználhatók. Ezeket a szerepeket akár igényei szerint is módosíthatja és személyre szabhatja. Ez csökkenti azt a feladatunkat, hogy minden alkalommal átírjuk a teljes kódrészletet, amikor csak szükségünk van rá, ezzel egyszerűsítve a munkánkat.

Térjünk vissza az előző példához. 10 szerepet írt, és most 5-öt kell felhasználnia egy másik kiépítéshez. Újra megírod a teljes játékkönyvet? Nem, csak újra felhasználja ezt az 5 szerepet azzal, hogy felhívja őket ebben az új Playbookban. Szükség esetén módosításokat is végezhet, de így is sok időt spórolhat meg.



Tegyük fel, hogy a LAMP-verem beállításához játékkönyvet kell írni. 4 szerepet kell létrehoznia, mindegyiket a Linux, az Apache, a MongoDB és a PHP létrehozásához. Ha a jövőben újabb játékkönyvet szeretne a LAMP-verem és a WordPress beállításához, akkor új szerepeket hoz létre a LAMP-verem és a WordPress számára? Nem! Egyszerűen újra felhasználhatja a régebbi szerepköröket (a LAMP-veremhez használják), és emellett létrehozhat egy új szerepet a WordPress számára.

Szerepkörök felépítése

Az Ansible Roles használatával várhatja, hogy a fájlok egy bizonyos fájlstruktúrában legyenek. A szerepek használatának legzavaróbb része a fájlhierarchia megértése. Az Ansible biztosítja az Ansible Galaxy nevű funkciót, amely segít a szerepekkel való játékban. Már tudjuk, hol található az Ansible az Ubuntuban (/ etc / ansible). Látott már egy szerepkört nevű könyvtárat az / etc / ansible alatt? Ez a könyvtár pontosan ezért létezik. Különböző szerepeket hozhat létre ebben a könyvtárban.

A könyvtár így fog kinézni:

Fa - Ansible Roles - Edureka

A szerepkörrel létrehozhat ansible-galaxis init parancs az / etc / ansible / szerepek belsejében.

$sudoansible-galaxis init

Látni fogja, hogy más szerepkönyvtárakat is létrehoztak volna.

Ezek a könyvtárak feladatok, kezelők, alapértelmezett beállítások, változók, fájlok, sablonok, meta és README.mdfájl.

Feladatok - Tartalmazza a szerepek által végrehajtandó feladatok fő listáját. Azttartalmazaz adott szerephez tartozó main.yml fájl.

Kezelők - Kezelőket tartalmaz, amelyeket használhat ez a szerep, vagy akár bárhol, amely ezen a szerepen kívül esik.

Alapértelmezések - Az alapértelmezett változókat tartalmazza, amelyeket ez a szerep fog használni.

Akinek - Ez a könyvtár más változókból áll, amelyeket a szerep használni fog. Ezek a változók meghatározhatók a játékkönyvben, de jó szokás meghatározni őket ebben a részben.

charat használata java-ban

Fájlok - Ez a szerepkör által telepíthető fájlokat tartalmaz. Olyan fájlokat tartalmaz, amelyeket el kell küldeni a gazdagépeknek a szerep konfigurálása közben.

Meta - Meghatározza a szerep metaadatait. Alapvetően fájlokat tartalmaz, amelyek szerepfüggőségeket hoznak létre.

Minden feladat a könyvtárnak a-ból kell állnia main.yml fájl, ahova az adott szerep aktuális kódját írják.

Most ismerjük meg a MEAN Stack telepítésének bemutatásával kapcsolatos munkákat vagy szerepeket.

Bemutató: A MEAN Stack telepítése az Ansible Roles segítségével

Bemutatom, hogyan lehet telepíteni a MEAN Stack-et az Ansible Roles használatával, csak egyetlen játékkönyv végrehajtásával. Három szerepünk lesz: 1) Az előfeltételek telepítése, 2) A MongoDB és 3) A NodeJS telepítése. Feltételezem, hogy már megtette telepítette az Ansible-t és szerver-kliens kapcsolatot létesített az Ubuntun . Kezdjünk el játszani az Ansible Roles-szel.

1. lépés - Keresse meg az / etc / ansible / szerepek könyvtárat, és hozza létre az előfeltételek, a MongoDB és a NodeJS szerepköreit.

$ cd / etc / ansible / szerepek $ sudo ansible-galaxy init előfeltételek $ sudo ansible-galaxy init mongodb $ sudo ansible-galaxy init nodejs

Most három szerepet kell látnia a „szerepek” könyvtárban.

2. lépés - Írja be a main.yml fájlt a Git telepítő előfeltételeihez.

$ cd előfeltételek / feladatok / main.yml --- - név: Git apt telepítése: név: git állapot: jelenlegi update_cache: igen

3. lépés - Írja a main.yml szót a MongoDB szerepkörhöz

$ cd /mongodb/tasks/main.yml --- - név: MongoDB - Nyilvános kulcs importálása apt_key: keyserver: hkp: //keyserver.ubuntu.com: 80 id: EA312927 - név: MongoDB - Adattár hozzáadása apt_repository: fájlnév: '/etc/apt/sources.list.d/mongodb-org-3.2.list' repo: 'deb http://repo.mongodb.org/apt/ubuntu trusty / mongodb-org / 3.2 multiverse' állapot: jelen update_cache : igen - név: MongoDB - Telepítse a MongoDB apt: név: mongodb-org állapot: jelen update_cache: igen - név: Indítsa el a mongod héjat: 'mongod &'

4. lépés - Írja a main.yml szót a következőre:nodejsszerep

$ cd nodejs / task / main.yml --- - név: Node.js - Get geturl: url: 'http://deb.nodesource.com/setup_6.x' szkript: dest: '{{var_node}} / nodejs .sh '- név: Node.js - Végrehajtási engedély beállítása a szkript fájlhoz: elérési út:' {{var_node}} / nodejs.sh 'mód:' u + x '- név: Node.js - A telepítési parancsfájl végrehajtása:' {{var_node}} / nodejs.sh '- név: Node.js - Telepítési parancsfájl eltávolítása: elérési út:' {{var_node}} / nodejs.sh 'állapot: hiányzik - név: Node.js - A Node.js apt telepítése : név = {{item}} állapot = jelen update_cache = igen a_elemekkel: - build-essential - nodejs - név: Node.js - Telepítse a bower-t és nyelje globálisan az npm-et: name = {{item}} state = present global = yes with_items : - íj - nyelés

5. lépés - Írja meg a fő játékkönyvét

$ cd /etc/ansible/mean.yml --- - hosztok: csomópontok remote_user: ansible lett: igen lett_metód: sudo vars: #változó szükséges a csomópont telepítésekor var_node: / tmp szerepkörök: - előfeltételek - mongodb - nodejs

Most, hogy meghatároztuk az előfeltételek telepítésének szerepeit, MongoDB és NodeJs, telepítsük őket. A következő paranccsal hajtsa végre a játékkönyvet.

$sudoansible-playbook /etc/ansible/mean.yml -K

Mint láthatja, az összes feladat végrehajtásra került, és állapotuk megváltozott. Ez azt jelenti, hogy a játékkönyv módosításait a szerveren és a gazdagépen is végrehajtották. A MEAN Stack beállítása csak egy példa. Szó szerint bármit és mindent beállíthat az Ansible Roles használatával.

Ezzel eljutottunk az Ansible Roles blog végéhez. Ha hasznosnak találja ezt a cikket, nézze meg a ' kínálta Edureka. Minden olyan eszközre kiterjed, amelyek az IT-ipar jobbá tették.

Van egy kérdésünk? Kérjük, tegye fel ide: és mi visszatérünk hozzád.