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