在下面的教程中,我們將了解 Ansible 及其優點,以及如何在 Python 中使用 Ansible。
Ansible 簡介
Ansible 是一個開源平台或自動化工具,用於執行信息技術任務,如部署應用、管理配置、協調服務內和資源調配。自動化是久而久之的關鍵所在,信息技術的環境非常複雜,如果開發人員和系統管理員必須手動執行每一項功能,他們往往需要過快地擴展,以便協同工作。自動化有助於簡化複雜的任務,並使開發人員的工作更易於管理。它還允許開發人員將注意力集中在包含組織價值的其他活動上。換句話說,自動化通過釋放時間來提高效率。如上所述,Ansible 是自動化時代迅速崛起的工具之一。
什麼是 Ansible?
- Ansible 是一種基於推送的基礎設施即代碼(IaC) ,它提供了一種用戶友好的特定於領域的語言,因此我們可以根據需要以聲明的方式定義架構。
- 術語“基於推送”表示 Ansible 利用 SSH 在執行 Ansible 的機器和應用配置的機器之間進行通信。
- 我們喜歡配置的使用 Ansible 的機器被稱為受管節點或 Ansible 主機。就 Ansible 而言,主機列表被稱為清單。
- 讀取定義文件並執行 Ansible 以將配置推送到主機的機器稱為控制節點。
- Ansible 是用 Python 編程語言編寫的,學習曲線非常小。設置 Ansible 的過程非常簡單,不依賴任何額外的應用、服務器或客戶端守護程序。
- Ansible 基於包含系統的相互關係和體系結構的原則。像其他用於管理配置的工具(如木偶、廚師或鹽)一樣,它與兩種類型的服務器一起工作:控制機器和節點。
- Ansible 使用稱為 Ansible 模塊的小程序來編排節點。這些模塊是通過 SSH 執行的所選系統狀態的資源模型。為此,我們不需要任何代理和額外的定製安全基礎設施。
- 模塊庫可以存在於任何機器中。這些模塊在標準輸出上使用 JSON 協議執行任務,並用任何編程語言(包括 Python)編寫方便的代碼。
- 該系統利用 Ansible 劇本格式的 YAML 來描述自動化工作。這樣,它對機器和人類都很友好。當節點不是由 Ansible 管理時,它不會消耗資源,因為程序和守護進程都沒有在後台運行。
Ansible 的一些好處
作為一個強大的自動化引擎,Ansible 幫助開發人員更高效地部署軟件。我們可以避免代理、自定義代碼或自定義腳本,主要關注內容的安全性、易用性、審查和重寫。與用於軟件自動化的類似平台相比,Ansible 有許多優勢。下面描述了其中的一些優點:
- 簡單性: Ansible 提供了簡單性,因為開發人員不需要為應用的部署和更新編寫腳本或定製代碼。它允許以接近簡單英語的語言實現自動化。開發人員、系統管理員和信息技術經理很容易閱讀、管理和加快他們的項目和程序。
- 完整性: Ansible 還提供了完整性,因為它與不同的複雜工具相結合,用於在單個系統中管理配置、部署應用、編排工作流,甚至雲資源調配。模塊有助於自動化幾乎所有現成的東西,並且不需要額外的應用。
- 安全性: Ansible 利用 SSH,因此它不會將易受攻擊的代理部署到節點,也不需要根級或額外端口上的守護程序。ans sibs 提供了一個無代理環境,有助於提高安全性,並且可以作為非根用戶使用。可擴展功能內置操作系統身份驗證,支持 LDAP、SSSD 和 Kerberos。
理解 Python API 的潛在用途
我們可以使用 Ansible 的 API(API)使用 Python 調用 Ansible 代碼。Ansible 發布了其 API 的 2.0 版本,允許與不同編程語言更好地集成。值得注意的是,Ansible 已經擴展了它的功能,以便在 Python 的幫助下支持開發;但是,其網站上也提到,也可以根據自己的判斷停止支持 API 框架(創建甚至修復當前版本 API 中的一個 bug)。
從 API 的角度來看,開發人員可以使用不同的方法來利用 Ansible。我們可以利用 Python 編程語言的 Ansible API 來控制節點。我們可以在 Python 中擴展 Ansible 來響應不同的事件,編寫插件和來自外部數據源的插件清單數據。
注意:這個 API 是為 Ansible 的內部使用而設想的。Ansible 可能會在任何時候對該 API 進行更改,這可能會破壞與該 API 舊版本的向後兼容性。因此,Ansible 不支持任何外部使用的 Python API。如果我們只想利用 Python API 來執行模塊或劇本,首先,我們會考慮一個可移植的運行器。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/288879.html