Ansible

什麼是 Ansible?

Ansible 是一款開源自動化工具,能根據純文字指示來設定與維護伺服器。它由 Red Hat 開發,並銷售有支援的版本。

與工程師談談 知識庫
資料中心內一排排亮著狀態燈的黑色伺服器機櫃

它是什麼

管理員撰寫 playbook,這是一份 YAML 檔案,列出每台伺服器應處於的狀態:安裝哪些套件、有哪些使用者、設定檔的內容為何、哪些服務正在執行。Ansible 讀取 playbook,並讓每台伺服器符合其內容。

它是無代理程式的。受管理的伺服器上不需要額外安裝任何東西;Ansible 透過 SSH 連線到每台伺服器,就像管理員登入 Linux 伺服器那樣,並在上面執行小型程式。這些程式大多以 Python 撰寫,因此伺服器上需要有 Python。

執行具冪等性。如果伺服器已符合 playbook,Ansible 就不會動它,並回報沒有變更,因此可以安全地重複執行同一份 playbook,以檢查設定偏移或加以修正。

主要組成

  • Inventory:Ansible 所管理的伺服器清單,依角色或位置分組,例如網站伺服器與資料庫伺服器。
  • Playbook:描述要對哪個群組執行什麼操作的 YAML 檔案。
  • Role:可重複使用的任務組合,例如標準防火牆設定,可供多份 playbook 共用。

企業能從中獲得什麼

  • 一致的伺服器:依同一份 playbook 建置的每台伺服器,最終的設定都相同。
  • 經過審查的變更:playbook 是文字檔,因此可以存放在 Git 中,每項變更都有紀錄,並能在執行前審查。
  • 更快重建:故障的伺服器可以依據 playbook 更換並重新設定,而不是憑記憶。

Ansible 與 Terraform

兩者經常搭配使用。Terraform 負責建立基礎架構,例如虛擬機器、網路與雲端帳戶。Ansible 則設定這些機器上所執行的內容。兩者的功能略有重疊,但通常是這樣分工。

KawaConnect 如何運用設定自動化

我們管理 Ubuntu、Debian 與 RHEL 系列伺服器,並將基礎架構即程式碼存放在版本控制中。Kubernetes 叢集採用 GitOps 方式維運,也就是叢集的設定存放在 Git 儲存庫中。把設定放在檔案裡,而不是某個人的腦袋裡,代表建置可以重複進行,且每項變更都有紀錄。

相關服務

Linux 伺服器支援

管理 Ubuntu、Debian 與 RHEL 系列伺服器。

Kubernetes 顧問服務

設定保存在 Git 中的叢集。

Proxmox 顧問服務

許多伺服器所運行的虛擬機器。

瞭解更多

  • Ansible 文件撰寫 inventory、playbook 與 role 的官方指南與模組參考。
  • Ansible 網站Red Hat 的 Ansible 網站,介紹開源專案與有支援的 Ansible Automation Platform。
  • 維基百科上的 Ansible中立地概述 Ansible 如何運作,以及它如何成為 Red Hat 的一部分。

伺服器都是手動設定的嗎?

請告訴我們您的伺服器目前是如何建置與變更的。我們會說明把設定保存在檔案中需要做哪些事。

開始洽談