如何安装和配置Ansible控制节点–第2部分

在本文中,我们将演示如何在RHEL 8上安装Ansible控制节点以及如何配置控制节点以连接和控制托管主机。

在上一个主题中,您将学习基本的Ansible术语和基本概念 在本主题( Ansible系列的第2部分)中,我们将演示如何在RHEL 8上安装和配置Ansible控制节点。

在我们的设置中,我们将使用1个Ansible服务器和2个远程Linux节点

Control Node 1: RHEL 8 Server     IP: 192.168.0.108         Ansible Server
Managed Host 1: Debian 10         IP: 192.168.0.15          Webserver
Managed Host 2: CentOS 8          IP: 192.168.0.200	    Database Server

什么是Ansible控制节点?

控制节点是安装了Ansible的Linux服务器,用于管理远程主机或节点。 这些远程系统称为托管主机托管节点

在上面的设置中,控制节点是将在其上安装AnsibleRHEL 8服务器,而Debian 10CentOS 8是托管主机。

注意 :Ansible仅安装在控制节点上,而不安装在托管主机上。

第1步:安装Python 3

默认情况下, RHEL 8随附于Python 3,您可以通过运行来验证服务器上安装的Python版本。

# python3 -V
检查Python版本

检查Python版本

如果出于任何原因未安装Python3 ,请使用以下dnf命令进行安装。

# dnf install python3
在RHEL 8中安装Python3

在RHEL 8上安装Python3

如果RHEL 8系统上存在多个Python版本,则可以通过运行将Python 3设置为默认Python版本。

# alternatives --set python /usr/bin/python3
设置默认Python版本

设置默认Python版本

第2步:启用正式的RedHat储存库

安装Python3之后 ,请确保已为Ansible启用RedHat的官方存储库,如下所示。

# subscription-manager repos --enable ansible-2.8-for-rhel-8-x86_64-rpms
启用RedHat Ansible存储库

启用RedHat Ansible存储库

:要使上述命令起作用,请确保已注册RHEL 8 for RedHat订阅

第3步:在RHEL 8上安装Ansible

要将Ansible安装在我们的RHEL 8系统的Control节点上,请运行命令。

# dnf install ansible -y
在RHEL 8中安装Ansible

在RHEL 8中安装Ansible

安装完成后,您可以通过运行命令来检查Ansible的安装版本。

# ansible --version
检查Ansible版本

检查Ansible版本

第4步:创建静态主机清单文件

到目前为止,我们已经在控制节点 (我们的RHEL 8服务器)上成功安装了ansible 需要在称为清单文件的文件中定义要由控制节点管理的远程节点。 清单文件是驻留在控制节点上的纯文本文件,由远程主机的主机名或IP地址组成。

静态主机文件是纯文本文件,其中包含由受管节点的IP地址或主机名定义的列表。 让我们在/ etc / ansible /目录中创建一个静态文件' hosts '。

# vi /etc/ansible/hosts

接下来,为托管主机定义一个或多个组。 如本主题介绍中的设置所述,我们有2个托管主机。 通过设置,将按以下方式定义静态主机文件:

[webserver]
192.168.0.15

[database_server]
192.168.0.200

保存并退出清单文件。

要列出托管主机,请运行:

# ansible all -i hosts --list-hosts
检查主机清单文件

检查主机清单文件

到目前为止,我们已经设法在控制节点中安装Ansible并在驻留在控制节点上的静态Host文件中定义托管主机。

接下来,我们将看到如何管理或控制我们的远程或托管主机。

第5步:设置Ansible控制节点以与远程节点连接

为了使Ansible控制节点RHEL 8 )管理远程主机系统( Debian 10CentOS 8 ),我们需要为远程主机设置无密码SSH身份验证 为此,您需要生成SSH密钥对并将公共密钥保存到远程节点。

在Ansible控制节点上,以普通用户身份登录并通过运行命令生成SSH密钥对。

# su howtoing
$ ssh-keygen
生成SSH密钥

生成SSH密钥

接下来,将公共ssh密钥复制到远程节点,如图所示。

$ ssh-copy-id [email protected]	        (For Debian 10 node)
$ ssh-copy-id [email protected]	        (For CentOS 8 node)
将SSH密钥复制到远程主机

将SSH密钥复制到远程主机

将公钥添加到我们所有的远程节点后,我们将从Ansible Control节点发出ping命令以确保它们可以访问。

$ ansible -m ping all
Ping所有远程节点

Ping所有远程节点

从上面的输出中,我们可以清楚地看到ping命令是成功的,并且我们能够测试所有节点的可达性。

结论

在本指南中,我们已在运行RHEL 8的控制节点上成功安装并设置了Ansible 稍后,我们在静态主机文件中定义了远程主机,并通过设置SSH无密码身份验证将控制节点配置为连接和控制托管主机。