在 CentOS 和 Red Hat 上安装 Ansbile [RHCE Ansible 系列]
在 RHCE Ansible EX 294 考试准备系列的第一章中,了解如何在 Red Hat 和 CentOS 上安装和设置 Ansible。
在本 Ansible 系列中,您将学习使用 Ansible 管理和自动化 IT 基础设施运营所需的所有技能。
此外,本系列还将涵盖 RHCE(红帽认证工程师)EX294 考试的所有目标。这意味着如果您遵循本系列,您将做好充分准备通过 EX294 考试并成为红帽认证工程师。
什么是 Ansible?
Ansible 是一款开源配置管理、软件配置和应用程序部署工具,使应用程序部署和 IT 基础设施操作的自动化变得非常简单。
Ansible 非常轻量级,易于配置,并且不占用资源,因为它不需要代理来运行(无代理),这与其他自动化工具不同,例如 Puppet,它是基于代理的,配置有点复杂。
这解释了为什么 Ansible 日益流行并成为许多企业的首选自动化工具。
在科幻小说中,Ansible 一词指的是一种假设的设备,使用户能够进行远距离即时通信;也就是说,一种比光速还快的通信设备。现在您知道 Ansible 的名字灵感来自于哪里了。
创建你的游乐场
为了充分利用本系列并轻松学习,我建议您使用与我相同的设置。
我创建了一台 RHEL 8(Red Hat Enterprise Linux)虚拟机作为控制节点。顾名思义,控制节点基本上是一个用于控制其他远程主机(受管节点)的服务器。
我为托管节点创建了三个 CentOS 8 虚拟机:node1、node2 和 node3。我还为最后一个受管节点创建了 Ubuntu 18.04。
如果您还不知道,您可以免费获得 Red Hat Linux。
下面是总结整个设置的图表:
我的计算机上没有足够的资源来创建所有这些虚拟机而不导致计算机崩溃。因此,我使用了 Microsoft Azure 的所有虚拟机,如下面的屏幕截图所示:
您可以使用任何其他云服务器提供商,如 AWS、Linode、Digital Ocean、UpCloud 等。他们中的大多数为新用户提供价值 50 或 100 美元的免费积分。您可以注册其中一项服务,并使用免费积分来准备后续 Ansible 系列的设置。
安装 Ansible
Ansible 依赖 SSH 和 Python 来完成所有自动化操作,因此您只需在控制节点上安装 Ansible,并确保控制节点和受管节点上都安装了 OpenSSH 和 Python。
长话短说,您不需要在受管节点上安装 Ansible!
现在,我将向您展示如何在各种系统上安装 Ansible。
在 RHEL 系统上安装 Ansible
我首先将向您展示如何在 RHEL 8 系统上安装 Ansible,因为本系列主要针对所有 RHCE 考试目标。
登录到您的控制节点并切换到 root 用户:
[elliot@control ~]$ sudo su -
Last login: Tue Oct 20 01:05:00 UTC 2020 on pts/0
检查Linux版本信息,你可以看到我正在运行RHEL 8.2,我将使用它作为控制节点:
[root@control ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.2 (Ootpa)
要在 RHEL 8 系统上安装 Ansible,您首先必须使用 subscription-manager 命令注册您的系统:
[root@control ~]# subscription-manager register
Registering to: subscription.rhsm.redhat.com:443/subscription
Username:xxxxx
Password: xxxxx
The system has been registered with ID: 1d8ace59-c140-4f8c-b4bb-b4cd0f4fb811
The registered system name is: control
如您所见,系统将提示您输入用户名和密码,如果您没有 Red Hat 帐户,您可以创建一个帐户并获得免费试用。
然后,您可以使用以下命令附加新订阅:
[root@control ~]# subscription-manager attach --auto
Installed Product Current Status:
Product Name: Red Hat Enterprise Linux for x86_64
Status: Subscribed
Product Name: Red Hat Enterprise Linux for x86_64 - Extended Update Support
Status: Subscribed
请注意,您可以在单个命令中注册并附加订阅:
subscription-manager register --username=<USER_NAME> --password=<PASSWORD> --auto-attach
现在我们可以访问所有 RHEL 8 存储库。您可以通过运行以下命令列出所有可用的 Ansible 存储库:
[root@control ~]# yum repolist all | grep ansible
ansible-2-for-rhel-8-x86_64-debug-rpms Red Hat Ansible E disabled
ansible-2-for-rhel-8-x86_64-rpms Red Hat Ansible E disabled
ansible-2-for-rhel-8-x86_64-source-rpms Red Hat Ansible E disabled
ansible-2.8-for-rhel-8-x86_64-debug-rpms Red Hat Ansible E disabled
ansible-2.8-for-rhel-8-x86_64-rpms Red Hat Ansible E disabled
ansible-2.8-for-rhel-8-x86_64-source-rpms Red Hat Ansible E disabled
ansible-2.9-for-rhel-8-x86_64-debug-rpms Red Hat Ansible E disabled
ansible-2.9-for-rhel-8-x86_64-rpms Red Hat Ansible E disabled
ansible-2.9-for-rhel-8-x86_64-source-rpms Red Hat Ansible E disabled
现在找到最新的 Ansible 版本存储库并启用它。在撰写本文时,ansible-2.9是最新版本,因此我将启用 ansible-2.9-for-rhel-8-x86_64-rpms yum_config_manager命令如下:
[root@control ~]# yum-config-manager --enable ansible-2.9-for-rhel-8-x86_64-rpms
Updating Subscription Management repositories.
现在,您可以通过列出系统上所有已启用的存储库来验证 Ansible 存储库是否确实已启用:
[root@control ~]# yum repolist enabled
Updating Subscription Management repositories.
repo id repo name
ansible-2.9-for-rhel-8-x86_64-rpms Red Hat Ansible Engine 2.9 for RHEL 8 x86_64 (RPMs)
microsoft-azure-rhel8-eus Microsoft Azure RPMs for RHEL8 Extended Update Support
rhel-8-for-x86_64-appstream-eus-rhui-rpms Red Hat Enterprise Linux 8 for x86_64 - AppStream - Extended Update Support from RHUI (RPMs)
rhel-8-for-x86_64-appstream-rpms Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)
rhel-8-for-x86_64-baseos-eus-rhui-rpms Red Hat Enterprise Linux 8 for x86_64 - BaseOS - Extended Update Support from RHUI (RPMs)
rhel-8-for-x86_64-baseos-rpms Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)
所有这些前期工作都已完成。现在你终于可以安装 Ansible 了:
[root@control ~]# yum install -y ansible
安装完成后。您可以通过运行以下命令来验证 Ansible 是否确实安装:
[root@control ~]# ansible --version
ansible 2.9.14
config file = /etc/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3.6/site-packages/ansible
executable location = /usr/bin/ansible
python version = 3.6.8 (default, Dec 5 2019, 15:45:45) [GCC 8.3.1 20191121 (Red Hat 8.3.1-5)]
惊人的!您现在已经在 RHEL 8 上成功安装了 Ansible。我相信您可能会认为这是一个漫长的过程!
好的一面是,考试时不会访问互联网,这意味着您的控制系统将配备您需要的所有存储库,因此您不必担心使用订阅管理器。
但做好准备比惊讶更好,永远记住这一点!
在 CentOS 上安装 Ansible
在 CentOS 上,Ansible 由 EPEL(Extra Package for Enterprise Linux)存储库提供。
您可以通过安装 epel-release 包来安装并启用 EPEL 存储库,如下所示:
[root@node1 ~]# yum install -y epel-release
现在,您可以安装 ansible:
[root@node1 ~]# yum install -y ansible
请记住,我们在此处的一个托管节点(节点 1)上安装 Ansible 仅用于学习目的;您只需要在控制节点上安装 Ansible 即可。
在 Ubuntu 上安装 Ansible
在 Ubuntu 上,您需要确保系统上启用了所需的 Ansible 版本存储库。
您可以使用以下命令添加并启用 ansible-2.9 ppa 存储库:
root@node4:~# apt-add-repository --yes --update ppa:ansible/ansible-2.9
最后,您可以在 Ubuntu 上安装 Ansible:
root@node4:~# apt-get -y install ansible
我们的 RHCE Ansible 准备系列第一个教程到此结束。
请继续关注下一个教程,因为您将学习如何配置 Ansible 并运行一些非常酷的 Ad-Hoc Ansible 命令。