如何在 CentOS 8 和 RHEL 8 系統上安裝和使用 Ansible

Ansible 是給 Linux 系統管理員使用的出色自動化工具。它是一種開源配置工具,能讓系統管理員能夠從一箇中心節點(即 Ansible 服務器)管理數百臺服務器。將 Ansible 與 Puppet、Chef 和 Salt 等相似工具進行比較時,它是首選的配置工具,由於它不須要任何代理,而且能夠工做在 SSH 和 python 上。

在本教程中,咱們將學習如何在 CentOS 8 和 RHEL 8 系統上安裝和使用 Ansble。python

Ansible 實驗環境信息:linux

  • 最小化安裝的 CentOS 8 / RHEL 8 服務器(192.168.1.10),且有互聯網鏈接shell

  • 兩個 Ansible 節點 - Ubuntu 18.04 LTS (192.168.1.20) 和 CentOS 7 (192.168.1.30)centos

CentOS 8 上的 Ansible 安裝步驟服務器

Ansible 包不在 CentOS 8 默認的軟件包倉庫中。所以,咱們須要執行如下命令啓用 EPEL 倉庫:ssh

[root@linuxtechi ~]$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y

啓用 epel 倉庫後,執行如下 dnf 命令安裝 Ansible:ide

[root@linuxtechi ~]$ sudo dnf install ansible

上面命令的輸出:工具

如何在 CentOS 8 和 RHEL 8 系統上安裝和使用 Ansible如何在 CentOS 8 和 RHEL 8 系統上安裝和使用 Ansible

dnf-install-ansible-centos8學習

成功安裝 Ansible 後,運行如下命令驗證它的版本:spa

[root@linuxtechi ~]$ sudo ansible --version

如何在 CentOS 8 和 RHEL 8 系統上安裝和使用 Ansible如何在 CentOS 8 和 RHEL 8 系統上安裝和使用 Ansible

Ansible-version-CentOS8

上面的輸出確認在 CentOS 8 上安裝完成。

讓咱們看下 RHEL 8 系統。

RHEL 8 上的 Ansible 安裝步驟

若是你有有效的 RHEL 8 訂閱,請使用如下訂閱管理器命令啓用 Ansble 倉庫:

[root@linuxtechi ~]$ sudo subscription-manager repos --enable ansible-2.8-for-rhel-8-x86_64-rpms

啓用倉庫後,執行如下 dnf 命令安裝 Ansible:

[root@linuxtechi ~]$ sudo dnf install ansible -y

安裝 Ansible 及其依賴包後,執行如下命令來驗證它的版本:

[root@linuxtechi ~]$ sudo ansible --version

在 CentOS 8 / RHEL 8 上經過 pip3 安裝 Ansible 的可選方法

若是你但願使用 pip(Python 的包管理器)安裝 Ansible,請首先使用如下命令安裝 pyhton3 和 python3-pip 包:

[root@linuxtechi ~]$ sudo dnf install python3 python3-pip -y

安裝 python3 後,運行如下命令來驗證它的版本:

[root@linuxtechi ~]$ python3 -V
Python 3.6.8
[root@linuxtechi ~]$

用下面的 pip3 命令安裝 Ansible:

[root@linuxtechi ~]$ pip3 install ansible --user

輸出:

如何在 CentOS 8 和 RHEL 8 系統上安裝和使用 Ansible如何在 CentOS 8 和 RHEL 8 系統上安裝和使用 Ansible

Ansible-Install-pip3-centos8

上面的輸出確認 Ansible 已成功使用 pip3 安裝。讓咱們看下如何使用 Ansible。

如何使用 Ansible 自動化工具?

當咱們使用 yum 或 dnf 命令安裝 Ansible 時,它的配置文件、清單文件和角色目錄會自動在 /etc/ansible 文件夾下建立。

讓咱們添加一個名稱爲 labservers 的組,並在 /etc/ansible/hosts 文件中給該組添加上述的 Ubuntu 18.04 和 CentOS 7 系統的 IP 地址:

[root@linuxtechi ~]$ sudo vi /etc/ansible/hosts
…
[labservers]
192.168.1.20
192.168.1.30
…

保存並退出文件。

更新清單文件(/etc/ansible/hosts)後,將用戶的 ssh 公鑰放到屬於 labservers 組的遠程系統。

讓咱們首先使用 ssh-keygen 命令生成本地用戶的公鑰和私鑰:

[root@linuxtechi ~]$ ssh-keygen

如今使用如下命令在 Ansible 服務器及其客戶端之間交換公鑰:

[root@linuxtechi ~]$ ssh-copy-id root@linuxtechi
[root@linuxtechi ~]$ ssh-copy-id root@linuxtechi

如今,讓咱們嘗試幾個 Ansible 命令,首先使用 ping 模塊驗證 Ansible 服務器與客戶端的鏈接:

[root@linuxtechi ~]$ ansible -m ping "labservers"

注意: 若是咱們沒有在上面的命令中指定清單文件,那麼它將引用默認主機文件(即 /etc/ansible/hosts)。

輸出:

如何在 CentOS 8 和 RHEL 8 系統上安裝和使用 Ansible如何在 CentOS 8 和 RHEL 8 系統上安裝和使用 Ansible

ansible-ping-module-centos8

讓咱們使用 Ansible shell 命令檢查每一個客戶端的內核版本:

[root@linuxtechi ~]$ ansible -m command -a "uname -r" "labservers"
192.168.1.30 | CHANGED | rc=0 >>
4.15.0-20-generic
192.168.1.20 | CHANGED | rc=0 >>
3.10.0-327.el7.x86_64
[root@linuxtechi ~]$

使用如下命令列出清單文件中的全部主機:

[root@linuxtechi ~]$ ansible all -i /etc/ansible/hosts --list-hosts
hosts (4):
192.168.100.1
192.168.100.10
192.168.1.20
192.168.1.30
[root@linuxtechi ~]$

使用如下 Ansible 命令僅列出 labservers 組中的主機:

root@linuxtechi ~]$ ansible labservers -i /etc/ansible/hosts --list-hosts
hosts (2):
192.168.1.20
192.168.1.30
[root@linuxtechi ~]$

本文就是這些了,咱們成功演示瞭如何在 CentOS 8 和 RHEL 8 系統中安裝和使用 Ansible。請分享你的反饋和意見。

相關文章
相關標籤/搜索