3.9. 为 Ansible 启用免密码 SSH
在 Ansible 管理节点上生成 SSH 密钥对,并将公钥分发到存储集群中的每个节点,以便 Ansible 可以在不提示输入密码的情况下访问节点。
注意
如果使用基于 Cockpit Web 的界面安装 Red Hat Ceph Storage,则不需要这个过程。这是因为 Cockpit Ceph 安装程序会生成自己的 SSH 密钥。有关将 Cockpit SSH 密钥复制到集群中的所有节点的说明,请参见使用 Cockpit Web 界面安装 Red Hat Ceph Storage 一章。
先决条件
- 访问 Ansible 管理节点.
-
创建具有
sudo
访问权限的 Ansible 用户.
流程
生成 SSH 密钥对,接受默认文件名并将密语留空:
[ansible@admin ~]$ ssh-keygen
将公钥复制到存储集群中的所有节点:
ssh-copy-id USER_NAME@HOST_NAME
- 替换
- USER_NAME,使用具有 Ansible 用户的新用户名。
HOST_NAME,使用 Ceph 节点的主机名。
示例
[ansible@admin ~]$ ssh-copy-id ceph-admin@ceph-mon01
创建用户的 SSH
config
文件 :[ansible@admin ~]$ touch ~/.ssh/config
打开并编辑
config
文件。为存储集群中每个节点的Hostname
和User
选项设置值:Host node1 Hostname HOST_NAME User USER_NAME Host node2 Hostname HOST_NAME User USER_NAME ...
- 替换
- HOST_NAME,使用 Ceph 节点的主机名。
USER_NAME,使用具有 Ansible 用户的新用户名。
示例
Host node1 Hostname monitor User admin Host node2 Hostname osd User admin Host node3 Hostname gateway User admin
重要通过配置
~/.ssh/config
文件,您不必在每次执行ansible-playbook
命令时指定-u USER_NAME
选项。
为
~/.ssh/config
文件设置正确的文件权限:[admin@admin ~]$ chmod 600 ~/.ssh/config
其它资源
-
ssh_config(5)
手册页面。 - 请参阅 Red Hat Enterprise Linux 8 安全网络中的使用 OpenSSH 在两个系统间使用安全通信一章。