Ansible (software)

Z Wikipedie, otevřené encyklopedie
Ansible
Logo
VývojářAnsible komunita / Ansible Inc. / Red Hat Inc.
První vydání20. února 2012
Aktuální verze2.6 (28. června 2018[1])
Operační systémGNU/Linux, Unix-like, macOS, MS Windows
Vyvíjeno vPython, PowerShell a unixový shell
Typ softwaruKonfigurační správa, Infrastructure as Code, Orchestrační stroj
Licenceproprietární / GNU General Public License
Lokalizaceangličtina
Webwww.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í.[2] 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šší.[3] 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.[4]

Ansible vyvinul Michael DeHaan, autor provisioning serveru Cobbler pro Linux a spoluautor frameworku Func pro vzdálenou administraci.[5] 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.[6]

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

Název „Ansible“ se odkazuje na komunikační zařízení umožňující přenos nadsvětelnou rychlostí, které vymyslela feministická 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.[11]

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.[12] 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.[13]

Jiné často používané systémy pro 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í.[13]

Designové cíle

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

  • Minimalismus Systém správy by neměl vyžadovat instalaci žádného dodatečného softwaru.[13]
  • Konzistence
  • Bezpečnost Ansible nevyužívá na uzlech agenty. Vyžaduje pouze OpenSSH, který je výborně otestován.[13]
  • Vysoká spolehlivost. Pečlivě napsaný Ansible playbook [ˈpleɪbʊk]IPA je idempotentní, což zabraňuje neočekávaným vedlejším efektům na spravovaných systémech.[2] Š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.[12]

Inventory

Inventory je popis uzlů, ke kterým lze v Ansiblu přistupovat. Inventory je popsané konfiguračním souboremINI 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.[14]

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.[15] 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 a Unixu, mj. na Red Hatu, Debianu, CentOSu, macOSu, BSD a Ubuntu.

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.[16] Ansible může od verze 1.7 spravovat také uzly se systémem MS Windows.[17][16]

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.[12]

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ů.[12]

Odkazy

Reference

V tomto článku byl použit překlad textu z článku Ansible (software) na anglické Wikipedii.

  1. CLAY, Matt. Ansible 2.6 "Heartbreaker" Release Notes [online]. GitHub, Inc, 2018-06-28 [cit. 2018-07-01]. Dostupné online. (anglicky) 
  2. a b Achieving Rolling Updates and Continuous Deployment with Zero Downtime [online]. [cit. 2018-07-01]. Dostupné online. (anglicky) 
  3. Getting Started - Ansible [online]. Red Hat, Inc., 2014-02-06 [cit. 2018-07-01]. Dostupné online. (anglicky) 
  4. SKOWRONSKI, Jason. Ansible: CM, Deployment, and Ad-hoc Task Execution All in One [online]. DevOps Zone. DZone, 2012-04-18. Dostupné online. 
  5. An Interview with Ansible Author Michael DeHaan [online]. Colo a Cloud, 2012-04-17 [cit. 2018-07-01]. Archivovaná stránka. Dostupné online. (anglicky) 
  6. Ansible Download (DEB, RPM, TXZ, XZ) [online]. Packages Search [cit. 2018-07-01]. Dostupné online. (anglicky) 
  7. Apache Brooklyn. About Ansible [online]. [cit. 2018-07-01]. Dostupné online. (anglicky) 
  8. Company Overview of Ansible, Inc. [online]. Bloomberg, Inc. [cit. 2018-07-01]. Dostupné online. (anglicky) 
  9. VentureBeat. Source: Red Hat is buying Ansible for more than $100M [online]. 2015-10-15 8:53 [cit. 2018-07-01]. Dostupné online. (anglicky) 
  10. Red Hat to Acquire IT Automation and DevOps Leader Ansible [online]. Red Hat, Inc., 2015-10-16 [cit. 2018-07-01]. Dostupné online. (anglicky) 
  11. Ansible FAQ [online]. Red Hat, Inc. [cit. 2018-07-01]. Dostupné online. (anglicky) 
  12. a b c d e Ansible in Depth [online]. [cit. 2018-07-01]. Dostupné online. (anglicky) 
  13. a b c d The Benefits of Agentless Architecture [online]. [cit. 2018-07-01]. Dostupné online. (anglicky) 
  14. Working with Inventory [online]. 2014-04-26 [cit. 2018-07-01]. Dostupné online. (anglicky) 
  15. Working With Playbooks [online]. Red Hat, Inc [cit. 2018-07-01]. Dostupné online. (anglicky) 
  16. a b Getting Started [online]. Red Hat, Inc [cit. 2018-07-01]. Dostupné online. (anglicky) 
  17. 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