Ansible (software)

Ansible(výslovnost[ˈaːnsəblAmerˈænsəbl]) jesvobodný software, který vytváříplatformupro konfigurační správu a řízenípočítačůkombinující víceuzlovénasazení softwaru,ad hocprováděníúlohasprávu konfigurací.Ansible spravujepočítače v sítipomocíSSHnebo přes PowerShell. Má minimální nároky na nainstalovaný software, na linuxových uzlech vystačí sPythonemverze 2.4 nebo vyšší, na uzlech s MS Windows sPowerShellverze 3.0 nebo vyšší.Používá moduly využívajícíJSONa 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 serveruCobblerpro Linux a spoluautor frameworkuFuncpro vzdálenou administraci.Ansible je součást linuxové distribuceFedoravytvářené firmouRed HatInc., v podobě balíčků EPEL (Extra Packages for Enterprise Linux) je dostupný i proRed Hat Enterprise Linux,CentOSaScientific 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řenosnadsvětelnou rychlostí, které vymyslelaspisovatelkaUrsula K. Le Guinovápro svůj románRocannonův světz roku 1966, a které popisujeOrson Scott Cardv románuEnderova hra.
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. Spravované uzly jsou popsány na řídicím stroji vinventory(výsl.[ˈɪnvəntriAmerˈɪnvəntɔːri]IPA).
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í protokoluJSONna standardním výstupu.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říkladChef,PuppetaCFEngine– používají agenty. U těchto systémů musí být na každém uzlu nainstalovándémon, který komunikuje s řídicím strojem. 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í.
K designovým cílům Ansiblu patří:
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.). K základním vlastnostem modulů patří jejichidempotence, což znamená, že několikanásobné opakování operace (např. při zotavení z výpadku) uvede systém do stejného stavu.
Inventory je popis uzlů, ke kterým lze v Ansiblu přistupovat. Inventory je popsanékonfiguračním souboremvINIformátu, jehož implicitní umístění je/etc/ansible/hosts. Konfigurační soubor obsahuje pro každý spravovaný uzel buď jehoIP adresunebojméno počítače. Uzly lze navíc sdružovat do skupin.
Příklad konfiguračního souboru:
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 skupinywebservers.
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 popisují v Ansiblu konfigurace, nasazení softwaru a orchestraci jednotlivých složek.Playbooky mají formátYAML. Každý Playbook přiřazuje skupině uzlů sadu rolí. Jednotlivé role jsou reprezentovány voláními úloh v Ansiblu.
Na řídicím stroji musí být nainstalován Python 2.6 nebo 2.7. Řídicí stroj lze provozovat na většině distribucíLinuxu, mj. naRed Hatu,Debianu,CentOSu,  aUbuntu, případně další Unixové systémy, např.BSDamacOS.
Na spravovaných uzlech musí být Python verze 2.4 nebo vyšší. Uzly s Pythonem do verze 2.5 musí mít nainstalovaný balíčekpython-simplejson.Ansible může od verze 1.7 spravovat také uzly sesystémemMS Windows.
Ansible může pracovat na virtuálních strojích, ve veřejných i soukromýchcloudechjako jsouAmazon Web Services,CloudStack,DigitalOcean,Eucalyptus Cloud,Google Cloud Platform,KVM Switch,Microsoft Azure Platform,OpenStack,Rackspace,SoftVrstva,VMwareaXenServer.
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,RiakaAerospike. 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. 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ů.
V tomto článku byl použitpřekladtextu z článkuAnsible (software)na anglické Wikipedii.