Red Hat Training

A Red Hat training course is available for RHEL 8

2.4. 使用 SSH 系统角色配置 OpenSSH 客户端

您可以通过运行 Ansible playbook,使用 SSH 系统角色来配置多个 SSH 客户端。

先决条件

  • 访问一个或多个 受管节点,它们是您要使用 SSH 系统角色配置的系统。
  • 对控制节点的访问和权限,这是 Red Hat Ansible Engine 配置其他系统的系统。

    在控制节点上:

    • 已安装 Red Hat Ansible Engine。
    • 已安装 rhel-system-roles 软件包。
    • 列出受管节点的清单文件。

流程

  1. 使用以下内容创建新 playbook.yml 文件:

    ---
    - hosts: all
      tasks:
      - name: "Configure ssh clients"
        include_role:
          name: rhel-system-roles.ssh
        vars:
          ssh_user: root
          ssh:
            Compression: true
            GSSAPIAuthentication: no
            ControlMaster: auto
            ControlPath: ~/.ssh/.cm%C
            Host:
              - Condition: example
                Hostname: example.com
                User: user1
          ssh_ForwardX11: no

    此 playbook 使用以下配置在受管节点上配置 root 用户的 SSH 客户端首选项:

    • 压缩已启用。
    • ControlMaster 多路复用设置为 auto
    • 连接到 example.com 主机的示例 别名user1
    • 已创建 示例 主机别名,它表示与 example.com 主机的 连接 使用 user1 用户名。
    • X11 转发被禁用。

    另外,您还可以根据您的偏好修改这些变量。如需了解更多详细信息,请参阅 SSH 客户端角色变量

  2. 可选:验证 playbook 语法。

    # ansible-playbook --syntax-check path/custom-playbook.yml
  3. 在清单文件上运行 playbook:

    # ansible-playbook -i inventory_file path/custom-playbook.yml

验证

  • 通过在文本编辑器中打开 SSH 配置文件来验证受管节点是否具有正确的配置,例如:

    # vi ~root/.ssh/config

    在应用了上面显示的示例 playbook 后,配置文件应包含以下内容:

    # Ansible managed
    Compression yes
    ControlMaster auto
    ControlPath ~/.ssh/.cm%C
    ForwardX11 no
    GSSAPIAuthentication no
    Host example
      Hostname example.com
      User user1