Ansible Roles - konečný spôsob, ako rozmotať svoje príručky



Tento blog Ansible Roles hovorí o tom, ako sa roly používajú na to, aby sa zložité príručky stali čitateľnými a opakovane použiteľnými, a to napríklad ukážkou vytvorenia MEAN Stack.

Ansible nám umožňuje automatizovať správu konfigurácie systémov a pridávať ľubovoľný počet klientov podľa želania. Zamýšľali ste sa niekedy nad tým, aké zložité to môže byť? Už ste niekedy premýšľali nad tým, ako dlho a neprehľadné môžu byť knihy o čítaní? Ako Ansible stále vyzerá, že je vánok? Využíva koncept Ansible Roles a o tom si v tomto blogu povieme.

Pokryté témy:





Ak chcete ovládať DevOps, ' samozrejme bude vaša voľba typu ísť na.

Úvod do možných rolí

Ansible Role je koncept, ktorý sa zaoberá skôr myšlienkami ako udalosťami. Je to v podstate ďalšia úroveň abstrakcie, ktorá sa používa na organizovanie príručiek. Poskytujú kostru pre nezávislú a opakovane použiteľnú zbierku premenných, úloh, šablón, súborov a modulov, ktoré je možné automaticky načítať do príručky. Príručky sú zbierkou rolí. Každá rola má špecifickú funkčnosť.



Vysvetlím to na príklade. Predpokladajme, že chcete, aby váš playbook vykonával 10 rôznych úloh na 5 rôznych systémoch, použili by ste na to jediný playbook? Nie, použitie jedinej príručky môže spôsobiť, že bude neprehľadná a náchylná na chyby. Namiesto toho môžete vytvoriť 10 rôznych rolí, kde každá rola bude plniť jednu úlohu. Potom všetko, čo musíte urobiť, je spomenúť názov role v príručke, aby ste im mohli volať. V tomto blogu sa dozviete, ako ďalej používať roly.

Opätovná použiteľnosť možných rolí

Možné úlohy sú navzájom nezávislé. Vykonanie jednej roly nezávisí od ostatných, a preto je možné ju opakovane použiť. Tieto role môžete dokonca upraviť a prispôsobiť podľa svojich požiadaviek. To znižuje našu úlohu prepísať celú časť kódu zakaždým, keď to potrebujeme, a tým sa zjednodušuje naša práca.

Vráťme sa k predchádzajúcemu príkladu. Napísali ste 10 rolí a teraz ich musíte použiť 5 na ďalšiu skupinu poskytovania. Píšete znova celú knihu scénok? Nie, týchto 5 rolí jednoducho použijete tak, že ich zavoláte v tejto novej Príručke. V prípade potreby môžete tiež vykonať úpravy, ale stále by to ušetrilo váš čas.



Povedzme, že musíte pripraviť príručku na nastavenie balíka LAMP. Musíte si vytvoriť 4 roly, každú pre vytváranie Linux, Apache, MongoDB a PHP. Ak v budúcnosti budete chcieť ďalší playbook na nastavenie LAMP stacku a WordPressu, budete si opäť vytvárať nové role pre LAMP stack a WordPress? Nie! Môžete jednoducho znova použiť staršie roly (používané pre LAMP stack) a navyše vytvoriť novú rolu pre WordPress.

ako uzavrieť program v jave

Roly adresárová štruktúra

Pri použití funkcie Ansible Roles očakávajte, že súbory budú v určitej štruktúre súborov. Najprehľadnejšou časťou používania rolí je pochopenie hierarchie súborov. Ansible poskytuje funkciu s názvom Ansible Galaxy, ktorá vám pomáha hrať sa s rolami. Už vieme, kde je náš Ansible na Ubuntu (/ etc / ansible). Už ste niekedy videli adresár s názvom role pod / etc / ansible? Tento adresár existuje presne z tohto dôvodu. V tomto adresári môžete vytvoriť rôzne roly.

Adresár bude vyzerať takto:

Strom - možné role - Edureka

Rolu môžete vytvoriť pomocou ansible-galaxy príkaz init vo vnútri / etc / ansible / role.

$sudoansible-galaxy init

Uvidíte, že by boli vytvorené aj ďalšie adresáre rolí.

Tieto adresáre sú úlohy, obslužné rutiny, predvolené hodnoty, vars, súbory, šablóny a meta súbory a súbor README.mdspis.

Úlohy - Obsahuje hlavný zoznam úloh, ktoré má rola vykonať. Toobsahujesúbor main.yml pre túto konkrétnu rolu.

Manipulanti - Obsahuje obslužné rutiny, ktoré môže používať táto rola alebo dokonca kdekoľvek mimo tejto roly.

Predvolené hodnoty - Obsahuje predvolené premenné, ktoré bude táto rola používať.

Čí - Tento adresár obsahuje ďalšie premenné, ktoré bude rola používať. Tieto premenné môžete definovať vo svojej príručke, ale je dobrým zvykom ich definovať v tejto časti.

Súbory - Obsahuje súbory, ktoré môže táto rola nasadiť. Obsahuje súbory, ktoré je potrebné odoslať hostiteľom pri konfigurácii roly.

Meta - Definuje metadáta pre túto rolu. V zásade obsahuje súbory, ktoré určujú závislosti rolí.

Každý úloha adresár musí pozostávať z a main.yml súbor, kde je napísaný skutočný kód pre danú rolu.

Poďme si teraz predstaviť prácu alebo úlohy s ukážkou inštalácie programu MEAN Stack.

ako prejsť odkazom v jave

Ukážka: Inštalácia MEAN Stack pomocou možných rolí

Ukážem, ako nainštalovať program MEAN Stack pomocou programu Ansible Roles jednoduchým vykonaním jednej príručky. Budeme mať tri roly: 1) Inštalácia predpokladov, 2) Inštalácia MongoDB a 3) Inštalácia NodeJS. Predpokladám, že už ste nainštaloval Ansible a vytvoril spojenie server-klient na Ubuntu . Začnime sa hrať s Ansible Roles.

Krok 1 - Prejdite do adresára / etc / ansible / role a vytvorte role pre predpoklady, MongoDB a NodeJS.

$ cd / etc / ansible / role $ sudo ansible-galaxy init predpoklady $ sudo ansible-galaxy init mongodb $ sudo ansible-galaxy init nodejs

Teraz by ste mali vidieť tri roly v adresári „role“.

Krok 2 - Napíšte main.yml pre predpoklady, ktoré nainštalujú Git.

$ cd prerequisites / tasks / main.yml --- - name: Install git apt: name: git state: present update_cache: yes

Krok 3 - Napíšte main.yml pre rolu MongoDB

$ cd /mongodb/tasks/main.yml --- - meno: MongoDB - import verejného kľúča apt_key: keyserver: hkp: //keyserver.ubuntu.com: 80 id: EA312927 - meno: MongoDB - pridať úložisko apt_repository: názov súboru: '/etc/apt/sources.list.d/mongodb-org-3.2.list' repo: 'deb http://repo.mongodb.org/apt/ubuntu trusty / mongodb-org / 3.2 multiverse' stav: prítomný update_cache : yes - name: MongoDB - Install MongoDB apt: name: mongodb-org state: present update_cache: yes - name: Start mongod shell: 'mongod &'

Krok 4 - Napíšte main.yml prenodejsúlohu

$ cd nodejs / tasks / main.yml --- - meno: Node.js - získať skript get_url: url: 'http://deb.nodesource.com/setup_6.x' dest: '{{var_node}} / nodejs .sh '- name: Node.js - Nastaviť povolenie na vykonanie súboru skriptu: path:' {{var_node}} / nodejs.sh 'mode:' u + x '- name: Node.js - Spustiť shell inštalačného skriptu:' {{var_node}} / nodejs.sh '- name: Node.js - Odstrániť súbor inštalačného skriptu: path:' {{var_node}} / nodejs.sh 'state: absent - name: Node.js - Install Node.js apt : name = {{item}} state = present update_cache = yes with_items: - build-essential - nodejs - name: Node.js - Install bower and gulp globally npm: name = {{item}} state = present global = yes with_items : - altánok - dúšok

Krok 5 - Napíšte svoju hlavnú príručku

$ cd /etc/ansible/mean.yml --- - hostitelia: uzly remote_user: ansible become: yes become_method: sudo vars: # počas inštalácie uzla je potrebná premenná var_node: / tmp role: - predpoklady - mongodb - nodejs

Teraz, keď sme definovali roly pre inštaláciu predpokladov, MongoDB a NodeJs, nasadime ich. Playbook spustíte pomocou nasledujúceho príkazu.

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

Ako vidíte, všetky úlohy boli vykonané a ich stav sa zmenil. To znamená, že zmeny v príručke boli použité na vašom serveri aj na hostiteľovi. Nastavenie programu MEAN Stack je iba jedným príkladom. Pomocou Ansible Roles nastavíte doslova všetko a všetko.

Týmto sa dostávame na koniec blogu Ansible Roles. Ak považujete tento článok za užitočný, prečítajte si ' ponúka Edureka. Zahŕňa všetky nástroje, ktoré zlepšili odvetvie IT.

Máte na nás otázku? Zverejnite to prosím a ozveme sa vám.