如何安装和配置 Ansible 控制节点 - 第 2 部分
在上一主题中,您将了解基本的 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服务器,用于管理远程主机或节点。这些远程系统称为托管主机或托管节点。
在上面的设置中,控制节点是安装 Ansible 的 RHEL 8 服务器以及 Debian 10 和 CentOS 8< 是托管主机。
注意:Ansible 仅安装在控制节点上,而不安装在托管主机上。
第 1 步:安装 Python 3
默认情况下,RHEL 8 附带 Python 3,您可以通过运行来验证服务器上安装的 Python 版本。
python3 -V
如果由于某种原因未安装 Python3,请使用以下 dnf 命令安装它。
dnf install python3
如果您的RHEL 8系统上存在多个Python版本,您可以将Python 3设置为默认Python版本通过跑步。
alternatives --set python /usr/bin/python3
第 2 步:启用官方 RedHat 存储库
安装Python3后,请确保您已启用Ansible的RedHat官方存储库,如下所示。
subscription-manager repos --enable ansible-2.8-for-rhel-8-x86_64-rpms
注意:要使上述命令正常工作,请确保您已注册 RHEL 8 for RedHat 订阅。
步骤 3:在 RHEL 8 上安装 Ansible
要在控制节点(即我们的 RHEL 8 系统)上安装 Ansible,请运行命令。
dnf install ansible -y
安装后,您可以通过运行命令检查安装的 Ansible 版本。
ansible --version
步骤 4:创建静态主机清单文件
到目前为止,我们已成功在 控制节点(即我们的 RHEL 8 服务器)上安装了 ansible。控制节点要管理的远程节点需要在名为inventory 文件的文件中定义。库存文件是驻留在控制节点上的纯文本文件,由远程主机的主机名或 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,并在控制节点上的静态主机文件中定义了托管主机。
接下来,我们将了解如何管理或控制我们的远程或托管主机。
步骤 5:设置 Ansible 控制节点以与远程节点连接
用于Ansible控制节点(RHEL 8)管理远程主机系统(Debian 10和CentOS 8)我们需要为远程主机设置无密码 SSH 身份验证。为此,您需要生成 SSH 密钥对并将公钥保存到远程节点。
在Ansible控制节点上,以普通用户登录并运行命令生成SSH密钥对。
su tecmint
ssh-keygen
接下来,将公共 ssh 密钥复制到远程节点,如图所示。
ssh-copy-id [email (For Debian 10 node)
ssh-copy-id [email (For CentOS 8 node)
将公钥添加到所有远程节点后,我们将从 Ansible 控制节点发出 ping 命令以确保它们可访问。
ansible -m ping all
从上面的输出中,我们可以清楚地看到 ping 命令成功,并且我们能够测试所有节点的可达性。
结论
在本指南中,我们在运行 RHEL 8 的控制节点上成功安装并设置了 Ansible。随后,我们在静态主机文件中定义了远程主机,并通过设置 SSH 无密码身份验证来配置控制节点以连接和控制托管主机。