12.4. 使用 ssh 系统角色配置 OpenSSH 客户端
您可以通过运行 Ansible playbook,使用 ssh
系统角色配置多个 SSH 客户端。
您可以将 ssh
系统角色用于更改 SSH 和 SSHD 配置的其他系统角色,如身份管理 RHEL 系统角色。要防止配置被覆盖,请确保 ssh
角色使用置入目录(默认为 RHEL 8)。
先决条件
-
访问一个或多个 受管节点 的权限,这是您要使用
ssh
系统角色配置的系统。 对 控制节点 的访问和权限,这是 Red Hat Ansible Core 配置其他系统的系统。
在控制节点上:
-
ansible-core
和rhel-system-roles
软件包已安装 。
-
RHEL 8.0-8.5 提供对基于 Ansible 的自动化需要 Ansible Engine 2.9 的独立 Ansible 存储库的访问权限。Ansible Engine 包含命令行实用程序,如 ansible
、ansible-playbook
、连接器(如 docker
和 podman
)以及许多插件和模块。有关如何获取并安装 Ansible Engine 的详情,请参考如何下载并安装 Red Hat Ansible Engine 知识库文章。
RHEL 8.6 和 9.0 引入了 Ansible Core(作为 ansible-core
软件包提供),其中包含 Ansible 命令行工具、命令以及小型内置 Ansible 插件。RHEL 通过 AppStream 软件仓库提供此软件包,它有一个有限的支持范围。如需更多信息,请参阅 RHEL 9 和 RHEL 8.6 及更新的 AppStream 软件仓库文档中的 Ansible Core 软件包的支持范围。
- 列出受管节点的清单文件。
流程
使用以下内容创建一个新的
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
主机的example
别名是user1
。 -
example
主机别名已创建,它表示使用user1
用户名连接到example.com
主机。 - X11 转发被禁用。
另外,您还可以根据您的偏好修改这些变量。如需了解更多详细信息,请参阅
ssh
系统角色变量。可选:验证 playbook 语法。
# ansible-playbook --syntax-check path/custom-playbook.yml
在清单文件上运行 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