介紹
Ansible 是一種 IT 自動化工具,旨在簡化遠程服務器的管理。 運行 Ansible 需要 Python(2.7 或 3.5 或更高版本)。 Ansible 從中央控制節點運行,可以管理通過 SSH 訪問的任何服務器。 Ansible 管理的遠程服務器稱為受管節點。
默認情況下,Ansible 使用 OpenSSH 與託管節點通信。 SSH 不是 Ansible 支持的唯一通信機制。您可以在本地控制服務器、docker 容器或 Windows 服務器上運行任務。控制節點必須運行 Linux。
什麼是 IT 自動化?
如今,系統管理員和 DevOps 工程師必須管理雲中和跨多個站點的複雜 IT 基礎架構。現代 Web 應用程序通常由 API 服務、前端服務和數據庫服務組成。手動管理這樣一個複雜的系統既費時又容易出錯。
IT 自動化使用軟件來配置 IT 基礎設施、部署應用程序和管理服務配置更改。 您用於擔任此角色的軟件應提供一種可靠且可重複的方式來管理您的 IT 任務。 Ansible 的 IT 自動化方法圍繞劇本展開。 Ansible 劇本可以被認為是描述設置 IT 基礎架構、部署應用程序和配置其服務所需的步驟的秘訣。
Ansible 的優勢
Ansible 非常容易學習,讓您能夠比其他工具更快地啟動和運行自動化。 Ansible 是無代理的,因此無需在託管節點上安裝和維護 Ansible 客戶端。這極大地簡化了 Ansible 更新的管理。
Ansible 的缺點
當然,Ansible 並不是一個完美的工具。 如果 SSH 連接在 playbook 運行時過早斷開,則可以使節點處於部分配置狀態。 Ansible 的速度也很慢,可能需要額外的性能調整才能滿足您的要求。
飛行前檢查
在開始之前,您需要對運行 CentOS 7 的一對服務器進行 root 訪問。本文使用兩台 Liquid WebSelf-ManagedPrivate Cloud 服務器。我命名為 Control 的第一台服務器將是控制服務器。指定為節點的第二個服務器將是第一個 Ansible 託管節點。假設您對兩台 CentOS 7 服務器都有 SSH 訪問權限,您就可以開始了。
安裝 ansible
第 1 步:更新控制節點
每當您安裝新軟件時,最好確保您現有的操作系統軟件是最新的。讓我們從那個任務開始。
yum update
第 2 步:安裝 EPEL 存儲庫
安裝 Ansible 非常簡單。首先,我們需要安裝 CentOS 7 EPEL 存儲庫。
yum install epel-release
第 3 步:安裝 Ansible
接下來,從 EPEL 存儲庫安裝 Ansible 包。
yum install ansible
步驟 4a:創建 Ansible 用戶
根據安全最佳實踐的建議,我們建議您永遠不要以 root 身份登錄 Linux 服務器。 在控制和託管節點上創建一個非 root 用戶來運行 Ansible playbook。此用戶定義 Ansible 用於登錄受管節點的管理員。我在這里為用戶使用了“admin”,但您可以將其替換為任何用戶名。要遵循此示例,您必須在控制節點和受管節點上使用相同的用戶名。登錄控制節點,添加用戶並設置密碼。
useradd admin
passwd admin
登錄被管節點,添加admin用戶,設置密碼。
useradd admin
passwd admin
步驟 4b:為無密碼超級用戶訪問配置控制節點用戶
在託管節點上,您需要確保 Ansible 用戶無需密碼即可使用 sudo 命令。通過運行以下命令打開 sudoers 文件進行編輯:
visudo
輸入 ‘i’ 進入輸入模式並將以下內容添加到文件末尾:類型'[ESC]:wq’ 保存更改。
admin ALL=(ALL) NOPASSWD: ALL
第 5 步:為 SSH 訪問配置管理員用戶
您必須確保管理員用戶無需密碼即可通過 SSH 訪問受管節點。為此,請設置一個 SSH 密鑰對。以admin用戶登錄控制節點,執行如下命令生成SSH密鑰對。注意:在出現提示時按 Enter 接受默認值。
ssh-keygen
現在您可以使用以下命令將公鑰複製到託管節點:
ssh-copy-id node.kb.CodePre.com
第 6 步:創建 Ansible 清單
Ansible 需要一個清單列表,以便它可以識別託管節點。要將受管節點添加到清單中,您必須以管理員身份登錄到控制節點的管理員用戶。然後添加一個新的清單文件。確保您以管理員用戶身份作為控制節點登錄。
vim /home/admin/inventory
輸入“i”進入插入模式並將受管節點的主機名添加到清單文件中。
node.kb.CodePre.com
下一個,”[ESC]+:wq’ 保存文件。
第 7 步:創建 Ansible 劇本
為了測試我們的配置,我們將創建一個簡單的劇本來在託管節點上安裝 Nginx。首先,創建一個新文件並打開它。 就 Ansible 而言,文件名並不重要。當然,您應該使用描述性文件名。確保您以管理員用戶身份作為控制節點登錄。
vim /home/admin/install-nginx.yml
Ansible playbook 是用一種稱為 YAML 的語言編寫的。 YAML 被設計成人類可讀的。通過查看下面的文本,您應該能夠知道預期的結果是什麼。稍後我們將更詳細地介紹語法,但現在,輸入“i”進入插入模式並將以下文本添加到您的劇本中:然後輸入'[ESC]+:wq’ 保存並退出。

Ansible 劇本運行“劇本”。 Play 是要在節點上運行的任務列表。在上面的示例中,我們使用“hosts”關鍵字來指定一個僅包含一個節點的列表。但是,您可以使用逗號分隔值指定主機列表。 使用 Ansible 安裝軟件需要 root 訪問權限才能使用 yum。 我們在 play 中使用關鍵字 ‘become’ 來表示 Ansible 需要 root 用戶來執行任務。
“task”關鍵字啟動要完成的任務列表。 使用“名稱”關鍵字為每個任務指定一個唯一的名稱。然後使用 Ansible 提供的 yum 模塊安裝第一個 epel 存儲庫,然後使用第二個入口安裝 nginx。
第 8 步:運行劇本
運行劇本相當簡單。 使用 ‘ansible-playbook’ 命令後跟 ‘-i’ 選項來指定清單文件,後跟 playbook 的路徑。確保您以管理員用戶身份作為控制節點登錄。
ansible-playbook -i /home/admin/inventory /home/admin/install-nginx.yml
結論是
到目前為止,我們只是觸及了 Ansible 的表面。組名稱可用於對清單中的服務器進行分組。此分組允許 playbook 僅在 Web 服務器上或僅在數據庫服務器上運行。您還可以運行臨時命令。臨時命令是只需要執行一次的任務。例如,如果您需要重新啟動所有 Web 服務器。總體而言,Ansible 是一個很棒的工具,您可以使用它通過跨單個或多個遠程服務器自動執行任務來節省時間、金錢和精力。
立即訂閱我們的知識庫,以獲取涵蓋這些主題及更多內容的未來文章和更新。立即開始將 Ansible Cloud 服務器與 Liquid Web 結合使用。請致電 800.580.4985 與我們聯繫。 [email protected] 計費或開始時 和…聊天 我們是託管方面最有幫助的人之一,並希望幫助您入門。