如何在 Rocky Linux 8 上安装 Ansible
在此页
- 先决条件
- 第 1 步:更新系统
- 第 2 步:配置 EPEL 存储库
- 第 3 步:安装 Ansible
- 第 4 步。验证 Ansible 安装
- 为 Ansible 配置目标服务器
- 生成 SSH 密钥
- 创建库存文件
- Ping 远程服务器
Ansible 是一种开源软件,可自动执行软件供应、配置管理和应用程序部署。该工具旨在为多个 Linux 或类 UNIX 系统自动执行云配置、操作系统部署等。使用 Ansible 自动化工具,可以自动化数据中心的服务以及使用不同技术开发的产品。
Ansibles 的主要目标包括使 IT 自动化足够简单,无需过多的自定义脚本或手动繁琐的工作即可管理复杂的企业环境。除了 Python 本身之外不需要任何额外的依赖项,它允许用户通过 SSH 连接进一步自动化他们的系统,这在当今大多数主流 Linux 发行版中默认启用。
Ansible 的工作原理是通过 SSH 连接到节点,并收集有关远程系统的信息。然后它执行剧本中的任务以部署服务或其他配置管理目标。 Playbooks 可以自动化任意数量的系统配置过程,例如创建云服务器实例、虚拟机、容器等。Ansible 在自动化重复性任务方面很有用,例如跨服务器部署应用程序,这些任务本质上是多种多样的,通常需要基于本地基础设施和用户输入。运行 Kubernetes 的集群也可以通过 Ansibles 容器编排支持轻松管理:采取诸如从私有注册表拉取镜像和跨集群同时更新 pod 配置等操作。
您尝试安装新的 Linux 软件包并失败了多少次?您是否曾经想尝试将 Ansible 软件包安装到您的 Linux 系统上,但不知道如何操作?如果您回答是,那么这篇博文适合您。本教程将向您展示如何在 Rocky Linux 8 系统上下载、编译和安装 Ansible。
先决条件
- 一台运行 Rocky Linux 8 操作系统的服务器
- 根权限
步骤 1. 更新系统
首先,我们必须更新我们的系统以确保安装了所有最新的软件包。打开终端并输入以下命令。
sudo dnf update -y
步骤 2. 配置 EPEL 存储库
Extra Packages for Enterprise Linux (EPEL) 存储库是一个 Fedora 特别兴趣小组,它创建、维护和管理一组高质量的附加软件包,以补充 Red Hat 发布的软件包。一些存储库的重点领域是游戏和教育应用程序、编程语言和工具、虚拟化和系统管理。
Ansible 依赖于 python,没有 EPEL 存储库我们无法安装它。因此,要通过 dnf 安装 ansible,我们必须首先配置 EPEL 存储库。
sudo dnf install epel-release -y
配置 EPEL 存储库后,需要更新 DNF 包管理器,以便它可以从新存储库安装 Ansible。
sudo dnf makecache
要检查存储库是否已正确配置,请运行以下命令。
您将获得以下输出。
步骤 3. 安装 Ansible
现在已经配置了 EPEL 存储库,我们可以使用它来安装带有 DNF 包管理器的 Ansible。
sudo dnf -y install ansible
DNF 命令应该开始下载所有必需的包并将最新版本的 Ansible 安装到您的系统上。安装期间,系统可能会要求您接受 GPG 密钥。按 Y 和 Enter 继续。
安装 Ansible 后,您可以通过运行以下命令来验证安装了哪个版本的 Ansible:
ansible --version
Ansible 应显示其版本号和发布日期。这将验证 Ansible 是否已正确安装。
步骤 4. 验证 Ansible 安装
以确保安装成功。在此步骤中,我们将使用 Ansible 管理远程服务器。
为 Ansible 配置目标服务器
Ansible 使用 SSH 连接到目标服务器并对其进行配置。 SSH 是一种流行的网络协议,用于安全地连接到远程 Linux 机器,以便通过 SSH 在远程机器上执行命令。
Ansible使用22端口,所以22端口必须在防火墙上打开才能允许SSH连接。
在此示例中,我们将使用一台 Ubuntu 20.04 服务器,其 IP 地址为:137.184.66.179。
您可以使用要通过 Ansible 管理的服务器的 IP 地址。只需将上面的 IP 地址替换为您的目标服务器即可。您还可以使用计算机的 DNS 名称或 DNS 别名。
运行以下命令安装SSH服务器并在目标服务器上开放22端口。
sudo apt install openssh-server
sudo systemctl start ssh
sudo systemctl enable ssh
sudo ufw allow 22
生成 SSH 密钥
在这一步中,我们需要在本地机器上生成一个 SSH 密钥,然后将 SSH 密钥推送到远程机器。
SSH 密钥只是一对密钥,允许使用 SSH 建立 SSH 连接。运行以下命令以在本地计算机上生成 SSH 密钥。多次按 Enter 键接受默认值。您将获得以下输出。
ssh-keygen
生成 SSH 密钥后,我们需要将新生成的 SSH 密钥推送到目标机器。在主机上运行以下命令以推送密钥。
ssh-copy-id
请记住将 root 替换为目标计算机上的 sudo 用户。将 137.184.66.179 替换为目标机器的 IP 地址。
现在,在远程机器上,运行以下命令以运行带有 sudo 前缀的 SSH 命令,而无需重新输入密码。
echo "$(whoami) ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/$(whoami)
创建库存文件
Ansible 将其主机清单保存在 /etc/ansible 目录中的一个文件中,其名称为 hosts。主机文件可用于创建用于管理远程服务器的主机清单。
您还可以根据主机的功能、位置或任何其他条件创建一组主机。例如,您可以创建一个名为 Web 服务器的主机组,并将所有运行 Apache 或 Nginx 的服务器放在该组中。这提供了一种以更灵活的方式控制和管理主机的方法。
首先,使用您喜欢的文本编辑器打开主机文件。
sudo nano /etc/ansible/hosts
清单文件应包含以下内容。
要向此清单添加其他主机,只需在新行中附加主机名或主机 IP 地址即可。在此示例中,我们将 IP 地址为 137.184.66.179 的服务器添加到 webservers 组下的主机文件中。
按 ctrl+o 保存文件,按 ctrl+x 退出文件。
Ping 远程服务器
创建清单文件后,我们需要通知 Ansible 有一个新的远程服务器。我们可以通过使用带有参数 -m ping 的 ansible 命令来做到这一点。
ansible -m ping all
如果没有错误,远程服务器已经成功添加到清单文件中,您的 Ansible 安装成功。
结论
在本教程中,您学习了如何在 Rocky Linux 8.4 系统上安装 Ansible 并通过 SSH 将其连接到远程服务器。之后,您学习了如何创建清单文件 ansible 主机组。最后,您可以使用 ansible 命令 ping 远程服务器。
现在我们已经介绍了 Ansible 的一些基础知识。我们希望您会发现本教程很有用。您可能对如何在 Ubuntu 22.04 LTS 上安装和配置 Ansible 感兴趣。