Začni využívat Ansible pro automatizaci v IT
Vše, co potřebuješ vědět, než začneš využívat tento nástroj
Pokud hledáš nástroj, který ti umožní automatizovat svou IT infrastrukturu a ušetřit čas, pak jsi nejspíš narazil*a na Ansible. Proto jsme se pro tebe rozhodli sepsat článek, ve kterém najdeš vše potřebné, abys ses mohl*a správně rozhodnout, zda je Ansible ten správný nástroj pro automatizaci tvého projektu.
Co je to Ansible?
Ansible je jednoduchý open source nástroj pro automatizaci různých IT úloh. Můžeš ho využít pro nasazení aplikací, orchestraci podnikových služeb, poskytování cloudových řešení, správu konfigurací a také má mnoho dalších možností využití.
Automatizační úlohy se zapisují do playbooku, který je založený na jednoduchém programovací jazyku YAML. Ten je snadno čitelný a lehce zapisovatelný, a tak umožňuje i pracovníkům podpory IT infrastruktury snadno porozumět a případně upravit obsah playbooku.
Ansible je navržen pro víceúrovňová nasazení. To znamená, že spravuje nejen jeden systém, ale modeluje celou IT infrastrukturu jako vzájemně propojené systémy. Je bezagentní, což znamená, že se připojuje k uzlům prostřednictvím SSH (ve výchozím nastavení), ale nabízí i další možnosti připojení.
Po připojení k uzlům Ansible nasadí malé programy nazývané „moduly Ansible“, které se spustí na uzlech a po dokončení úlohy se odstraní. Inventář spravuje Ansible pomocí jednoduchých textových souborů hosts, kde můžeš seskupovat hostitele a přiřazovat k nim konkrétní akce v playbooku.
Proč začít s Ansible?
Ansible nabízí několik výhod oproti tradičním metodám správy IT infrastruktury, mezi které patří:
- Jednoduchost: Ansible se dá snadno naučit a používat ho zvládnou i začátečníci, a tak nemusíš být expertem na programování.
- Flexibilita: V Ansible dokážeš spravovat širokou škálu IT infrastruktury, včetně serverů, aplikací a síťových zařízení.
- Škálovatelnost: Můžeš spravovat tisíce serverů najednou, takže je ideální pro rozsáhlá nasazení.
- Opakované použití: V různých prostředích se dají opakovaně používat playbooky, což šetří čas a úsilí.
- Zabezpečení: Ansible používá ke komunikaci se servery protokol SSH, který je bezpečný.
Jak Ansible funguje?
Ansible funguje tak, že se připojuje k uzlům a nahrává do nich malé programy zvané moduly Ansible. Tyto moduly jsou ve výchozím nastavení spuštěny přes SSH a po dokončení úlohy se odstraní. Knihovna modulů může být umístěna na libovolném počítači a nejsou potřeba žádné servery, domény ani databáze.
Řídicí uzel řídí celé provádění playbooku a spouští instalace. Inventář poskytuje seznam hostitelů, na kterých je třeba spustit moduly Ansible. Řídicí uzel naváže SSH spojení a spustí moduly na hostitelských počítačích, kde nainstaluje požadovaný software či produkt.
Výhodou Ansible je, že po instalaci modulů je automaticky odstraní, což zajišťuje efektivní připojení k hostitelskému systému, provedení instrukcí a následné odstranění kódu ze zařízení.
Základní schéma Ansible architektury
Ansible se skládá z několika klíčových komponent:
- Inventář:
Inventář Ansible je seznam hostitelů s jejich IP adresami, servery a databázemi, které je třeba spravovat prostřednictvím SSH (pro UNIX, Linux nebo síťová zařízení) a WinRM (pro systémy Windows). Soubor inventáře je obvykle umístěn v adresáři /etc/ansible/hosts, ale můžeš zadat jiné umístění pomocí parametru -i.
Příklad inventárního souboru:
[web]
web1.example.com
web2.example.com
[db]
db1.example.com
db2.example.com
Tento inventář definuje dvě skupiny hostitelů: web a db, každá s dvěma hostiteli.
Rozhraní API
API (Application Programming Interface) se používají jako způsob komunikace s veřejnými a soukromými cloudovými službami.
Moduly
Moduly se spouštějí přímo na vzdálených zařízeních prostřednictvím playbooks a mohou řídit různé prostředky, jako jsou služby, balíčky, soubory nebo provádět systémové příkazy. Působí na systémové soubory, instalují balíčky a provádějí požadavky API do sítě služeb.
Existuje více než 450 modulů Ansible, které poskytují moduly automatizace různé úlohy v prostředí. Například moduly pro cloud, jako je Cloud Formation, vytvářejí nebo odstraňují zásobník pro vytvoření cloudu AWS.
Příklady modulů Ansible:
- apt: V systémech založených na Debianu instaluje nebo odebírá balíčky pomocí správce balíčků APT.
- yum: V systémech založených na platformě Red Hat instaluje nebo odebírá balíčky pomocí správce balíčků YUM.
- copy: Zkopíruje soubor z místního počítače do vzdáleného počítače.
- file: Spravuje soubory a adresáře na vzdáleném počítači.
- service: Spravuje služby na vzdáleném počítači.
Zásuvné moduly
Zásuvné moduly jsou části kódu, které rozšiřují základní funkce Ansible a umožňují provádět úlohy Ansible jako krok sestavení úlohy. Ansible se dodává s několika praktickými zásuvnými moduly a lze je také napsat samostatně. Například zásuvné moduly Action fungují jako front-endy modulů a mohou provádět úlohy na řadiči před voláním samotných modulů.
Síťování
Ansible používá k automatizaci síťových úloh jednoduchý, výkonný a bezagentový automatizační rámec. K tomu využívá samostatný datový model, který podporuje různý síťový hardware.
Hostitelé
Hostitelé označují uzly nebo systémy (Linux, Windows atd.), které jsou automatizovány pomocí Ansible.
Playbooky
Playbooky jsou soubory ve formátu YAML, které popisují úlohy, které má Ansible provést. Mohou deklarovat konfigurace, orchestraci kroků jakéhokoli manuálního procesu a spouštět různé úlohy.
Příklad playbooku:
yaml
Zkopírovat kód
- name: Install Apache
hosts: web
become: true
tasks:
- name: Install Apache
apt:
name: apache2
state: present
- name: Start Apache
service:
name: apache2
state: started
Tento playbook nainstaluje Apache na všechny hostitele ve skupině web a spustí službu Apache.
CMDB
Jedná se o zkratku pro Configuration Management Database (CMDB). V ní jsou uložena data ke kolekci prostředků IT a jedná se o úložiště nebo datový sklad, kde budeme tento druh dat uchovávat, a definuje také vztahy mezi těmito prostředky.
Cloud
Cloud představuje síť vzdálených serverů umístěných na internetu, které slouží k ukládání, správě a zpracování dat namísto jejich ukládání na místním serveru.
My máme jasno, ale co ty?
Ansible je výkonný a flexibilní nástroj pro automatizaci IT infrastruktury, který je snadno ovladatelný i pro začátečníky. Díky své bezagentové architektuře, široké škále modulů a jednoduchému zápisu playbooků umožňuje efektivní správu a škálování IT prostředí. Pokud hledáš způsob, jak zjednodušit a automatizovat své IT procesy, Ansible by mohl být tím pravým řešením pro tvůj projekt.
Autor*ka: Martin Šlat