本分步指南提供了在 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 不能用作控制器節點。
- 您可以配置多個控制器節點。
在我們開始使用 Ansible 之前,這裡有一張 Ansible 的 homelab 設置圖。
2.3 node 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、EndeavourOS、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
此命令提供有關主機文件、配置文件、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 地址。
由於存在 DNS 到 IP 的映射,因此請在 hosts 文件中指定 DNS 名稱。 您還可以指定 IP 地址。

一切都設置為在 ansible 中執行任務!
它類似於 "Hello world"
在程序編程中,ansible也有做的傳統 ping
模塊作為檢查控制器和被管節點之間連接的第一個命令。
這個 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 AnsibleInstallAnsibleITAutomationLinuxLinuxManagement開源PythonRedhat