2.5. 将 sshd 系统角色用于非排除配置

通常,应用 sshd 系统角色会覆盖整个配置。如果您之前调整了配置,例如使用不同的系统角色或 playbook,这可能会出现问题。要只对所选配置选项应用 sshd 系统角色,同时保持其他选项,您可以使用非排除的配置。

在 RHEL 8 和更早版本中,您可以使用配置段来应用非独占配置。如需更多信息,请参阅 RHEL 8 文档中的 对非独占配置使用 SSH 服务器系统角色

在 RHEL 9 中,您可以使用随时可访问目录中的文件来应用非独占配置。默认配置文件已放入随时可访问的目录中,存为 /etc/ssh/sshd_config.d/00-ansible_system_role.conf

先决条件

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

    在控制节点上:

    • ansible-core 软件包已安装 。
    • 列出受管节点的清单文件。
    • 不同 RHEL 系统角色的 playbook。

流程

  1. 在 playbook 中添加带有 sshd_config_file 变量的配置段:

    ---
    - hosts: all
      tasks:
      - name: <Configure sshd to accept some useful environment variables>
        include_role:
          name: rhel-system-roles.sshd
        vars:
          sshd_config_file: /etc/ssh/sshd_config.d/<42-my-application>.conf
          sshd:
            # Environment variables to accept
            AcceptEnv:
              LANG
              LS_COLORS
              EDITOR

    sshd_config_file 变量中,定义 sshd 系统角色在其中写入配置选项的 .conf 文件。

    使用两位前缀,例如 42- 来指定应用配置文件的顺序。

    将 playbook 应用到清单时,角色会将以下配置选项添加到 sshd_config_file 变量定义的文件中。

    # Ansible managed
    #
    AcceptEnv LANG LS_COLORS EDITOR

验证

  • 可选:验证 playbook 语法。

    # ansible-playbook --syntax-check playbook.yml -i inventory_file

其他资源

  • /usr/share/doc/rhel-system-roles/sshd/README.md 文件。
  • ansible-playbook(1) 手册页。