本分步指南將引導您完成在 Linux 上安裝和配置 Ansible 的步驟。我們還將向您展示如何在 Linux 上建立 Ansible homelab 以學習 ansible 的基礎知識。
內容
1.首先
Ansible 是一種 IT 自動化工具,可以在軟件環境中自動執行“N”個任務。 詳細了解 Ansible 是什麼以及它的作用 介紹 Ansible 指導。
Ansible 專為大規模配置管理而設計。如果您的目標是能夠快速學習和重建您的環境,那麼您就在正確的軌道上!
Ansible 是 無代理 建築學。含義 – 託管節點上沒有運行受信任的代理/進程。
正如 Ansile 介紹文章中已經提到的,ansible 有兩種類型的節點。
- 主控節點 – 安裝了 ansible 的服務器/工作站。從此節點運行所有 ansible playbook 和 ansible 命令。
- 被管節點 – ansible 管理的主機列表。
所有受管節點不必運行相同的分發版本或類型。 各種風格的 Linux 都可以用作受管節點。
控制器和被管節點之間的通信包括 基於 ssh 密鑰的身份驗證.
本動手指南將向您展示如何在您的 Linux 發行版上設置 Ansible Labs。
筆記:
- Windows 不能用作控制器節點。
- 您可以配置多個 Controller 節點。
在開始使用 Ansible 之前,讓我向您展示 Ansible 家庭實驗室設置的圖表。
2. 三節點 Ansible Lab 架構圖
下圖顯示了實驗室的外觀。
出於演示目的,我在 Ubuntu 20.04 上設置了一個控制器節點,在 CentOS 8 和 Ubuntu 21.04 上設置了兩個託管節點。
3. 在 Linux 上安裝和配置 Ansible
首先,我們將向您展示如何在 Linux 上設置 Ansible 主節點。
3.1. 在 Linux 上安裝 Ansible
Ansible 是用 Python 編寫的,因此您需要在 Linux 機器上安裝 Python 才能使 ansible 工作。
幸運的是,所有 Linux 發行版都預裝了 Python。 Ansible 支持 Python 2.7 和 Python 3.5 及更高版本。
要檢查機器上安裝的 Python 版本,可以使用以下命令:您的輸出可能會有所不同,具體取決於您的發行版中 python 的配置方式。
$ which python python2 python3 /usr/bin/python2 /usr/bin/python3
檢查您的 Python 版本。
$ python2 --version Python 2.7.18rc1
$ python3 --version Python 3.8.5
$ compgen -c python | grep -P '^python..d' python3.8 python3.8-config python2.7
在 Linux 上安裝 Ansible 有兩種方法。
- 使用操作系統包管理器
- 利用 畫中畫 – Python 包管理器
3.1.1. 使用系統包管理器安裝 Ansible
首先,了解如何使用發行版的包管理器安裝 ansible。 運行以下命令,具體取決於您的 Linux 發行版:
在 Arch Linux、EndeavorOS 和 Manjaro Linux 上安裝 Ansible。
$ sudo pacman -S ansible
德維安:
編輯 /etc/apt/sources.list
文檔:
$ sudo nano /etc/apt/sources.list
添加以下行:
deb https://ppa.launchpad.net/ansible/ansible/ubuntu trusty main
然後運行以下命令:
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367 $ sudo apt update $ sudo apt install ansible
軟呢帽:
$ sudo dnf install ansible
CentOS、RHEL、AlmaLinux、Rocky Linux:
$ sudo dnf install epel-release
$ sudo dnf install ansible
Ubuntu 及其衍生產品:
$ sudo apt update $ sudo apt install software-properties-common $ sudo add-apt-repository --yes --update ppa:ansible/ansible $ sudo apt install ansible
您的發行版可能已經發布了舊版本的 Ansible。如果要在系統上安裝更新版本的 Ansible,可以使用: 觀點,python 包管理器。
3.1.2. 使用 Pip 安裝 Ansible
首先,通過運行以下命令確保已安裝 pip:
$ which pip pip3 /usr/bin/pip /usr/bin/pip3
$ pip --version pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
$ pip3 --version pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
如果未安裝 pip,請運行以下命令進行安裝:
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python3 get-pip.py --user
安裝 pip 後,運行以下命令安裝 ansible。
$ sudo python3 -m pip install ansible
這將安裝最新的 Ansible 版本。
您還可以安裝特定的 Ansible 版本,例如 2.9,如下所示:
$ sudo python3 -m pip install 'ansible==2.9'
安裝 Ansible 後,通過運行以下命令檢查 ansible 版本:
$ ansible --version
此命令提供有關 hosts 文件、配置文件和 ansible 二進製文件的位置以及安裝的 Ansible 版本的信息。
示例輸出:
ansible 2.9.0 config file = /etc/ansible/ansible.cfg configured module search path = ['/home/karthick/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible executable location = /usr/local/bin/ansible python version = 3.8.5 (default, Jan 27 2021, 15:41:15) [GCC 9.3.0]
3.2. 配置 Ansible
如前所述,Ansible 使用 ssh
身份驗證協議。
創建一個 ssh 密鑰對並將其分發到所有受管節點。所以每次發送 ansible 命令時,它都會使用這些密鑰來驗證被管節點。
3.2.1. 為被管節點生成 SSH 密鑰對
創建一個名為的新用戶 可以理解為 在控制器和受管節點上。
$ sudo useradd ansible ##create user $ sudo passwd ansible ##set password for ansible user.
以 ansible 用戶身份登錄/切換,並使用以下命令創建 ssh 密鑰對:
$ su - ansible
$ ssh-keygen -t rsa
此命令將生成一個 SSH 密鑰對。
立即分發 公鑰 到所有受管節點。
你可以使用它 ssh-copy-id
運行命令將公鑰複製到目標節點。
使用 ssh-copy-id 命令將公鑰複製到目標節點:
$ ssh-copy-id -i ~/.ssh/id_rsa [email protected]
如果您有多個節點, for loop
將 ssh 密鑰複製到所有目標節點。
在本指南中,我們有兩個託管節點並為它們命名。 centos1 (centos8) 和 Ubuntu1 (Ubuntu 20.04)。我使用以下代碼將密鑰複製到兩個節點:
$ for node in centos1 ubuntu1; do ssh-copy-id -i /home/ansible/.ssh/id_rsa [email protected]${node} done
通過登錄受管節點來驗證基於密鑰的身份驗證是否正常工作。
$ ssh [email protected]
Ansible 設置現已完成。接下來,我們需要創建一個清單文件並對託管主機運行一些 ansible 命令。
3.2.2. 測試你的 Ansible 配置
Ansible 有兩個重要的文件要提交 為了這 還 劇本 命令。
Ansible.cfg
– ansible 配置文件。Hosts
– 提供主機詳細信息的清單文件。
配置和清單文件將在另一篇文章中詳細介紹。運行第一個 ansible 命令時,只需將受管節點的主機名添加到清單文件中。
Ansible 配置文件位於此處: /etc/ansible/ansible.cfg
文檔。你也可以運行 ansible version
命令:
$ ansible --version
ansible 2.9.0
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/karthick/.ansible/plugins/modules',
'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible
executable location = /usr/local/bin/ansible
python version = 3.8.5 (default, Jan 27 2021, 15:41:15) [GCC 9.3.0]
打開 ansible.cfg
打開文件並找到參數列表。 Ansible 在運行時引用此參數來獲取清單文件的路徑。
$ sudo grep -iw "^#Inventory" /etc/ansible/ansible.cfg #inventory = /etc/ansible/hosts
庫存默認 /etc/ansible/hosts
文檔。打開 hosts
打開文件並添加受管節點的主機名/IP 地址。
在 hosts 文件中指定 dns 名稱,因為存在 DNS 到 IP 的映射。 您還可以指定 IP 地址。

一切都設置為使用 ansible 運行任務。
它類似於 "Hello world"
在程序編程中,ansible 有 ping
使用 module 作為第一個命令檢查控制器和被管節點之間的連接。
這個 ping
該模塊嘗試訪問受管節點,檢查 Python 解釋器是否可用,並響應: pong
.
$ ansible all -m ping
您還可以使用顯式指定主機文件 -i
以下是跡象:
$ ansible all -m ping -i flag <path-to-host-file>

現在你可以開始使用你想要的模塊了。
如果要添加更多控制器節點,只需將 SSH 密鑰從控制器節點複製到新節點,然後將 IP/DNS 條目添加到主機文件。 Ansible 可以開始獲取新添加的託管節點。就這麼容易!
結論是
本指南向您展示瞭如何在 Linux 上安裝和配置 Ansible。我們還向您展示瞭如何手動設置 3 節點 Ansible 家庭實驗室。
還有其他自動化解決方案,例如使用設置 ansible 實驗室 流浪漢 還 名冊這些主題將在以後的文章中介紹。
Ansible 是一個龐大的話題。 我們只介紹了 Ansible 的基礎知識。查看 Ansible 官方文檔 了解有關使用 Ansible 的更多信息。
AnsibleAnsibleLabSetupAutomationConfiguration Management SystemConfigure AnsibleInstallAnsibleITAutomationLinuxLinux ManagementOpen Source PythonRedhat