如何在 Ubuntu 22.04 上安装 Ansible 教程

简介

Ansible 对于系统管理员和 DevOps 专家来说是一个非常有价值的工具,他们希望有效地自动化他们的 IT 工作流程。 无论是处理单个服务器的自动化还是庞大的网络,Ansible 的能力都非常出色。 本文提供了关于如何在 Ubuntu 22.04 上安装 Ansible 的详细、分步指南,即使是那些刚接触自动化工具的人也可以轻松上手。

什么是 Ansible?

由 Red Hat 开发的 Ansible 是一款开源工具,以其在 IT 自动化方面的简洁性和灵活性而闻名。 与其他管理工具不同,它不需要节点上的自定义代理,而是使用 SSH 进行安全连接,使其轻便且易于采用。 Ansible 是一款出色的自动化工具,可简化复杂的软件设置,轻松管理任务并促进高效的应用程序部署。

Ansible 有什么用?

Ansible 使配置管理、应用程序部署和编排复杂的工作流程变得更加容易。 它的声明性语言允许你用代码描述你的基础设施,这些代码可以进行版本控制并在团队成员之间共享。 Ansible 同时处理多个任务的能力及其模块化设计使其成为可扩展和高效自动化的首选。

准备工作

服务器准备

必要前提:

  • 一个充满求知欲的大脑。
  • 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。

我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。

注册链接: https://rainyun.ivwv.site

创建雨云服务器

以下步骤仅供参考,请根据实际需求选择配置。

  • 点击 云产品云服务器立即购买
  • 选择距离你较近的区域,以保证低延迟。
  • 按照自己需求选择配置,选择Ubuntu 22.04 版本,按照自己需求是否预装Docker。
  • 最后按照提示进行购买。
  • 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。
  • 我们使用 PowerShell 进行 SSH 远程连接到服务器,Win+R 打开运行窗口,输入 powershell 后点击确定。
  • 输入 ssh root@你的服务器IP 例如 ssh root@154.9.227.239 回车后,首次需要输入 yes,再次回车后即可登录服务器。
  • 到此为止,我们的云服务器就远程连接上了。

安装和配置步骤

第一步:验证 sudo 权限并更新系统软件包

打开 Ansible 控制机器的终端并运行任何 sudo 命令,例如 sudo apt update,看看是否遇到任何错误。 如果你没有看到任何错误,则你拥有必要的 sudo 权限。 此外,运行以下命令来检查你的控制机器的 Ubuntu 版本。

bash 复制代码
lsb_release -a

在开始安装 Ansible 之前,更新现有软件包和存储库始终是一个好习惯。 它可以确保软件包具有其最新版本,安装安全补丁并解决依赖关系。 它还有助于保持与新软件安装的一致性。

打开 Ansible 控制机器的终端,然后键入 sudo apt update 命令。 它将获取最新的更新,如以下屏幕截图所示。

接下来,执行以下命令,根据之前命令获得的信息,将系统上安装的所有软件包升级到最新版本。

bash 复制代码
sudo apt upgrade -y

第二步:添加 Ansible PPA(个人软件包存档)

Ansible 个人软件包存档 (PPA) 存储库允许开发人员使用最新版本更新 Ansible。 Ansible PPA 共享最新的软件,尤其是在官方 Ubuntu 来源没有最新软件包时。

Ansible PPA 提供了一种在 Ubuntu 操作系统上安装最新稳定 Ansible 版本的简单方法。 它使他们始终拥有最新的版本,而无需仅依赖官方渠道,官方渠道可能稍微落后。 以下是用于添加软件包存档的命令。

bash 复制代码
sudo apt-add-repository ppa:ansible/ansible

在获取软件包时,它将请求授权以继续。 按下 Enter 键后,它将开始添加 PPA。

接下来,再次执行 sudo apt update 命令以更新系统软件包索引。 此命令对于 Ubuntu 系统识别新添加的 PPA 非常重要。

第三步:安装 Ansible 并验证安装

添加 Ansible PPA 后,你现在可以继续在 Ubuntu 上安装 Ansible。 使用以下命令启动安装。 此命令从 PPA 获取并安装最新的 Ansible 稳定版本。

bash 复制代码
sudo apt install ansible

此安装还将请求授权以继续。 键入 Y 并按 Enter 继续安装 Ansible。

你还可以使用以下组合命令来安装 Ansible 而不会中断。

bash 复制代码
sudo add-apt-repository --yes --update ppa:ansible/ansible

使用以下命令验证安装。

bash 复制代码
ansible --version

它将提供有关安装的以下信息:Ansible 配置、Python 版本以及集合和模块信息。

  1. ansible [core 2.15.5] - 当前安装的 Ansible 版本;
  2. config file - Ansible 配置文件路径;
  3. configured module search path - Ansible 将在其中搜索模块的目录;
  4. Ansible Python 模块位置;
  5. ansible collection location - 集合是 Ansible 内容(包括剧本、Ansible 角色、模块和插件)的分布格式;
  6. executable location: Ansible 可执行文件的路径;
  7. Python version;
  8. jinja version - Python 模板引擎的版本。 Ansible 使用 Jinja2 来满足模板需求,例如生成模板配置文件;
  9. libyaml = True - 此行指示 LibYAML 库的用户。 LibYAML 可以更快地读取 YAML 文件。 最好将其设置为 true,因为 Ansible 在剧本和设置等任务中严重依赖 YAML。

完成上述步骤后,该机器将充当"Ansible 控制节点"。

第四步:主机设置

设置 Ansible 控制节点后,下一步是准备将执行 Ansible 任务的主机。 你需要将这些计算机添加到控制节点的清单文件中,该文件通常位于 /etc/ansible/hosts。下图显示了此文件的示例。

Ansible 清单文件包含有关 Ansible 将管理的所有主机的 信息。 安装 Ansible 时默认创建它。 在此文件中,你可以选择根据主机的作用或功能,将主机组织到不同的组中,例如 Web 服务器、数据库服务器和开发服务器,或者按操作系统对其进行分类。 这种组织结构有助于更有效地管理主机。

在清单文件中,你可以按主机名或 IP 地址列出主机,并且该文件通常包含示例来指导你指定这些详细信息。

要编辑清单文件,请使用以下命令之一。

bash 复制代码
vi /etc/ansible/hosts
bash 复制代码
sudo nano /etc/ansible/hosts

此外,如果你希望创建自定义清单文件,则可以在任何位置完成。 执行 Ansible 剧本或命令时使用 '-i' 参数。

对于此步骤,请在"AppServers"组下为你的主机分配以下私有 IP 地址,然后保存更改。

bash 复制代码
[appServers]

172.31.21.153

172.31.19.136

使用以下命令查看已添加到你的清单文件的服务器。

bash 复制代码
ansible-inventory --list -y

第五步:在主机中设置 SSH 密钥

在使用 Ansible 管理主机之前,你必须正确设置 SSH 密钥。 它将允许 Ansible 控制节点访问主机。

首先,使用以下命令在 Ansible 控制节点中创建 SSH 密钥。

bash 复制代码
ssh-keygen

你可以使用 cat id_rsa.pub 命令来可视化 rsa 公钥并复制它。

登录到主机的控制台。 然后,粘贴并将复制的 RSA 公钥保存在 /root/.ssh/ 路径下的 authorized_keys 文件中。

你可以通过使用以下命令将公钥直接复制到远程主机来更轻松地完成上述步骤。

bash 复制代码
ssh-copy-id root@remote-ip-address

第六步:测试主机访问

你现在已完成从 Ansible 控制节点访问主机的所有设置。 现在是验证连接是否成功的时候了。 要测试访问,请使用以下命令。

bash 复制代码
ansible all -m ping -u root

最后,如果连接成功,你将看到如下屏幕截图中的 SUCCESS 消息。 首次连接时,系统将提示你提供授权。 后续测试将直接连接到主机。 现在,你可以使用控制节点来管理主机并自动化你的任务。

结尾

总而言之,本教程介绍了如何在 Ubuntu 22.04 上安装 Ansible,包括配置。 我们强调了对控制机器进行初步更新以及正确配置主机的重要性,以及添加 Ansible PPA 和 SSH 密钥设置,以便 Ansible 控制节点可以通过 SSH 成功管理这些机器。

推广链接:

相关推荐
魔理沙偷走了BUG5 分钟前
【Linux笔记】Day5
linux·笔记
利刃大大6 分钟前
【Linux系统编程】二、Linux进程概念
linux·c语言·进程·系统编程
阿政一号10 分钟前
Linux初识:【冯诺依曼体系结构】【操作系统概念】【进程部分概念(进程状态)(进程优先级)(进程调度队列)】
linux·服务器·指令·进程概念·linux操作系统
HaoHao_0101 小时前
AWS Snowball
服务器·云计算·aws·云服务器
小林想被监督学习1 小时前
RabbitMQ 仲裁队列 -- 解决 RabbitMQ 集群数据不同步的问题
linux·分布式·rabbitmq
xf8079892 小时前
cursor远程调试Ubuntu以及打开Ubuntu里面的项目
linux·运维·ubuntu
dot to one2 小时前
Linux 入门 常用指令 详细版
linux·服务器·centos
Golinie3 小时前
记一次Linux共享内存段排除Bug:key值为0x0000000的共享内存段删除不了
linux·bug·共享内存段
狄加山6753 小时前
Linux 基础1
linux·运维·服务器
Once_day3 小时前
Linux-arm(1)ATF启动流程
linux·arm开发