
- Ansible 教程
- Ansible - 主頁
- Ansible - 簡介
- Ansible - 環境設定
- Ansible - YAML 基礎
- Ansible - Ad hoc 命令
- Ansible - 劇本(Playbooks)
- Ansible - 角色
- Ansible - 變數
- Ansible - 高階執行
- Ansible - 故障排除
- Ansible 有用資源
- Ansible - 快速指南
- Ansible - 有用資源
- Ansible - 討論
Ansible - 簡介
Ansible 是一款簡單的開源 IT 引擎,可自動執行應用程式部署、服務間編排、雲配置以及許多其他 IT 工具。
Ansible 易於部署,因為它不使用任何代理或自定義安全基礎設施。
Ansible 使用劇本(playbook)來描述自動化作業,而劇本使用非常簡單的語言,即 YAML(它是一種人類可讀的資料序列化語言,通常用於配置檔案,但也可以用於許多儲存資料的應用程式),這對於人類來說非常容易理解、閱讀和編寫。因此,優勢在於,即使是 IT 基礎設施支援人員也可以閱讀和理解劇本,並在需要時進行除錯(YAML - 它以人類可讀的形式存在)。
Ansible 旨在用於多層部署。Ansible 不會一次管理一個系統,而是透過描述所有系統之間的相互關係來建模 IT 基礎設施。Ansible 完全無代理,這意味著 Ansible 透過 ssh(預設情況下)連線您的節點。但是,如果您希望使用其他連線方法,例如 Kerberos,Ansible 也為您提供了此選項。
連線到節點後,Ansible 會推送稱為“Ansible 模組”的小程式。Ansible 在您的節點上執行這些模組,並在完成後將其刪除。Ansible 在簡單的文字檔案中管理您的清單(這些是主機檔案)。Ansible 使用主機檔案,您可以在其中對主機進行分組,並可以在劇本中控制特定組的操作。
主機檔案示例
這是主機檔案的內容:
#File name: hosts #Description: Inventory file for your application. Defines machine type abc node to deploy specific artifacts # Defines machine type def node to upload metadata. [abc-node] #server1 ansible_host = <target machine for DU deployment> ansible_user = <Ansible user> ansible_connection = ssh server1 ansible_host = <your host name> ansible_user = <your unix user> ansible_connection = ssh [def-node] #server2 ansible_host = <target machine for artifact upload> ansible_user = <Ansible user> ansible_connection = ssh server2 ansible_host = <host> ansible_user = <user> ansible_connection = ssh
什麼是配置管理
就 Ansible 而言,配置管理意味著它透過記錄和更新描述企業硬體和軟體的詳細資訊來維護產品效能的配置。
此類資訊通常包括已應用於已安裝軟體包的確切版本和更新,以及硬體裝置的位置和網路地址。例如,如果您想在企業中的所有機器上安裝新版本的 WebLogic/WebSphere 伺服器,手動更新每臺機器是不可行的。
您可以使用 Ansible 劇本和以最簡單的方式編寫的清單,一次性在所有機器上安裝 WebLogic/WebSphere。您只需在清單中列出節點的 IP 地址,並編寫一個劇本以安裝 WebLogic/WebSphere。從您的控制機器執行劇本,它將在所有節點上安裝。
Ansible 如何工作?
下圖顯示了 Ansible 的工作原理。
Ansible 的工作原理是連線到您的節點並向其推送稱為“Ansible 模組”的小程式。Ansible 然後執行這些模組(預設情況下透過 SSH),並在完成後將其刪除。您的模組庫可以駐留在任何機器上,並且不需要任何伺服器、守護程式或資料庫。

上圖中的管理節點是控制節點(管理節點),它控制劇本的整個執行過程。它是您執行安裝的節點。清單檔案提供了需要在其中執行 Ansible 模組的主機列表,管理節點進行 SSH 連線並在主機機器上執行小型模組並安裝產品/軟體。
Ansible 的優勢在於它在安裝模組後將其刪除,因此它有效地連線到主機,執行指令,如果成功安裝,則刪除複製到主機並執行的程式碼。