Ansible (software)
Vývojář | Ansible komunita/ Ansible Inc. / Red Hat Inc. |
---|---|
První vydání | 20. února 2012 |
Aktuální verze | 2.15.5 (9. října 2023) |
Operační systém | GNU/Linux, Unix-like, macOS, MS Windows |
Vyvíjeno v | Python, PowerShell, Shell, Ruby |
Typ softwaru | Konfigurační správa, Infrastructure as Code, Orchestrační stroj |
Licence | proprietární / GNU GPL |
Lokalizace | angličtina |
Web | ansible.com |
Některá data mohou pocházet z datové položky. |
Ansible (výslovnost [ˈaːnsəbl Amer ˈæ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í.[1] 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šší.[2] 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.[3]
Ansible vyvinul Michael DeHaan, autor provisioning serveru Cobbler pro Linux a spoluautor frameworku Func pro vzdálenou administraci.[4] Ansible je součást linuxové distribuce Fedora vytvářené firmou Red Hat Inc., 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.[5]
Pro komerční podporu a financování Ansiblu byla vytvořena společnost AnsibleWorks, Inc., později přejmenovaná na Ansible, Inc.,[6][7] kterou v říjnu 2015 odkoupila firma Red Hat.[8][9]
Název „Ansible“ se odkazuje na komunikační zařízení umožňující přenos nadsvětelnou rychlostí, které vymyslela spisovatelka Ursula K. 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.[10]
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. Spravované uzly jsou popsány na řídicím stroji v inventory
(výsl. [ˈɪnvəntri Amer ˈɪ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í protokolu JSON na standardním výstupu.[11] 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.[12]
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. 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í.[12]
Designové cíle
K designovým cílům Ansiblu patří:[11]
- Minimalismus Systém správy by neměl vyžadovat instalaci žádného dodatečného softwaru.[12]
- Konzistence
- Bezpečnost Ansible nevyužívá na uzlech agenty. Vyžaduje pouze OpenSSH, který je výborně otestován.[12]
- Vysoká spolehlivost. Pečlivě napsaný Ansible playbook [ˈpleɪbʊk]IPA je idempotentní, což zabraňuje neočekávaným vedlejším účinkům na spravovaných systémech.[1] Š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.). 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.[11]
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. 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.[13]
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.[14] Playbooky mají formát YAML. 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.7. Ří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šší. Uzly s Pythonem do verze 2.5 musí mít nainstalovaný balíček python-simplejson.[15] Ansible může od verze 1.7 spravovat také uzly se systémem MS Windows.[16][15]
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.[11]
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. 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ů.[11]
Odkazy
Reference
V tomto článku byl použit překlad textu z článku Ansible (software) na anglické Wikipedii.
- ↑ a b Achieving Rolling Updates and Continuous Deployment with Zero Downtime [online]. [cit. 2018-07-01]. Dostupné online. (anglicky)
- ↑ Getting Started - Ansible [online]. Red Hat, Inc., 2014-02-06 [cit. 2018-07-01]. Dostupné v archivu. (anglicky)
- ↑ SKOWRONSKI, Jason. Ansible: CM, Deployment, and Ad-hoc Task Execution All in One [online]. DevOps Zone. DZone, 2012-04-18 [cit. 2018-07-02]. Dostupné v archivu pořízeném dne 2018-07-02.
- ↑ An Interview with Ansible Author Michael DeHaan [online]. Colo a Cloud, 2012-04-17 [cit. 2018-07-01]. Archivovaná stránka. Dostupné v archivu pořízeném z originálu dne 2013-01-19. (anglicky)
- ↑ Ansible Download (DEB, RPM, TXZ, XZ) [online]. Packages Search [cit. 2018-07-01]. Dostupné v archivu pořízeném dne 2015-09-04. (anglicky)
- ↑ Apache Brooklyn. About Ansible [online]. [cit. 2018-07-01]. Dostupné online. (anglicky)
- ↑ Company Overview of Ansible, Inc. [online]. Bloomberg, Inc. [cit. 2018-07-01]. Dostupné online. (anglicky)
- ↑ VentureBeat. Source: Red Hat is buying Ansible for more than $100M [online]. 2015-10-15 8:53 [cit. 2018-07-01]. Dostupné online. (anglicky)
- ↑ Red Hat to Acquire IT Automation and DevOps Leader Ansible [online]. Red Hat, Inc., 2015-10-16 [cit. 2018-07-01]. Dostupné online. (anglicky)
- ↑ Ansible FAQ [online]. Red Hat, Inc. [cit. 2018-07-01]. Dostupné v archivu. (anglicky)
- ↑ a b c d e Ansible in Depth [online]. [cit. 2018-07-01]. Dostupné online. (anglicky)
- ↑ a b c d The Benefits of Agentless Architecture [online]. [cit. 2018-07-01]. Dostupné online. (anglicky)
- ↑ Working with Inventory [online]. 2014-04-26 [cit. 2018-07-01]. Dostupné online. (anglicky)
- ↑ Working With Playbooks [online]. Red Hat, Inc [cit. 2018-07-01]. Dostupné online. (anglicky)
- ↑ a b Getting Started [online]. Red Hat, Inc [cit. 2018-07-01]. Dostupné online. (anglicky)
- ↑ DEHAAN, Michael. Ansible 1.7 is released - Windows beta and more! [online]. Red Hat, Inc, 2014-08-06 [cit. 2018-07-01]. Dostupné online. (anglicky)
Externí odkazy
- (anglicky) Oficiální veřejný repozitář kódu na GitHub
Média použitá na této stránce
Ansible logo