3.9. 为 Ansible 启用免密码 SSH
在 Ansible 管理节点上生成 SSH 密钥对,并将公钥分发到存储集群中的每个节点,以便 Ansible 可以在不提示输入密码的情况下访问节点。
先决条件
- 访问 Ansible 管理节点.
- 具有 sudo 对存储集群中所有节点的访问权限的 Ansible 用户。
- 对于 Red Hat Enterprise Linux 9,要以 root 用户身份登录,请参阅在 Red Hat Enterprise Linux 9 中以 root 用户身份启用 SSH 登录
流程
生成 SSH 密钥对,接受默认文件名并将密语留空:
[ceph-admin@admin ~]$ ssh-keygen将公钥复制到存储集群中的所有节点:
ssh-copy-id USER_NAME@HOST_NAME将 USER_NAME 替换为 Ansible 用户的新用户名。将 HOST_NAME 替换为 Ceph 节点的主机名。
示例
[ceph-admin@admin ~]$ ssh-copy-id ceph-admin@host01创建用户的 SSH
config文件 :[ceph-admin@admin ~]$ touch ~/.ssh/config打开并编辑
config文件。为存储集群中每个节点的Hostname和User选项设置值:Host host01 Hostname HOST_NAME User USER_NAME Host host02 Hostname HOST_NAME User USER_NAME ...将 HOST_NAME 替换为 Ceph 节点的主机名。将 USER_NAME 替换为 Ansible 用户的新用户名。
示例
Host host01 Hostname host01 User ceph-admin Host host02 Hostname host02 User ceph-admin Host host03 Hostname host03 User ceph-admin重要通过配置
~/.ssh/config文件,您不必在每次执行ansible-playbook命令时指定-u USER_NAME选项。为
~/.ssh/config文件设置正确的文件权限:[ceph-admin@admin ~]$ chmod 600 ~/.ssh/config