搜索

第 2 章 准备控制节点和受管节点以使用 RHEL 系统角色

download PDF

在使用单独的 RHEL 系统角色管理服务和设置前,您必须准备控制节点和受管节点。

2.1. 在 RHEL 8 上准备一个控制节点

在使用 RHEL 系统角色前,您必须配置一个控制节点。然后,此系统根据 playbook 从清单中配置受管主机。

先决条件

  • RHEL 8.6 或更高版本已安装。有关安装 RHEL 的更多信息,请参阅主动 从安装介质安装 RHEL

    注意

    在 RHEL 8.5 及更早版本中,Ansible 软件包通过 Ansible Engine 提供,而不是通过 Ansible Core ,并具有不同的支持级别。不要使用 Ansible Engine,因为软件包可能与 RHEL 8.6 及之后版本中的 Ansible 自动化内容不兼容。如需更多信息,请参阅 RHEL 9 和 RHEL 8.6 以及后期的 AppStream 存储库中包含的 Ansible Core 软件包的支持范围

  • 该系统已注册到客户门户网站。
  • Red Hat Enterprise Linux Server 订阅被附加到系统上。
  • 可选:Ansible Automation Platform 订阅被附加到系统上。

步骤

  1. 创建一个名为 ansible 的用户,来管理并运行 playbook:

    [root@control-node]# useradd ansible
  2. 切换到新创建的 ansible 用户:

    [root@control-node]# su - ansible

    以这个用户身份执行其余步骤。

  3. 创建一个 SSH 公钥和私钥:

    [ansible@control-node]$ ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/ansible/.ssh/id_rsa):
    Enter passphrase (empty for no passphrase): <password>
    Enter same passphrase again: <password>
    ...

    为密钥文件使用推荐的默认位置。

  4. 可选: 要防止 Ansible 在每次建立连接时提示您输入 SSH 密钥密码,请配置一个 SSH 代理。
  5. 使用以下内容创建 ~/.ansible.cfg 文件:

    [defaults]
    inventory = /home/ansible/inventory
    remote_user = ansible
    
    [privilege_escalation]
    become = True
    become_method = sudo
    become_user = root
    become_ask_pass = True
    注意

    ~/.ansible.cfg 文件中的设置具有更高的优先级,并覆盖全局 /etc/ansible/ansible.cfg 文件中的设置。

    使用这些设置,Ansible 执行以下操作:

    • 管理指定清单文件中的主机。
    • 当帐户建立到受管节点的 SSH 连接时,使用 remote_user 参数中设置的帐户。
    • 使用 sudo 工具,以 root 用户身份在受管节点上执行任务。
    • 每次应用 playbook 时,都会提示输入远程用户的 root 密码。出于安全考虑,建议这样做。
  6. 创建一个列出受管主机主机名的 INI 或 YAML 格式的 ~/inventory 文件。您还可以在清单文件中定义主机组。例如,以下是 INI 格式的清单文件,它有三个主机,以及一个名为 US 的主机组:

    managed-node-01.example.com
    
    [US]
    managed-node-02.example.com ansible_host=192.0.2.100
    managed-node-03.example.com

    请注意,控制节点必须能够解析主机名。如果 DNS 服务器无法解析某些主机名,请在主机条目旁边添加 ansible_host 参数来指定其 IP 地址。

  7. 安装 RHEL 系统角色:

    • 在没有 Ansible Automation Platform 的 RHEL 主机上,安装 rhel-system-roles 软件包:

      [root@control-node]# yum install rhel-system-roles

      此命令将集合安装到 /usr/share/ansible/collections/ansible_collections/redhat/rhel_system_roles/ 目录中,以及 ansible-core 软件包作为依赖项。

    • 在 Ansible Automation Platform 上,以 ansible 用户身份执行以下步骤:

      1. 将 Red Hat Automation hub 定义为 ~/.ansible.cfg 文件中内容的主要源
      2. 从 Red Hat Automation Hub 安装 redhat.rhel_system_roles 集合:

        [ansible@control-node]$ ansible-galaxy collection install redhat.rhel_system_roles

        此命令在 ~/.ansible/collections/ansible_collections/redhat/rhel_system_roles/ 目录中安装集合。

后续步骤

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.