2.11. 为 Ansible 启用无密码 SSH
在 Ansible 管理节点上生成 SSH 密钥对,并将公钥分发到存储集群中的每个节点,以便 Ansible 可以在不提示输入密码的情况下访问节点。
先决条件
流程
从 Ansible 管理节点,并以 Ansible 用户身份执行下列步骤。
生成 SSH 密钥对,接受默认文件名并将密语留空:
[user@admin ~]$ ssh-keygen
将公钥复制到存储集群中的所有节点:
ssh-copy-id $USER_NAME@$HOST_NAME
- 替换
-
$USER_NAME
,它具有 Ansible 用户的新用户名。 -
$HOST_NAME
,其主机名为 Ceph 节点。
-
示例
[user@admin ~]$ ssh-copy-id admin@ceph-mon01
创建并编辑
~/.ssh/config
文件。重要通过创建并编辑
~/.ssh/config
文件,您不必在每次执行ansible-playbook
命令时指定-u $USER_NAME
选项。创建 SSH
配置文件
:[user@admin ~]$ touch ~/.ssh/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
文件设置正确的文件权限:[admin@admin ~]$ chmod 600 ~/.ssh/config
其它资源
-
ssh_config(5)
手册页 - Red Hat Enterprise Linux 7 系统管理员指南中的 OpenSSH 章节