第 1 章 RHEL 系统角色入门

本节介绍 RHEL 系统角色是什么。另外,它介绍了如何通过 Ansible playbook 应用特定角色来执行各种系统管理任务。

1.1. RHEL 系统角色简介

RHEL 系统角色是 Ansible 角色和模块的集合。RHEL 系统角色提供了一个配置界面,用于远程管理多个 RHEL 系统。这个界面允许在多个 RHEL 版本间管理系统配置,以及处理新的主发行版本。

在 Red Hat Enterprise Linux 8 中,该接口目前由以下角色组成:

  • kdump
  • network
  • selinux
  • storage
  • certificate
  • kernel_settings
  • logging
  • metrics
  • nbde_client and nbde_server
  • timesync
  • tlog

所有这些角色都由 AppStream 存储库中可用的 rhel-system-roles 软件包提供。

其它资源

1.2. RHEL 系统角色术语

您可以在本文档中找到以下术语:

系统角色术语

Ansible playbook
Playbook 是 Ansible 的配置、部署和编配语言。它们可以描述您希望远程系统强制使用的策略,或者在一般的 IT 进程中选择一组步骤。
控制节点
安装了 Ansible 的任何机器。您可以从任何控制节点运行命令和 playbook,调用 /usr/bin/ansible 或 /usr/bin/ansible-playbook。您可以使用任意安装了 Python 的计算机作为控制节点 - 笔记本电脑、共享桌面和服务器都可以运行 Ansible。但是,您不能使用 Windows 机器作为控制节点。您可以拥有多个控制节点。
清单(Inventory)
受管节点列表。清单文件有时也称为"hostfile"。您的清单可以为每个受管节点指定像 IP 地址等信息。清单也可以管理受管节点,创建并嵌套组以更轻松地进行扩展。如需了解更多有关清单的信息,请参阅使用清单一 节。
受管节点
使用 Ansible 管理的网络设备、服务器或两者。受管节点有时也称为 "hosts(主机)"。Ansible 未安装到受管节点上。

1.3. 应用一个角色

以下流程描述了如何应用特定角色。

先决条件

  • rhel-system-roles 软件包安装在您要用作控制节点的系统中:

    # yum install rhel-system-roles
  • 启用 Ansible Engine 软件仓库, ansible 软件包安装在您要用作控制节点的系统中。您需要 ansible 软件包来运行使用 RHEL 系统角色的 playbook。

    • 如果您没有 Red Hat Ansible Engine 订阅,可以使用 Red Hat Enterprise Linux 订阅提供的有限版本的 Red Hat Ansible Engine。在这种情况下,请按照以下步骤操作:

      1. 启用 RHEL Ansible Engine 存储库:

        # subscription-manager refresh
        # subscription-manager repos --enable ansible-2-for-rhel-8-x86_64-rpms
      2. 安装 Ansible Engine:

        # yum install ansible
    • 如果您有 Red Hat Ansible Engine 订阅,请按照以下所述步骤操作 如何下载和安装 Red Hat Ansible Engine?
  • 您可以创建一个 Ansible playbook。

    Playbook 代表 Ansible 的配置、部署和编配语言。通过使用 playbook,您可以声明和管理远程机器的配置,部署多个远程机器,编配任何手动排序进程的步骤。

    playbook 是一个或多个 plays 的列表。每个 play 都可以包括 Ansible 变量、任务或角色。

    playbook 是人类可读的,以 YAML 格式表示。

    如需有关 playbook 的更多信息,请参阅 Ansible 文档

流程

  1. 创建一个 Ansible playbook,包括所需角色。

    以下示例演示了如何通过给定 roles: 选项使用角色 play:

    ---
    - hosts: webservers
      roles:
         - rhel-system-roles.network
         - rhel-system-roles.timesync

    如需有关在 playbook 中使用角色的更多信息,请参阅 Ansible 文档

    请参阅 playbook 示例 Ansible 示例

    注意

    每个角色都包括 README 文件,该文件记录如何使用角色和支持的参数值。您还可以在角色的文档目录中找到特定角色的示例 playbook。这些文档目录默认由 rhel-system-roles 软件包提供,并可在以下位置找到:

    /usr/share/doc/rhel-system-roles/SUBSYSTEM/

    使用所需角色的名称(如selinux kdumpnetworktimesync、或storage)替换 SUBSYSTEM

  2. 运行以下 ansible-playbook 命令,在目标主机上执行 playbook:

    # ansible-playbook -i name.of.the.inventory name.of.the.playbook

    清单是 Ansible 支持的系统的列表。更多相关信息,请参阅 Ansible 文档

    如果没有清单,您可以在运行 ansible-playbook 时创建它:

    如果您只有一个目标主机要针对其运行 playbook,请使用:

    # ansible-playbook -i host1, name.of.the.playbook

    如果您有多个要运行 playbook 的目标主机,请使用:

    # ansible-playbook -i host1,host2,....,hostn name.of.the.playbook

其它资源

  • 有关使用 ansible-playbook 命令的详情请参考 ansible-playbook man page。

1.4. 其它资源


为了尽快向用户提供最新的信息,本文档可能会包括由机器自动从英文原文翻译的内容。如需更多信息,请参阅此说明。