Ansible (software)

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Ansible (výslovnost [ˈaːnsəbl ˈænsəbl]) je svobodný software, který vytváří platformu pro konfigurační správu a řízení počítačů kombinující víceuzlové nasazení softwaru, ad hoc provádění úloh a správu konfigurací. Ansible spravuje počítače v síti pomocí SSH nebo přes PowerShell. Má minimální nároky na nainstalovaný software, na linuxových uzlech vystačí s Pythonem verze 2.4 nebo vyšší, na uzlech s MS Windows s PowerShell verze 3.0 nebo vyšší. Používá moduly využívající JSON a standardní výstup, které mohou být napsány v libovolném programovacím jazyce. Pro znovupoužitelné popisy stavů uzlů se používá YAML.

Ansible vyvinul Michael DeHaan, autor provisioning serveru Cobbler pro Linux a spoluautor frameworku Func pro vzdálenou administraci. Ansible je součást linuxové distribuce Fedora vytvářené firmou Red Hat Inc. +more, v podobě balíčků EPEL (Extra Packages for Enterprise Linux) je dostupný i pro Red Hat Enterprise Linux, CentOS a Scientific Linux, i pro další operační systémy.

Pro komerční podporu a financování Ansiblu byla vytvořena společnost AnsibleWorks, Inc., později přejmenovaná na Ansible, Inc., kterou v říjnu 2015 odkoupila firma Red Hat.

Název „Ansible“ se odkazuje na komunikační zařízení umožňující přenos nadsvětelnou rychlostí, které vymyslela spisovatelka Ursula K. +more Le Guinová pro svůj román Rocannonův svět z roku 1966, a které popisuje Orson Scott Card v románu Enderova hra.

Architektura

Jako většina systémů pro správu konfigurací rozlišuje Ansible dva typy serverů: řídicí stroj a uzly. Veškerá orchestrace je řízena z jednoho řídicího stroje, který pro přístup na spravované uzly používá SSH. +more Spravované uzly jsou popsány na řídicím stroji v inventory (výsl. ).

Pro orchestraci uzlů používá Ansible moduly, které na uzly dostává a spouští pomocí SSH. Moduly se dočasně ukládají na uzly a komunikují s řídicím strojem pomocí protokolu JSON na standardním výstupu. +more V okamžiku, kdy Ansible uzly neřídí, nespotřebovává žádné prostředky, protože na spravovaných uzlech neběží žádné programy nebo démoni.

Jiné často používané systémy pro správu konfigurací - jako například Chef, Puppet a CFEngine - používají agenty. U těchto systémů musí být na každém uzlu nainstalován démon, který komunikuje s řídicím strojem. +more Ansible naproti tomu používá bezagentovou architekturu, která vystačí s démonem pro přihlášení na příslušný uzel. Výhodou je i nižší provoz po síti díky tomu, že uzly s řídicím strojem samostatně nekomunikují.

Designové cíle

K designovým cílům Ansiblu patří:

* Minimalismus Systém správy by neměl vyžadovat instalaci žádného dodatečného softwaru. * Konzistence * Bezpečnost Ansible nevyužívá na uzlech agenty. +more Vyžaduje pouze OpenSSH, který je výborně otestován. * Vysoká spolehlivost. Pečlivě napsaný Ansible playbook je idempotentní, což zabraňuje neočekávaným vedlejším účinkům na spravovaných systémech. Špatně napsaný playbook však může nebýt idempotentní. * Plochá učicí křivka. Playbooky používají snadno zvládnutelný a popisný jazyk založený na YAML a šablonách Jinja.

Moduly

Moduly jsou v Ansiblu považovány za jednotky činnosti. Jednotlivé moduly jsou obvykle samostatné a mohou být napsány v běžných skriptovacích jazycích (Python, Perl, Ruby, bash, atd. +more). K základním vlastnostem modulů patří jejich idempotence, což znamená, že několikanásobné opakování operace (např. při zotavení z výpadku) uvede systém do stejného stavu.

Inventory

Inventory je popis uzlů, ke kterým lze v Ansiblu přistupovat. Inventory je popsané konfiguračním souborem v INI formátu, jehož implicitní umístění je /etc/ansible/hosts. +more Konfigurační soubor obsahuje pro každý spravovaný uzel buď jeho IP adresu nebo jméno počítače. Uzly lze navíc sdružovat do skupin.

Příklad konfiguračního souboru:

192.168.6.1

[webservers] foo.example.com bar.example.com

Tento konfigurační soubor definuje tři uzly. První uzel je zadaný IP adresou a další dva jmény. Druhý a třetí uzel jsou navíc sdruženy do skupiny webservers.

Ansible může být také použit pro skript realizující Dynamické Inventory, který může načítat data z libovolného informačního systému.

Playbooky

Playbooky popisují v Ansiblu konfigurace, nasazení softwaru a orchestraci jednotlivých složek. Playbooky mají formát YAML. +more Každý Playbook přiřazuje skupině uzlů sadu rolí. Jednotlivé role jsou reprezentovány voláními úloh v Ansiblu.

Dostupnost pro jednotlivé platformy

Na řídicím stroji musí být nainstalován Python 2. 6 nebo 2. +more7. Řídicí stroj lze provozovat na většině distribucí Linuxu, mj. na Red Hatu, Debianu, CentOSu, a Ubuntu, případně další Unixové systémy, např. BSD a macOS.

Na spravovaných uzlech musí být Python verze 2. 4 nebo vyšší. +more Uzly s Pythonem do verze 2. 5 musí mít nainstalovaný balíček python-simplejson. Ansible může od verze 1. 7 spravovat také uzly se systémem MS Windows.

Podpora cloud computingu

Ansible může pracovat na virtuálních strojích, ve veřejných i soukromých cloudech jako jsou Amazon Web Services, CloudStack, DigitalOcean, Eucalyptus Cloud, Google Cloud Platform, KVM Switch, Microsoft Azure Platform, OpenStack, Rackspace, SoftVrstva, VMware a XenServer.

Podpora big data

Ansible může být nasazen pro zpracování rozsáhlých data, pro rozsáhlá úložiště a analytická prostředí, včetně Hadoop, Riak a Aerospike. V těchto prostředích lze Ansible použít pro správu prostředků jednotlivých uzlů, nenáročnou na spotřebu času CPU a paměti. +more Ansible navíc poskytuje monitorovací funkcionality, které mohou měřit dostupné prostředky systému, což může pomáhat při správě těchto uzlů.

Odkazy

Reference

Externí odkazy

[url=http://github.com/ansible/ansible]Oficiální veřejný repozitář kódu[/url] na GitHub

Kategorie:Orchestrační software Kategorie:Správa systému Kategorie:Distribuce software Kategorie:Software v Pythonu Kategorie:Svobodný software

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top