Výukový program Ansible - Naučte se psát Ansible Playbooks



V tomto blogu Ansible Tutorial se naučíte, jak psát scénáře Ansible, příkazy adhoc a provádět praktické kroky k nasazení Nginx na hostitelském počítači.

Výukový program Ansible

Doufám, že jste prošli mým předchozím blogem, abyste se učili a nejpoužívanější terminologie Ansible. Pokud jste to ještě neudělali, podívejte se prosím na to, abyste lépe pochopili tento Ansible Tutorial.Měli byste také vědět, že Ansible tvoří zásadní součást jako nástroj pro správu konfigurace, nasazení a orchestraci.

Dovolte mi, abych vám poskytl přehled tohoto „Ansible Tutorial“:





Výukový program Ansible Playbook | Školení DevOps Edureka

Ansible Tutorial - Psaní Ansible Playbooks

Playbooks in Ansible jsou psány ve formátu YAML. Je to jazyk pro serializaci dat čitelný člověkem. Běžně se používá pro konfigurační soubory. Lze jej také použít v mnoha aplikacích, kde se ukládají data.



Pro Ansible začíná téměř každý soubor YAML se seznamem. Každá položka v seznamu je seznamem párů klíč / hodnota, běžně nazývaným „hash“ nebo „slovník“. Takže musíme vědět, jak psát seznamy a slovníky v YAML.

Všichni členové seznamu jsou řádky začínající na stejné úrovni odsazení začínající znakem „-“ (pomlčka a mezera). Jsou možné složitější datové struktury, například seznamy slovníků nebo smíšené slovníky, jejichž hodnotami jsou seznamy nebo kombinace obou.

např. Seznam oddělení v edureka:



oddělení: - marketing - prodej - řešení - psaní obsahu - podpora - produkt

Nyní vám uvedu příklad slovníku:

-USA - kontinent: Severní Amerika - hlavní město: Washington DC - populace: 319 milionů

Hostitelé a uživatelé:

U každé hry v příručce si můžete vybrat, na které stroje ve své infrastruktuře chcete cílit a na které vzdálené uživatele úkoly dokončit. Abychom zahrnovali hostitele do inventáře Ansible, budeme používat IP adresy hostitelských počítačů.

Obecně jsou hostiteli seznam jedné nebo více skupin nebo vzorů hostitelů oddělených dvojtečkami. Vzdálený uživatel je pouze název uživatelského účtu.

Proměnné:

Ansible používá proměnné, které jsou definovány dříve, aby umožnily větší flexibilitu v knihách a rolích. Lze je použít k procházení sadou daných hodnot, přístupu k různým informacím, jako je název hostitele systému, a nahrazení určitých řetězců v šablonách konkrétními hodnotami.

Ansible již definuje bohatou sadu proměnných, individuální pro každý systém. Kdykoli bude možné v systému spustit, shromáždí se všechna fakta a informace o systému a nastaví se jako proměnné.

Ale existuje pravidlo pro pojmenování proměnných. Názvy proměnných by měly být písmena, číslice a podtržítka. Proměnné by vždy měly začínat písmenem. Např. wamp_21, port5 je platný název proměnné, zatímco 01_port, _server jsou neplatné.

Úkoly:

Úkoly vám umožňují rozdělit bity zásad konfigurace na menší soubory. Úkol zahrnuje stažení z jiných souborů. Úkoly v Ansible jdou do značné míry s anglickým významem.

Např .: Instalace, aktualizace atd.

Manipulátory:

Obslužné rutiny jsou stejně jako běžné úkoly v příručce Ansible, ale jsou spuštěny, pouze pokud Task obsahuje direktivu upozornění a také označuje, že něco změnilo. Například pokud se změní konfigurační soubor, může úloha odkazující na konfigurační soubor upozornit obslužnou rutinu restartování služby.

Dovolte mi uvést příklad příručky, která spustí program serveru Apache httpd:

----hostitelé: webové servery jehož: http_port: 80 max_clients: 200 remote_user: vykořenit úkoly: - název: ujistěte se, že je apache v nejnovější verzi Mňam: name = httpd state = latest - název: napište konfigurační soubor apache šablona: src = / srv / httpd.j2 dest = / etc / httpd.conf oznámit: - restartujte Apache - název: ujistěte se, že je spuštěn apache (a povolte jej při spuštění) servis: name = httpd state = started enabled = yes manipulátory: - název: restartujte Apache servis: name = httpd state = restartováno

Doufám, že se vás příklad bude týkat veškerého popisu komponent příručky, který jsem zmínil výše. Pokud vám to stále není jasné, nebojte se, všechny vaše pochybnosti budou jasné v pozdější části tohoto blogu.

Toto je vše o příručkách. Playbooky, které budete psát vy. Ale Ansible vám poskytuje také širokou škálu modulů, které můžete použít.

Výukový program Ansible - Moduly

Moduly v Ansible jsou idempotentní. Z hlediska služby RESTful, aby byla operace (nebo volání služby) idempotentní, mohou klienti opakovaně uskutečňovat stejné volání při vytváření stejného výsledku. Jinými slovy, vytvoření více identických požadavků má stejný účinek jako vytvoření jediného požadavku.

V aplikaci Ansible existují různé typy modulů

  • Základní moduly
  • doplňky

Základní moduly

Jedná se o moduly, které udržuje základní tým Ansible a které budou vždy dodávány se samotným Ansible. Rovněž dostanou o něco vyšší prioritu pro všechny požadavky než v „komparzu“.

Zdrojem těchto modulů je Ansible na GitHubu v jádru Ansible-modules.

Doplňkové moduly

Tyto moduly jsou aktuálně dodávány s Ansible, ale v budoucnu mohou být dodávány samostatně. Většinou jsou také udržovány komunitou Ansible. Non-core moduly jsou stále plně použitelné, ale u problémů a požadavků na vyžádání mohou obdržet mírně nižší míru odezvy.

Populární „doplňky“ mohou být postupem času povýšeny na základní moduly.

Zdroj těchto modulů hostuje Ansible na GitHubu v Ansible-modules-extras.

Například: Jedním z doplňkových modulů v modulech vzdálené správy je modul ipmi_power, který je správcem napájení pro vzdálené počítače. Ke spuštění je vyžadován python 2.6 nebo novější a pyghmi.

Tento modul můžete použít tak, že napíšete příkaz adhoc, jaký jsem napsal níže:

ipmi_power: name = 'test.domain.com' user = 'localhost' password = 'xyz' state = 'on'

Výukový program Ansible - návratové hodnoty

Ansible moduly normálně vracejí datovou strukturu, kterou lze zaregistrovat do proměnné nebo zobrazit přímo při výstupu programem Ansible. Každý modul může volitelně dokumentovat své vlastní jedinečné návratové hodnoty.

Některé příklady návratových hodnot jsou:

  • changed: vrátí se s booleovskou hodnotou, kdykoli úkol provede jakoukoli změnu.
  • failed: vrací logickou hodnotu, pokud se úkol nezdařil
  • msg: vrací řetězec s obecnou zprávou předanou uživateli.

Výukový program Ansible - příkazy AdHoc

Příkazy Adhoc jsou jednoduchý příkaz na jednom řádku k provedení určité akce. Spuštěné moduly s příkazy Ansible jsou příkazy adhoc.

Např:

ansible host -m netscaler -a 'nsc_host = nsc.example.com user = apiuser heslo = apipass' 

Výše uvedený příkaz adhoc používá k deaktivaci serveru modul netscaler. V aplikaci Ansible jsou k dispozici stovky modulů, ze kterých můžete odkazovat a psát příkazy adhoc.

má vztah v Javě

No, dost se všemi teoretickými vysvětleními, dovolte mi vysvětlit vám Ansible s několika rukama.

Výukový program Ansible - Hands On

Budu psát příručku pro instalaci Nginx na můj uzel / hostitelský stroj.

Pojďme začít :)

Krok 1: Připojte se k hostitelům pomocí SSH. K tomu musíte vygenerovat veřejný klíč SSH.

Použijte následující příkaz:

ssh-keygen

Generovat klíč SSH - Ansible Tutorial - Edureka

Jak můžete vidět na snímku výše, příkaz ssh-keygen vygeneroval veřejný klíč SSH.

Krok 2: Dalším úkolem je zkopírovat veřejný klíč SSH na vaše hostitele. K tomu použijte níže uvedený příkaz:

ssh-copy-id -i root @

Snímek výše ukazuje klíč SSH kopírovaný na hostitele.

Krok 3: Seznam IP adres vašich hostitelů / uzlů v inventáři.

Použijte následující příkaz:

vi / etc / ansible / hosts

Tím se otevře editor vi, kde můžete zobrazit seznam IP adres vašich hostitelů. Toto je nyní váš inventář.

Krok 4: Zkusme ověřit, zda bylo navázáno připojení.

Výše uvedený snímek potvrzuje, že bylo provedeno připojení mezi vaším řídicím strojem a hostitelem.

Krok 5: Pojďme nyní napsat scénář k instalaci Nginx na hostitelském počítači. Své knihy můžete psát v editoru vi. K tomu jednoduše vytvořte svou příručku pomocí příkazu:

vi

jak přistupovat k AWS cli

Níže uvedený snímek ukazuje můj scénář k instalaci Nginx napsaný ve formátu YAML.

Úkoly příručky jsou v YAML definovány jako seznam slovníků a jsou prováděny shora dolů. Pokud máme několik hostitelů, pak je každý úkol vyzkoušen pro každého hostitele, než přejde k dalšímu. Každá úloha je definována jako slovník, který může obsahovat několik klíčů, například „name“ nebo „sudo“, které označují název úlohy a zda vyžadují oprávnění sudo.

Proměnná Port serveru je nastavena tak, aby naslouchala na portu TCP 8080 pro příchozí žádosti.

Zde je prvním úkolem získat balíček nezbytný pro instalaci Nginx a poté jej nainstalovat.Interně Ansible zkontroluje, zda adresář existuje, a vytvoří jej, pokud není, jinak nic neudělá.

Dalším úkolem je konfigurace Nginx.V Nginxu obsahují kontexty podrobnosti konfigurace.

Tady je šablona soubor, který můžete nasadit na hostitelích. Soubory šablon však také obsahují některé referenční proměnné, které se získávají z proměnných definovaných jako součást Anbook playbooku nebo faktů shromážděných od hostitelů. Fakta obsahující podrobnosti o konfiguraci jsou stahována ze zdrojového adresáře a kopírována do cílového adresáře.

Obslužné rutiny zde definují akci, která má být provedena pouze po oznámení úkolů nebo změn stavu. V této příručce jsme definovali, upozorněte: restartujte obslužný program Nginx, který restartuje Nginx, jakmile budou soubory a šablony zkopírovány na hostitele.

Nyní soubor uložte a ukončete.

Krok 6: Nyní spustíme tuto příručku pomocí níže uvedeného příkazu:

ansible-playbook .yml

Na výše uvedeném snímku obrazovky vidíme, že náš úkol je spouštění instalace Nginx.

Krok 7: Podívejme se, jestli je Nginx nainstalován na mém hostitelském počítači. Použijte následující příkaz:

ps waux | grep nginx

Na výše uvedeném snímku obrazovky vidíte, že běží různé ID procesů 3555 a 103316, což zajišťuje, že Nginx běží na vašich hostitelských počítačích.

Gratulujeme! Úspěšně jste nasadili Nginx na svého hostitele pomocí playbooků Ansible. Doufám, že se vám čtení tohoto blogu Ansible Tutorial líbilo. Pokud máte nějaké dotazy v sekci komentáře níže, dejte mi prosím vědět.

Pokud jste našli toto „ Výukový program Ansible „Relevantní, podívejte se na Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů rozložených po celém světě. Kurz certifikace Edureka DevOps pomáhá studentům získat odborné znalosti v různých procesech a nástrojích DevOps, jako jsou Puppet, Jenkins, Ansible, Nagios a Git pro automatizaci více kroků v SDLC.