如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。


原文地址:如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

在本文中,我将向您展示如何在CentOS 8上安装和使用Ansible。并且配置了4个虚拟机来展示如何使用Ansible管理多个服务器。

Ansible是用于从中央计算机管理和管理多个服务器的服务器。它是服务器管理工​​具。Ansible不需要在服务器端进行任何配置,例如Chef或Puppet。您只需在计算机上安装Ansible并通过SSH管理或管理服务器。它非常简单易用。

安装Ansible:

CentOS 8的EPEL存储库中提供了Ansible。因此,您可以轻松地在CentOS 8上安装Ansible。

首先,使用以下命令更新DNF软件包存储库缓存:

sudo dnf makecache

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

现在,要启用EPEL存储库,请使用以下命令安装epel-release软件包:

sudo dnf install epel-release

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

要确认安装,请按Y,然后按<Enter>键

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

应该安装epel-release软件包并启用EPEL存储库。

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

现在,使用以下命令再次更新DNF软件包存储库缓存:

sudo dnf makecache

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

现在,使用以下命令安装Ansible:

sudo dnf install ansible

要确认安装,请按Y,然后按<Enter>键

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

DNF应该开始从Internet下载所有必需的软件包。

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

可能会要求您接受EPEL存储库的GPG密钥。按Y,然后按<Enter>键接受它。

DNF应该开始安装所有下载的软件包。

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

安装完成:

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

现在,运行以下命令检查版本:

ansible --version

如您所见,我正在运行Ansible 2.9.3,并且运行正常。

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

为Ansible配置服务器:

要使用Ansible管理服务器,必须在服务器上安装并运行SSH服务器。服务器SSH端口必须打开,并且应该可以从Ansible主机访问服务器。这是使用Ansible的唯一要求。

在本文中,我将使用4个虚拟机(VM)(2个Ubuntu Server 18.04 LTS VM和2个Debian 10 VM)来演示Ansible服务器管理和管理的基础。

4个虚拟机是:

linuxhint-f1a46 – 192.168.20.161
linuxhint-8ee7a – 192.168.20.166
linuxhint-s40 – 192.168.20.171
linuxhint-s41– 192.168.20.170

您可以使用服务器的IP地址通过Ansible进行管理。您也可以使用服务器的DNS名称。

在本文中,我将使用/etc/hosts文件对VM的IP地址进行DNS解析。

如果要继续,请使用vi文本编辑器打开/etc/hosts文件,如下所示:

sudo vi /etc/hosts

现在,添加下面的屏幕快照中标记的行并保存文件。

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

现在,如下所示在CentOS 8 Ansible主机上生成一个SSH密钥:

 ssh-keygen

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

<Enter>键

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

<Enter>键

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

<Enter>键

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

应该生成SSH密钥。

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

现在,您必须将SSH密钥上传到要使用Ansible管理的所有服务器。

要将SSH密钥复制到vm1.linuxhint.local服务器,请运行以下命令:

 ssh-copy-id shovon @ vm1.linuxhint.local

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

现在,输入yes,然后按<Enter>键

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

现在,输入vm1.linuxhint.local VM的登录密码,然后按<Enter>键

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

SSH密钥应被复制。

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

vm2.linuxhint.localvm3.linuxhint.localvm4.linuxhint.local服务器执行相同的操作

ssh-copy-id shovon@vm2.linuxhint.local

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

ssh-copy-id shovon@vm3.linuxhint.local

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

ssh-copy-id shovon @ vm4.linuxhint.local

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

将SSH密钥复制到虚拟机后,您应该能够在没有任何密码的情况下通过SSH密钥登录到SSH,如下面的屏幕快照所示。

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

现在,在每台服务器上运行以下命令,以允许sudo访问而无需密码登录用户。这是Ansible运行任何root命令所必需的。

echo "$(whoami) ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/$(whoami)

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

现在可以从Ansible配置或管理所有服务器。

使用Ansible:

Ansible将其管理的所有主机的列表保存在称为清单文件的文件中。Ansible库存文件只是一个简单的纯文本文件。

首先创建一个新的Ansible项目目录〜/ansible/,然后创建清单文件。

mkdir ~/ansible

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

现在,导航至〜/ansible目录。

cd ~/ansible

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

现在,按如下所示创建Ansible库存文件。您可以将此文件命名为任何文件。我称它为hosts

vi hosts

现在,您可以如下添加服务器。在这里,ansible_user选项用于定义Ansible将用来在这些服务器上运行命令的用户。通常是服务器的登录用户。

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

您也可以在清单文件中混合服务器的IP地址和DNS名称。

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

您还可以对服务器进行分组。在这里,我有2个组,即webserverdbserver

webserver组中,我添加了vm1vm2服务器。在dbserver组中,我添加了vm3vm4服务器。

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

创建清单文件后,可以使用Ansible的-i选项使用清单文件。

您可以按以下方式列出清单文件中的所有主机:

ansible -i hosts --list-hosts all

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

您可以检查所有主机是否都处于活动状态,如下所示:

ansible -i hosts --list-hosts -m ping all

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

如您所见,所有主机均处于活动状态。

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

您也可以对单个组中的所有主机执行ping操作。

ansible -i hosts --list-hosts -m ping webserver

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

您可以使用Ansible运行shell命令,如下所示:

 ansible -i hosts -m shell -a 'command' <all|groupName>

您还可以如下运行shell命令(具有sudo特权)。

ansible -i hosts -b --become-method=sudo -m shell -a 'command'<all
|groupName>

例如,您可以使用Ansible更新Webserver组中主机上的APT软件包存储库缓存,如下所示:

ansible -i hosts -b --become-method=sudo -m shell -a 'apt update' webserver

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

如您所见,APT软件包存储库缓存已针对Web服务器组中的所有主机进行了更新。

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

让我们尝试在webserver组的所有主机上安装Apache 2 Web服务器。

ansible -i hosts -b --become-method=sudo -m shell -a
'apt install -y apache2' webserver

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

Apache Web服务器应该已经安装在Web服务器组的所有主机中。

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

如您所见,Apache Web服务器正在webserver组中的所有主机上工作。

 ansible -i hosts -b --become-method=sudo -m shell -a 'curl -sI
http://localhost' webserver

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

同样,您可以在dbserver组中的所有主机上运行任何命令。

ansible -i hosts -m shell -a 'lsb_release -a' dbserver

如何在CentOS 8.2上安装Ansible,以及Ansible使用的详细示例。

您还可以使用Ansible Playbook更轻松地管理服务器。Ansible Playbook不在本文讨论范围之内。阅读Ansible文档以获取有关Ansible Playbook的更多信息。

评论

登录后评论

服务器优惠活动

Top