Ansible (szoftver)
Ansible | |
Fejlesztő | Ansible Community / Ansible Inc. / Red Hat Inc. |
Legfrissebb stabil kiadás | 2.18.0 (stabil verzió, 2024. november 4.)[1] |
Programozási nyelv | Python, PowerShell, Shell, Ruby |
Operációs rendszer | Linux, Unix-like, MacOS, Windows |
Elérhető | angol |
Kategória |
|
Licenc |
|
Az Ansible weboldala |
Az Ansible olyan szoftvereszközök készlete, amely kódként teszi lehetővé az infrastruktúrát. Nyílt forráskódú, csomag szoftver-kiépítést, konfigurációkezelést és alkalmazástelepítési funkciókat tartalmaz.[2]
Eredetileg Michael DeHaan készítette. 2015-ben vásárolta meg a Red Hat. Az Ansible-t mind a Unix-szerű rendszerek, mind a Microsoft Windows konfigurálására tervezték. Az Ansible ügynök nélküli, ideiglenes távoli kapcsolatokra támaszkodik SSH -n vagy Windows távfelügyeleten keresztül, amely lehetővé teszi a PowerShell végrehajtását. Az Ansible vezérlőcsomópont a legtöbb Unix-szerű rendszeren fut, amely képes a Python futtatására, beleértve a telepített WSL -t tartalmazó Windows rendszereket is.[3] A rendszer konfigurációját részben a saját deklaratív nyelve határozza meg.
Története
[szerkesztés]Az „ansible” kifejezést Ursula K. Le Guin 1966-os Rocannon világa[4] című regényében használta, amivel a kitalált azonnali kommunikációs rendszerekre utal.[5][6]
Az Ansible eszközt Michael DeHaan, a Cobbler kiépítési szerveralkalmazás szerzője és a Fedora Unified Network Controller (Func) távfelügyeleti keretrendszer társszerzője fejlesztette ki.[7]
Az Ansible, Inc. (eredeti nevén AnsibleWorks, Inc.) a Michael DeHaan, Timothy Gerla és Saïd Ziouani által 2013-ban alapított társaság az Ansible kereskedelmi támogatására és szponzorálására.[8][9][10] A Red Hat 2015 októberében megvásárolta az Ansible-t.[11][12]
Az Ansible a Red Hat tulajdonában lévő Linux Fedora disztribúció részeként található. Elérhető a Red Hat Enterprise Linux, CentOS, openSUSE, SUSE Linux Enterprise, Debian, Ubuntu, Scientific Linux és Oracle Linux rendszereken isc az Extra Packages for Enterprise segítségével. Linux (EPEL), valamint más operációs rendszerekhez.
Felépítése
[szerkesztés]Áttekintés
[szerkesztés]Az Ansible segít több gép kezelésében azáltal, hogy kiválasztja az Ansible egyszerű ASCII szövegfájlokban tárolt jegyzék (inventory) részeit. A jegyzék konfigurálható. A célgép jegyzékei dinamikusan vagy felhőalapú forrásokból származhat különböző formátumokban ( YAML, INI ).
Az érzékeny adatok titkosított fájlokban tárolhatók az Ansible Vault[13] segítségével 2014 óta.[14] Más népszerű konfigurációkezelő szoftverekkel ellentétben – mint például a Chef, a Puppet, a Salt és a CFEngine – az Ansible ügynök nélküli architektúrát használ. Az Ansible szoftverrel, amely általában nem fut, vagy nincs is telepítve van a vezérelt csomóponton.[15] Ehelyett az Ansible úgy vezérli a csomópontot, hogy SSH-n keresztül ideiglenesen modulokat telepít és futtat a csomóponton. A vezérlési feladat időtartama alatt a modult futtató folyamat egy JSON -alapú protokollal kommunikál a vezérlő géppel annak szabványos bemenetén és kimenetén keresztül.[16] Ha az Ansible nem kezel egy csomópontot, akkor nem fogyaszt erőforrásokat a csomóponton, mivel nem futnak démonok vagy nincs telepítve rajta szoftver.[15]
Függőségek
[szerkesztés]Az Ansible megköveteli, hogy a Python telepítve legyen az összes kezelőgépen, beleértve a pip csomagkezelőt, valamint a konfigurációkezelő szoftvert és a függő csomagokat. A felügyelt hálózati eszközök nem igényelnek több függőséget, és ügynök nélküliek.[17]
Vezérlő csomópont
[szerkesztés]A vezérlőcsomópont (főgazda) a célgépek (" jegyzéknek " nevezett csomópontok) kezelésére (vezérlésére) szolgál, lásd alább.[18] A vezérlőcsomópontok csak Linuxhoz és Unix szerű rendszerekhez érhetők el. A Windows operációs rendszerek nem támogatottak. Több vezérlőcsomópont megengedett. Az Ansible nem igényel egyetlen vezérlőgépet a vezérléshez.[19] Biztosítja, hogy egy összeomlás utáni helyreállítás egyszerű legyen. A csomópontokat a vezérlő csomópont kezeli SSH -n keresztül.
Tervezési célok
[szerkesztés]Az Ansible tervezési céljai a következők:
- A természetesen minimalista. Az irányítási rendszerek nem várhatnak el további függőséget a környezettől.
- Szilárd. Az Ansible segítségével állandó környezetet kell létrehozni.
- Biztonságos. Az Ansible nem telepít ügynököket a csomópontokra. Csak OpenSSH és Python szükséges a felügyelt csomópontokon.
- Megbízható. Gondosan megírva az Ansible playbook idempotens lehet, hogy megelőzze a felügyelt rendszerek váratlan mellékhatásait.[20] Lehet olyan playbook-ot írni, amelyek nem idempotensek.
- Kevés tanulás szükséges hozzá. A Playbookok egy egyszerű és leíró nyelvet használnak, amely YAML és Jinja sablonokon alapul.
Modulok
[szerkesztés]Az modulok[21] többnyire önállóak, és egységesített szkriptnyelven (például Python, Perl, Ruby, Bash stb.) írhatók. ). A modulok egyik irányadó célja az idempotencia, ami azt jelenti, hogy egy művelet többszöri megismétlése esetén is (pl. kimaradás utáni helyreállításkor) mindig ugyanabba az állapotba hozza a rendszert.
Jegyzék (inventory) konfiguráció
[szerkesztés]A célcsomópontok helyét a /etc/ansible/hosts
(Linux rendszeren) címen található (INI vagy YAML formátumú) jegyzék konfigurációs listák határozzák meg.[22][23] A konfigurációs fájl felsorolja az Ansible által elérhető minden csomópont IP-címét vagy gazdagépnevét. Ezenkívül a csomópontok csoportokhoz rendelhetők.
Példa a jegyzékre (INI formátum):
Ez a konfigurációs fájl három csomópontot határoz meg: Az első csomópontot egy IP-cím. Az utóbbi két csomópontot pedig gazdagépnevek alkotják. Ezenkívül az utóbbi két csomópont a webservers
csoportjába van csoportosítva.
Az Ansible egyéni Dynamic Inventory szkriptet is használhat, amely képes dinamikusan lekérni az adatokat egy másik rendszerről,[24] és támogatja a csoportok csoportjait.[25]
Előadás jegyzékek (Playbooks)
[szerkesztés]A Playbookok YAML -fájlok, amelyek a felügyelt csomópontokon végzett ismételt[26] -végrehajtások feladatlistáit tárolják.[27] Minden Playbook leképezi (társítja) a gazdagépek egy csoportját egy szerepkörhöz. Minden szerepkört az Ansible feladatok hívásai képviselnek.[28]
Ansible Automation Platform
[szerkesztés]Az Ansible Automation Platform egy REST API, webszolgáltatás és webalapú felület (alkalmazás), amelynek célja, hogy az Ansible-t elérhetőbbé tegye az informatikai ismeretek széles skálájával rendelkező emberek számára. Ez egy több összetevőből álló platform, beleértve a fejlesztői eszközöket, a műveleti felületet, valamint az Automation Mesh-et, amely lehetővé teszi az adatközpontok közötti méretű automatizálási feladatokat. Az AAP egy kereskedelmi termék, amelyet a Red Hat, Inc. támogat, de több mint 17 upstream nyílt forráskódú projektből származik, beleértve az AWX upstream projektet (korábban az Ansible Towerből származik), amely 2017 szeptembere óta nyílt forráskódú.[29][30][31][32]
A Towernek volt egy másik nyílt forráskódú alternatívája is, a Go -ban írt Semaphore.[33][34]
Platform támogatás
[szerkesztés]A vezérlőgépeknek Linux/Unix gazdagépnek kell lenniük (például BSD, CentOS, Debian, macOS, Red Hat Enterprise Linux, SUSE Linux Enterprise, Ubuntu[35] ), és Python 2.7 vagy 3.5 szükséges.
A felügyelt csomópontoknak, ha Unix-szerűek, Python 2.4-es vagy újabb verzióval kell rendelkezniük. A Python 2.5-ös vagy korábbi verziójú felügyelt csomópontokhoz a python-simplejson
csomag is szükséges.[36] Az 1.7-es verzió óta az Ansible képes kezelni a Windows[37] csomópontjait is. Ebben az esetben az SSH helyett a WS-Management protokoll által támogatott natív PowerShell távvezérlés kerül felhasználásra.
Az Ansible telepíthető fizikai gazdagépekre, virtuális gépekre és felhőkörnyezetekre.
AnsibleFest
[szerkesztés]Az AnsibleFest az Ansible felhasználók, közreműködők stb. közösségének éves konferenciája.[38]
Év | Helyszín |
---|---|
2014 | San Francisco, Kalifornia |
2015 | London, Egyesült Királyság |
2016 | London, Egyesült Királyság |
2016 | San Francisco, Kalifornia |
2016 | Brooklyn, New York |
2017 | London, Egyesült Királyság |
2017 | San Francisco |
2018 | Austin, Texas |
2019 | Atlanta, Georgia |
2020 | A COVID-19 világjárvány miatt csak virtuális |
2021 | A COVID-19 világjárvány miatt csak virtuális |
2022 | Chicago, Illinois |
Jegyzetek
[szerkesztés]- ↑ Release 2.18.0, 2024. november 4. (Hozzáférés: 2024. november 20.)
- ↑ Staff writer: Overview – How Ansible Works. ansible.com pp. 1. Red Hat, Inc.. (Hozzáférés: 2016. december 7.)
- ↑ Ansible Documentation-Installation Guide. docs.ansible.com. (Hozzáférés: 2022. július 7.)
- ↑ Bernardo, Susan. Ursula K. Le Guin : a critical companion. Westport, Conn: Greenwood Press, 18. o. (2006). ISBN 978-0-313-02730-7. OCLC 230345464
- ↑ Frequently Asked Questions. docs.ansible.com pp. 1. Red Hat, Inc.. [2015. július 6-i dátummal az eredetiből archiválva]. (Hozzáférés: 2013. április 30.)
- ↑ DeHaan: Google Groups Post – Ansible Project. groups.google.com pp. 1, 2014. január 29. (Hozzáférés: 2017. április 26.)
- ↑ Maughan: An Interview with Ansible Author Michael DeHaan. coloandcloud.com pp. 1. Maughansem LLC, 2012. április 17. [2012. november 14-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. november 5.)
- ↑ About Ansible pp. 1. Ansible, Inc.. [2015. szeptember 5-i dátummal az eredetiből archiválva]. (Hozzáférés: 2016. július 8.)
- ↑ Bloomberg Research: Ansible, Inc.: Private Company Information. Internet Software and Services pp. 1. Bloomberg L.P.. (Hozzáférés: 2016. július 8.)
- ↑ About Team, 2015. szeptember 5. [2015. szeptember 5-i dátummal az eredetiből archiválva]. (Hozzáférés: 2021. április 7.)
- ↑ Novet: Source: Red Hat is buying Ansible for more than $100M. venturebeat.com pp. 1. VentureBeat, Inc., 2015. október 15. (Hozzáférés: 2015. október 16.)
- ↑ Staff writer: Red Hat to Acquire IT Automation and DevOps Leader Ansible. redhat.com. Red Hat, Inc., 2015. október 16. (Hozzáférés: 2015. október 16.)
- ↑ Ansible Vault — Ansible Documentation. docs.ansible.com
- ↑ Ansible vault: a framework for encrypting any playbook or var file. · ansible/ansible@427b8dc. GitHub
- ↑ a b The Benefits of Agentless Architecture (PDF) pp. 5. Red Hat, Inc.
- ↑ Ansible in Depth (PDF) pp. 5. Red Hat, Inc.
- ↑ Python 3 Support. docs.ansible.com pp. 1. Red Hat, Inc.. [2017. július 10-i dátummal az eredetiből archiválva]. (Hozzáférés: 2017. július 6.)
- ↑ Ansible concepts — Ansible Documentation. docs.ansible.com. (Hozzáférés: 2021. november 19.)
- ↑ Installation Guide — Ansible Documentation (angol nyelven). docs.ansible.com. (Hozzáférés: 2018. november 30.)
- ↑ Achieving Rolling Updates and Continuous Deployment with Zero Downtime pp. 7. Red Hat, Inc.
- ↑ Module Index — Ansible Documentation. docs.ansible.com
- ↑ Inventory. docs.ansible.com pp. 1. Red Hat, Inc.. [2015. július 6-i dátummal az eredetiből archiválva]. (Hozzáférés: 2014. április 26.)
- ↑ Working with Inventory — Ansible Documentation (angol nyelven). docs.ansible.com. (Hozzáférés: 2018. november 30.)
- ↑ Dynamic Inventory. docs.ansible.com pp. 1. Red Hat, Inc.. [2017. július 11-i dátummal az eredetiből archiválva]. (Hozzáférés: 2016. november 25.)
- ↑ How to build your inventory — Ansible Documentation. docs.ansible.com
- ↑ Playbooks. docs.ansible.com pp. 1. Red Hat, Inc.. [2015. július 6-i dátummal az eredetiből archiválva]. (Hozzáférés: 2014. április 26.)
- ↑ Intro to playbooks — Ansible Documentation. docs.ansible.com. (Hozzáférés: 2021. november 19.)
- ↑ Task And Handler Organization For A Role. docs.ansible.com pp. 1. Red Hat, Inc.. [2017. július 17-i dátummal az eredetiből archiválva]. (Hozzáférés: 2016. november 25.)
- ↑ Redditors: Ansible announces Tower to be Open Source in the near future on AnsibleFest!. reddit.com pp. 1. Reddit, 2016. február 19. (Hozzáférés: 2017. július 20.)
- ↑ Staff writer: The Open Tower Project. ansible.com/open-tower pp. 1. Red Hat, Inc.. (Hozzáférés: 2017. január 21.)
- ↑ Hat: AWX Project FAQ | Ansible.com. www.ansible.com
- ↑ ansible/awx, 2020. március 25.
- ↑ Semaphore community: Semaphore API. ansible-semaphore.github.io pp. 1. [2016. augusztus 16-i dátummal az eredetiből archiválva]. (Hozzáférés: 2021. február 5.)
- ↑ Semaphore community: ansible-semaphore. github.com/ansible-semaphore. Castaway Consulting LLC. (Hozzáférés: 2021. február 5.)
- ↑ Ulianytskyi: ansible Download (DEB, RPM, TGZ, TXZ, XZ). pkgs.org pp. 1. Linux Packages Search. (Hozzáférés: 2012. november 5.)
- ↑ Getting started. docs.ansible.com pp. 1. Red Hat, Inc.. [2015. július 6-i dátummal az eredetiből archiválva]. (Hozzáférés: 2014. február 6.)
- ↑ DeHaan: Ansible 1.7 is released – Windows beta and more!. ansible.com/blog pp. 1. Ansible, Inc., 2014. augusztus 6. [2015. szeptember 28-i dátummal az eredetiből archiválva]. (Hozzáférés: 2014. augusztus 7.)
- ↑ AnsibleFest. Ansible. Red Hat, Inc.. (Hozzáférés: 2018. október 4.)