GNU/Linux >> Znalost Linux >  >> Linux

Máte automatizaci? Zde je rychlý průvodce, který vám pomůže s Ansible

Ansible je open source automatizační nástroj, který správci systému používají k automatizaci konfigurace infrastruktury, nasazení aplikací a správě konfigurace. Je bez agenta, což znamená, že k provádění potřebných úkolů nevyžaduje instalaci žádného softwaru na hostitele – na rozdíl od některých jiných automatizačních nástrojů. Místo toho používá SSH, pokud je cílový systém založený na Linuxu, WinRM, pokud je cílový systém založený na Windows, nebo API, pokud cílový systém poskytuje API.

K definování požadované cílové konfigurace používá deklarativní programovací jazyk. Neuvádí však, jak je třeba provést konfiguraci. Chcete-li například vytvořit nový virtuální počítač, musíte definovat specifikace cílového virtuálního počítače a způsob jeho nasazení. Ansible Engine s pomocí příslušného modulu pak provede potřebný úkol.

Automatizace ve světě IT

Automatizace ve světě IT je potřebná, aby se předešlo ručnímu provádění opakovaných akcí a aby se urychlil cyklus nasazení. Ansible je určen k řešení těchto potřeb. Zde je několik příkladů toho, jak může být Ansible nezbytnou součástí vaší IT infrastruktury:

Infrastruktura jako kód

  • Spuštění nových virtuálních strojů lze provést několika způsoby. Po spuštění nového virtuálního počítače však stále musíte instalovat další softwarové balíčky, aplikace atd., dokud nebude nový systém funkční. S Ansible můžete celý tento proces automatizovat, od vytvoření nového virtuálního stroje po konfiguraci aplikace.
  • Pokud máte cloudové prostředí, které se neustále rozrůstá, lze do cloudu skutečně připojit nové výpočetní zdroje pomocí různých cloudových nativních nástrojů. Přesto musíte hardware před připojením nejprve připravit (tj. vytvořit konfigurace RAID pro místní disky, přidat sítě VLAN do jeho profilu atd.). Ansible může být primárním nástrojem pro přípravu hardwaru a jeho připojení ke cloudu pomocí cloudových nativních rozhraní API.

Automatizace aplikací

  • Předpokládejme, že máte aplikaci, která vyžaduje pravidelné aktualizace. Například přidání nových položek do databáze lze provést několika způsoby. Pokud je vaše aplikace rozptýlena mezi konkrétními servery, místo vytváření různých skriptů pro různé systémy můžete vytvořit příručku Ansible obsahující jednu nebo více her, abyste tuto akci zautomatizovali a zorganizovali od A do Z.

[ Mohlo by se vám také líbit: Představujeme nové centrum Ansible Automation Hub ]

Moduly Ansible

Ansible moduly přebírají pokyny k provádění úkolů. Jedním z nejdůležitějších bodů v Ansible je jeho rozsáhlá komunita, která pravidelně vytváří nové moduly. Tyto moduly jsou obvykle kódovány v Pythonu. Počáteční instalace je vždy dodávána s předinstalovanými moduly. Můžete však nainstalovat další moduly z internetu. Více informací o každém modulu (tj. co tento modul dělá, jak jej používat, příklady atd.) můžete získat dvěma způsoby:

Online :Prohledáním dokumentace Ansible.

Při vyhledávání si musíte být jisti, že jste z rozevíracího seznamu v levém horním rohu stránky vybrali správnou verzi Ansible.

Offline :Pomocí ansible-doc příkaz z příkazového řádku.

$ ansible-doc file

Zde hledáte, jak používat modul s názvem file . Bohatý výběr modulů Ansible je vlastně dvousečná zbraň, kde má své výhody i nevýhody.

Výhody:

  1. Můžete najít modul pro téměř každý úkol, který chcete provést.
  2. Máte obrovskou komunitu, která vás v případě potřeby podpoří.

Nevýhody:

  1. S tolika moduly se můžete rychle zmást, které z nich použít. To je důvod, proč když začnete plánovat použití Ansible k automatizaci konkrétních úloh, musíte vytvořit strategii, abyste určili, které moduly použít, a otestujte je.
  2. Najdete zde mnoho komunitních modulů, které již nikdo nepodporuje nebo jsou v nových verzích Ansible zastaralé. Nezapomeňte pečlivě provést každý nový upgrade Ansible. Před přesunem modulu do produkčního prostředí také proveďte dostatečné testování, než ohrozíte svůj automatizační řetězec. Výběr modulů k použití a vytvoření strategie automatizace je něco, co budete dělat v průběhu času.

Ansible a Python

Ansible je silně závislý na Pythonu. Většina modulů je kódována pomocí Pythonu. Také cílový systém založený na Linuxu musí mít nainstalovaný Python, aby mohl začít automatizovat úlohy pomocí Ansible. Ačkoli je Ansible silně závislý na Pythonu, není nutná hloubková znalost Pythonu. Nicméně vědět, jak používat pip pro správu balíčků Pythonu (instalace, aktualizace atd.) a vytváření virtuálních prostředí Pythonu se doporučuje.

Upozornění:

  1. Změna verzí Pythonu nebo některého z předinstalovaných balíčků v systému Ansible Engine je riskantní akce, která může přerušit váš řetězec automatizace.
  2. Pokud používáte Ansible Engine podporovaný Red Hat, Red Hat vám pomůže vytvořit vaše virtuální prostředí Python, pokud chcete, ale obsah virtuálního prostředí není podporován.

Ansible Engine vs. Ansible Tower

Ansible je určen pro použití různými týmy DevOps. Ansible Tower umožňuje mnoha týmům provádět automatizační úlohy z centralizovaného umístění, které umožňuje RBAC, protokolování provedených úloh, GUI pro spouštění úloh a další funkce. Mít centralizovaný automatizační systém pro obrovský automatizační řetězec zjednoduší vaše úkoly údržby. Pro malý automatizační řetězec Ansible lze použít Ansible Engine, což je uzel založený na Linuxu s nainstalovanými binárními soubory Ansible. V tomto nastavení přijdete o RBAC a GUI. Ansible Engine však poskytuje potřebné prostředí pro spouštění příslušných úloh automatizace.

Jaký přístup Ansible?

Ad-hoc

Ad-hoc je způsob, jak poslat jeden Ansible úkol do cílového systému (systémů). Můžete to vidět spuštěním příkazu na vzdáleném systému pomocí SSH nebo staršího rsh. S ad-hoc Ansible spouštíte sofistikovanější úlohu namísto jednoho příkazu pouze proto, že používáte modul Ansible, který dělá více než jeden příkaz.

Přehrávání

Ansible Plays jsou kolekce různých souborů ve formátu YAML, které poběží na jednom nebo více cílových systémech. Tyto přehrání jsou zapsány v souboru zvaném playbook .

Jaký typ použít?

Ve své zkušenosti s Ansible jsem viděl použití obou přístupů. Viděl jsem vývojáře vypisovat ad-hoc příkazy v jednoduchém Bash skriptu a další vytvářet úhledné playbooky. Ačkoli Bash skripty s ad-hoc Ansible mohou vypadat jednodušeji, Ansible neměl být takto používán. Příkazy ad-hoc jsou vhodné pro některé jednoduché úkoly. Pro scénář plné automatizace potřebujete příručku k odladění činností, které mají být provedeny jednoduchým vizuálním způsobem. Jednou z významných výhod používání příruček je, že je můžete importovat do Ansible Tower, jak se váš automatizační řetězec rozrůstá. Jak již bylo zmíněno dříve, najdete vývojáře, kteří preferují různé způsoby, ale jako návrhář nebo architekt „automatizačního řetězce“ musíte zvážit škálovatelnost vašeho řetězce a určit bod, ve kterém se rozhodnete konsolidovat své automatizační úkoly do Ansible Tower.

YAML

YAML není značkovací jazyk , (YAML) je formát, ve kterém jsou psány příručky Ansible. Formát YAML se používá v několika oblastech (tj. tepelné šablony v OpenStack, vytváření/úpravy objektů v Kubernetes atd.). Formát YAML je snadno čitelný. Je to však poněkud ošidné, protože je citlivé na odsazení. Pokud jste nenapsali žádné soubory v YAML a abyste nemuseli trávit čas laděním své příručky, musíte si vybrat editor, který rozumí syntaxi a formátování YAML a dokáže automaticky upravit vaše odsazení. Osobně rád používám bezplatný editor Vim na systémech Linux. Stačí do souboru přidat následující řádek, pojmenujte jej .vimrc a uložte jej do svého domovského adresáře:

autocmd FileType yaml setlocal ai ts=2 sw=2 et

Soubory

V Ansible jsou některé typy souborů, o kterých pravidelně uslyšíte. Zde jsou některé:

Příručka

Playbook je soubor napsaný ve formátu YAML, který obsahuje úlohy, které mají být provedeny na cílovém systému (systémech). Úkoly, které se zaměřují na stejné systémy, jsou obvykle seskupeny do hry a playbook může obsahovat jednu nebo více her. Ansible engine provádí úlohy od horní části souboru dolů.

Inventář

Ansible Inventory je soubor, který identifikuje vaše cílové systémy. V rámci inventáře můžete vytvořit skupiny a organizovat tak své systémy. Můžete například vytvořit skupinu pro webové servery a další skupinu pro databáze. Ansible má dva typy souborů inventáře:

Statické inventáře :Soubory pro statické inventáře lze zapisovat ve formátu INI nebo YAML a můžete mít více než jeden soubor inventáře. Můžete určit, který z nich se má použít, zadáním -i path v příkazovém souboru.

Dynamické inventáře :Dynamický inventář je skript, který se spustí, aby získal zacílený systém (systémy) pokaždé, když spustíte svou příručku. To je užitečné, když spouštíte systémy zacílení své příručky nasazené v cloudu a pokaždé, když máte více (nebo méně) systémů, na kterou má příručka cílit.

Ansible Tower má předem vytvořené některé skripty dynamického inventáře.

Ansible.cfg

Ansible.cfg je konfigurační soubor Ansible. Je ve formátu INI. Obvykle je uložen v /etc/ansible/ansible.cfg . Řídí nastavení Ansible v celém systému. Možná však budete muset změnit jedno nebo více nastavení pro váš konkrétní projekt (tj. změnit formát stdout na obrazovce z JSON na YAML). Můžete si vytvořit svůj vlastní ansible.cfg soubor a umístěte jej do adresáře projektu, kde měníte pouze nastavení, které chcete přepsat.

Proměnné soubory

Proměnné v Ansible jsou důležitým tématem a vyžadují čas na pochopení a procvičení. Proměnné můžete definovat na více než 20 místech. Musíte pochopit proměnnou prioritu, abyste vybrali správné umístění.

Role

Hlavními cíli automatizace je minimalizovat manuální úkoly a zrychlit aktivity nasazení. Pokud máte jeden nebo více úkolů, které často děláte během různých her, a chcete je mít na sdíleném místě a v případě potřeby na ně odkazovat, pak vám pomohou Ansible Roles. Ansible Roles má strukturu souborů, kterou musíte dodržovat. Díky této dobře definované struktuře si můžete snadno stáhnout role vyvinuté komunitou a použít je ve vašich příručkách.

Galaxie Ansible

Ansible Galaxy je komunitní platforma, kde si můžete stáhnout další nástroje pro Ansible, další moduly, role a příručky. Pokud jste v Ansible noví, pamatujte, že Ansible má rozsáhlou komunitu. Téměř každý případ, který chcete vyřešit pomocí Ansible, o tom pravděpodobně přemýšlel někdo jiný z komunity a nahrál jej do Ansible Galaxy. Abyste se vyhnuli opětovnému vynalézání kola, stojí za to strávit nějaký čas na Ansible Galaxy hledáním něčeho, co plní požadované úkoly, stáhnout si to a poté použít tak, jak je, nebo to upravit pro své vlastní prostředí nebo aplikaci.

Automation Hub

Jak již bylo zmíněno dříve, Ansible má obrovské množství modulů vyvinutých svou komunitou. To zní skutečně velmi užitečně, ale pro firmy, které jsou velmi citlivé na dobu uvedení na trh nebo mají malý automatizační tým, který nemá znalosti kódování Python, je méně žádoucí spoléhat se pouze na komunitní moduly. Některé nemusí být podporovány v budoucích vydáních Ansible, zatímco jiné mohou být dokonce opuštěny jejich vývojáři.

Nikdo nemusí opravovat problémy zjištěné při používání komunitních modulů, takže Red Hat povýšil Ansible z pouhého komunitou podporovaného automatizačního nástroje na podnikovou úroveň a přinesl to, co se nazývá Automation Hub. Automation Hub lze považovat za placenou podporovanou verzi Ansible Galaxy. Krása této služby spočívá v tom, že si můžete vybrat moduly, které potřebujete, které odpovídají vaší verzi Ansible, a také získat podporu, pokud modul nefunguje podle očekávání.

Několik rad

Ansible, stejně jako každá IT technologie, má osvědčené postupy. Časem si můžete vyvinout své vlastní, ale rád bych se zde podělil o svůj:

  1. Začněte používat Ansible. Osvojíte si ho pouze při jeho používání.
  2. Pokud jste návrhářem nebo architektem řetězce automatizace, přestože začínáte po malých krocích, vždy zvažte budoucnost a to, co musíte udělat od prvního dne, abyste byli připraveni, až se váš automatizační řetězec rozroste.
  3. Pokud píšete příručky pro automatizaci úloh, vždy myslete jednoduše a hledejte Ansible Galaxy. Pokud vidíte, že to, co děláte, je příliš složité, pak se pohybujete špatným směrem, protože to v budoucnu nebudete schopni udržet.
  4. Automatizace není show pro jednu osobu v tom smyslu, že s vámi spolupracují další lidé, takže pište své příručky jasným a popisným způsobem a pro správu verzí používejte systémy SCM.

Zdroje k učení

Ansible má různé učební zdroje. Zde jsou některé:

Knihy :Ansible má na trhu mnoho knih, ale podle mého názoru je Ansible:Up and Running zdaleka nejúplnější reference.

IRC :Na serverech freenode má Ansible kanál, kde vám komunita může v případě potřeby pomoci.

Online dokumentace :Dokumentace Ansible je online, kde ji můžete navštívit a poučit se z ní.

Online a video zdroje :Zde je několik zdrojů online a videí, kde se můžete naučit Ansible.

  • Ansible video instrukce
  • Kanál YouTube společnosti Ansible
  • Kurzy Red Hat Ansible

[ Potřebujete více o Ansible? Absolvujte bezplatný kurz technického přehledu od společnosti Red Hat. Ansible Essentials:Jednoduchost v technickém přehledu automatizace. ] 

Sbalit

Ansible je nejmodernější nástroj pro automatizaci IT. Je snadné se ho naučit, je přístupný a bohatý na moduly. Pokud plánujete víc než jen učení Ansible – například budování vašeho automatizačního řetězce nebo jeho migraci na Ansible – máte k dispozici spoustu zdrojů, které vám pomohou.


Linux
  1. Jak používám Ansible a anacron pro automatizaci

  2. 10 modulů Ansible pro automatizaci systému Linux

  3. Jak jste začali s Linuxem?

  1. Ansible Guide:Správa souborů pomocí Ansible

  2. Proces spouštění systému Linux:Průvodce, jak začít

  3. Demystifikování Ansible pro systémové správce Linuxu

  1. Rychlý průvodce DNF pro uživatele yum

  2. Získat rychlost připojení programově?

  3. Získejte rychlost připojení síťového adaptéru virtio-net