26.3. 将 sshd RHEL 系统角色用于非独占配置
通常,应用 sshd
系统角色会覆盖整个配置。如果您之前已调整了配置,例如使用不同的系统角色或 playbook,这可能会出现问题。要只对所选配置选项应用 sshd
系统角色,同时保留其他选项,您可以使用非排除配置。
您可以应用非独占配置:
- 在 RHEL 8 及更早版本中,使用配置片断。
-
在 RHEL 9 及更高版本中,使用置入目录中的文件。默认配置文件已放入随时可访问的目录中,存为
/etc/ssh/sshd_config.d/00-ansible_system_role.conf
。
先决条件
- 您已准备好控制节点和受管节点。
- 以可在受管主机上运行 playbook 的用户登录到控制节点。
-
用于连接到受管节点的帐户具有
sudo
权限。
步骤
创建包含以下内容的 playbook 文件,如
~/playbook.yml
:对于运行 RHEL 8 或更早版本的受管节点:
--- - name: Non-exclusive sshd configuration hosts: managed-node-01.example.com tasks: - name: <Configure SSHD to accept some useful environment variables> ansible.builtin.include_role: name: rhel-system-roles.sshd vars: sshd_config_namespace: <my-application> sshd: # Environment variables to accept AcceptEnv: LANG LS_COLORS EDITOR
对于运行 RHEL 9 或更高版本的受管节点:
- name: Non-exclusive sshd configuration hosts: managed-node-01.example.com tasks: - name: <Configure sshd to accept some useful environment variables> ansible.builtin.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 语法:
$ ansible-playbook --syntax-check ~/playbook.yml
请注意,这个命令只验证语法,不会防止错误但有效的配置。
运行 playbook:
$ ansible-playbook ~/playbook.yml
验证
验证 SSH 服务器上的配置:
对于运行 RHEL 8 或更早版本的受管节点:
# cat /etc/ssh/sshd_config.d/42-my-application.conf # Ansible managed # AcceptEnv LANG LS_COLORS EDITOR
对于运行 RHEL 9 或更高版本的受管节点:
# cat /etc/ssh/sshd_config ... # BEGIN sshd system role managed block: namespace <my-application> Match all AcceptEnv LANG LS_COLORS EDITOR # END sshd system role managed block: namespace <my-application>
其他资源
-
/usr/share/ansible/roles/rhel-system-roles.sshd/README.md
文件 -
/usr/share/doc/rhel-system-roles/sshd/
directory