Možná jste zaslechli o Ansible, ale nejste si jisti, co přesně to je? Žádný strach, během následujících několika minut se s Ansible důkladně seznámíte.
Co je to Ansible?
Ansible je open-source nástroj z oblasti DevOps, který firmám pomáhá se správou konfigurací, nasazováním aplikací, provisioningem a dalšími úkoly. Jeho nasazení je jednoduché, protože ke komunikaci se servery využívá protokol SSH. Pro popis automatizačních úloh používá tzv. playbooky, které jsou psané v snadno srozumitelném jazyce YAML.
Ansible přináší do vaší IT infrastruktury spolehlivost, konzistenci a škálovatelnost. S jeho pomocí můžete automatizovat konfiguraci databází, úložišť, sítí i firewallů. Zajišťuje, že všechny potřebné balíčky a software jsou na serverech v jednotném stavu, což je klíčové pro bezproblémový běh aplikací.
Uveďme si příklad: Máte vývojovou verzi aplikace vytvořenou ve Visual C++. Pokud byste ji chtěli spustit na novém počítači, potřebovali byste splnit určité předpoklady, například mít nainstalované knihovny DLL Microsoft Visual C++ a samotné Visual C++. Právě zde Ansible zasahuje a postará se o to, aby byly všechny tyto potřebné balíčky a software nainstalovány, aby vaše aplikace mohla bez problémů fungovat v testovacím i produkčním prostředí.
Navíc Ansible uchovává historii všech změn vaší aplikace, takže se můžete kdykoliv vrátit k předchozí verzi nebo provést upgrade. Vše je snadné a bezpečné.
Pojďme si nyní představit některé klíčové vlastnosti Ansible:
Bezagentová architektura: To znamená, že na spravovaných uzlech není potřeba instalovat žádný dodatečný software nebo agenty, na rozdíl od jiných řešení jako Puppet nebo Chef.
Python: Ansible je postaven na Pythonu, což je rychlý a robustní programovací jazyk, který se těší velké oblibě.
SSH: Pro autentizaci a komunikaci používá SSH, což je bezpečný a bezheslový síťový protokol. Váš úkol je tedy pouze zkopírovat klíč na klientské stroje.
Push architektura: Ansible „tlačí“ potřebné konfigurace ke klientům. Jediné, co musíte udělat, je definovat tyto konfigurace v playbooku a ten pak aplikovat na všechny uzly najednou. Je fascinující, jak rychle lze provést změny na tisících serverů během několika minut.
Jednoduché nastavení: K jeho zprovoznění potřebujete minimum konfigurace a nastavení.
Architektura Ansible
Začněme s Public/Private Cloud, což je server s operačním systémem Linux. Ten může fungovat jako úložiště všech potřebných instalací a konfigurací vaší IT infrastruktury.
Výše uvedená architektura obsahuje spoustu cílových počítačů, ke kterým se Ansible server připojuje a posílá jim playbooky přes SSH.
K dispozici je automatizační engine, s jehož pomocí mohou uživatelé spouštět playbooky na cílových počítačích. Tento engine se skládá z několika součástí. První je inventář hostů. Jedná se o seznam všech IP adres všech spravovaných serverů.
Další jsou moduly. Ansible přichází se stovkami předdefinovaných modulů, které představují kousky kódu spouštěné při aplikaci playbooku. Playbook se skládá z her, hra obsahuje úkoly a úkol se skládá z modulů.
Při spuštění playbooku se tedy moduly spouští na cílových počítačích a vykonávají akce. Můžete si také vytvářet vlastní moduly. Stačí napsat několik řádků kódu a máte modul připravený ke spuštění.
Architektura dále zahrnuje playbooky. Playbooky definují pracovní postup, jelikož úkoly se vykonávají v pořadí, ve kterém jsou v playbooku zapsány. Pokud tedy nejprve napíšete instalaci balíčku a poté jeho spuštění, provede se to přesně v tomto pořadí. Playbooky se snadno píší v jazyce YAML. YAML je jednoduchý jazyk pro serializaci dat a připomíná angličtinu.
Další složkou architektury jsou pluginy. Pluginy jsou specifické typy modulů, které se spouštějí před samotnými moduly na cílových uzlech. Tyto pluginy se spouští na řídicím serveru pro účely logování. Například pluginy pro zpětné volání umožňují připojení k různým událostem pro logování a monitorování. Pluginy pro mezipaměť se používají k ukládání faktů do mezipaměti, aby se předešlo opakovanému a nákladnému zjišťování informací. Ansible má také akční pluginy, které se chovají jako front-end moduly a vykonávají úkoly na řídicím serveru před voláním hlavních modulů.
Architektura má také propojovací pluginy. Pro připojení k cílovým serverům není vždy nutné používat SSH, můžete využít i propojovací pluginy. Ansible například nabízí plugin pro připojení k Docker kontejnerům, což vám umožní snadno konfigurovat kontejnery.
To bylo vše k architektuře. Dále si povíme, jak Ansible funguje.
Jak Ansible funguje?
Ansible funguje tak, že se připojí k cílovým uzlům a „tlačí“ na ně malé programy nazývané Ansible moduly. Tyto moduly se pak spustí přes SSH a po provedení úkolů se odstraní.
Ansible management uzel je řídicí bod, ze kterého se spouští veškeré operace. Inventář udává, na kterých hostech se mají moduly spustit. Management uzel naváže SSH spojení a spustí moduly na hostitelských počítačích. Po dokončení se moduly odstraní. Takto zjednodušeně Ansible funguje.
Možná vás nyní napadá, jak Ansible nainstalovat a nakonfigurovat.
Závěr
Doufám, že nyní máte základní představu o Ansible a můžete se do něj pustit. Ansible představuje revoluci v oblasti správy infrastruktury a pokud jste administrátor systémů nebo vývojář, doporučuji vám podívat se na praktický výcvik, který vám pomůže zdokonalit vaše dovednosti.