如何在 Windows 上安裝和配置 Ansible?


Ansible 是一款流行的開源自動化工具,允許系統管理員自動化重複性任務並同時管理多個伺服器。它廣泛用於配置管理、應用程式部署和任務自動化。雖然 Ansible 主要設計用於基於 Linux 和 Unix 的系統,但它也可以安裝在 Windows 上。在本文中,我們將指導您完成在 Windows 上安裝和配置 Ansible 的過程。

需求

在開始之前,請確保您的 Windows 機器滿足以下要求:

  • Windows 作業系統(Windows 7、Windows 8、Windows 10 或 Windows Server 2012 或更高版本)

  • 至少 4GB RAM

  • PowerShell 3.0 或更高版本

  • Python 3.5 或更高版本

步驟 1:安裝 Python

第一步是在您的 Windows 機器上安裝 Python。您可以從官方網站(https://python.club.tw/downloads/windows/)下載最新版本的 Python。下載完成後,執行 Python 安裝程式並按照說明完成安裝。確保在安裝過程中選中將 Python 新增到 PATH 環境變數的選項。

步驟 2:安裝 pip

安裝 Python 後,您需要安裝 pip,這是一個 Python 的包管理器。以管理員身份開啟 PowerShell 視窗並執行以下命令:

python -m ensurepip --default-pip

此命令將安裝 pip 並將其新增到 PATH 環境變數。

步驟 3:安裝 Ansible

現在 Python 和 pip 已安裝,您可以使用 pip 安裝 Ansible。在同一個 PowerShell 視窗中,執行以下命令:

pip install ansible

此命令將下載並安裝 Ansible 及其依賴項。安裝完成後,您可以透過執行以下命令來驗證 Ansible 是否已安裝:

ansible --version

步驟 4:配置 Ansible

在開始使用 Ansible 之前,您需要透過建立清單檔案和設定 SSH 來配置它。清單檔案是 Ansible 可以管理的主機列表。要建立清單檔案,請開啟文字編輯器並建立一個名為“inventory”的新檔案。在此檔案中,列出您要管理的 Windows 機器 IP 地址或主機名,每行一個。例如:

[windows]
192.168.1.101
192.168.1.102

將清單檔案儲存到您選擇的任何位置。

接下來,您需要在要管理的 Windows 機器上設定 SSH。Ansible 使用 SSH 連線到遠端機器並執行命令。Windows 預設不帶 SSH,因此您需要安裝 SSH 伺服器。一個流行的選擇是適用於 Windows 的 OpenSSH,您可以從官方網站(https://github.com/PowerShell/Win32-OpenSSH/releases)下載它。安裝 OpenSSH 後,您需要將其配置為允許遠端訪問。這包括編輯 sshd_config 檔案,該檔案位於 OpenSSH 的安裝目錄(通常為 C:\Program Files\OpenSSH\sshd_config)。取消註釋以下行以允許遠端訪問:

#ListenAddress 0.0.0.0

儲存檔案並重新啟動 OpenSSH 服務。

步驟 5:測試 Ansible

現在 Ansible 已安裝並配置,您可以透過執行一個簡單的命令來測試它。開啟 PowerShell 視窗並執行以下命令:

ansible windows -i <path/to/inventory> -m win_ping

將“<path/to/inventory>”替換為您清單檔案的實際路徑。此命令將 ping 清單檔案中列出的 Windows 機器,如果一切設定正確,則會返回成功訊息。

以下是在 Windows 上使用 Ansible 的一些其他提示和最佳實踐:

  • 使用 WinRM - 雖然 SSH 是 Ansible 連線到遠端機器的預設協議,但它並不總是 Windows 的最佳選擇。Windows 遠端管理 (WinRM) 是一種更安全、更高效的協議,允許您連線到遠端 Windows 機器而無需 SSH。要在 Ansible 中使用 WinRM,您需要在您的 Windows 機器上配置它並設定相應的 Ansible 清單變數。

  • 安裝 PowerShell 模組 - Ansible 可以利用 PowerShell 模組來執行各種 Windows 特定任務,例如管理 Active Directory、配置 IIS 和管理 Windows 服務。要使用這些模組,您需要先在您的 Windows 機器上安裝它們。您可以使用 PowerShell 庫來執行此操作,PowerShell 庫是 PowerShell 模組的集中儲存庫。

  • 使用變數和模板 - Ansible 允許您使用變數和模板來使您的 playbook 更靈活和可重用。您可以在清單檔案或 playbook 中定義變數,並使用它們來控制任務的行為。您還可以使用模板根據變數的值動態生成配置檔案或指令碼。

  • 使用角色 - Ansible 角色是將 playbook 組織成可重用模組的一種方式。角色本質上是一組可以應用於不同主機或主機組的任務、檔案、模板和變數。透過使用角色,您可以避免重複程式碼並簡化 playbook 的維護。

  • 測試您的 playbook - 在生產環境中執行 playbook 之前,務必在受控環境中對其進行測試。Ansible 提供了多種測試工具,例如“檢查”模式,該模式允許您模擬任務的執行而無需實際更改任何內容。您還可以使用“--syntax-check”選項驗證 playbook 的語法,或者使用“debug”模組在任務執行期間列印除錯資訊。

  • 使用版本控制 - Ansible playbook 本質上是程式碼,與任何程式碼一樣,都應進行版本控制。透過使用 Git 等版本控制系統,您可以跟蹤 playbook 的更改,與其他團隊成員協作,並在必要時回滾更改。

  • 使用角色進行模組化 - Ansible 角色可以幫助您組織 playbook 並使其更具模組化。角色是任務、檔案、模板和變數的集合,可以在多個 playbook 中重用。透過使用角色,您可以避免重複程式碼並使 playbook 更易於維護。您可以使用“ansible-galaxy”命令建立角色,該命令將為您的角色生成目錄結構,並允許您輕鬆地與他人共享它。

  • 使用 WinRM 連線外掛 - WinRM 連線外掛是連線到 Windows 主機的比預設 SSH 連線外掛更高效、更安全的方式。它允許您使用 Kerberos 或 NTLM 進行身份驗證,並使用 SSL 加密所有流量。要使用 WinRM 連線外掛,您需要在 Ansible 控制節點上安裝“pywinrm”Python 模組。

  • 使用“when”語句進行條件任務 - “when”語句允許您根據變數的值或先前任務的結果有條件地執行任務。當您需要在不同的 Windows 版本上執行不同的任務或滿足某些條件時,這很有用。例如,您可以使用“when”語句僅在軟體包尚未安裝時才安裝它。

  • 使用“register”語句捕獲任務輸出 - “register”語句允許您捕獲任務的輸出並將其儲存在變數中,然後您可以在後續任務中使用它。當您需要執行多個依賴於先前任務輸出的任務時,這很有用。例如,您可以使用“register”語句捕獲 Windows 主機的 IP 地址,然後在後面的任務中使用它來配置防火牆規則。

  • 使用 Ansible Vault 儲存敏感資料 - Ansible Vault 是一項功能,允許您加密敏感資料,例如密碼、API 金鑰和證書。當您需要將這些資料儲存在 playbook 或清單檔案中時,這很有用。要使用 Ansible Vault,您需要建立一個包含敏感資料的加密檔案,然後使用“vault_”字首在 playbook 或清單檔案中引用此檔案。

透過遵循這些提示和最佳實踐,您可以使用 Ansible 有效地管理您的 Windows 基礎設施並自動化您的日常任務,作為系統管理員。Ansible 的靈活性和多功能性使其成為管理 Windows 伺服器的理想工具,並可以幫助您在組織中實現更高的效率和生產力。

結論

Ansible 提供了一套強大的功能,可以簡化您作為系統管理員的日常任務。例如,您可以使用 Ansible 管理使用者帳戶、安裝軟體包並在多臺 Windows 機器上同時配置系統設定。Ansible 還支援各種模組和外掛,可以進一步擴充套件其功能。

總之,Ansible 是一款多功能的自動化工具,可以安裝和配置在 Windows 上。使用 Ansible,您可以自動化重複性任務、管理多臺伺服器並簡化您作為系統管理員的日常工作流程。希望本文對您瞭解安裝和配置過程有所幫助。自動化愉快!

更新於: 2023年5月12日

22K+ 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.