
它是什麼
管理員撰寫 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 儲存庫中。把設定放在檔案裡,而不是某個人的腦袋裡,代表建置可以重複進行,且每項變更都有紀錄。
相關服務
瞭解更多
- Ansible 文件撰寫 inventory、playbook 與 role 的官方指南與模組參考。
- Ansible 網站Red Hat 的 Ansible 網站,介紹開源專案與有支援的 Ansible Automation Platform。
- 維基百科上的 Ansible中立地概述 Ansible 如何運作,以及它如何成為 Red Hat 的一部分。