3.9. 为 Ansible 启用免密码 SSH

在 Ansible 管理节点上生成 SSH 密钥对,并将公钥分发到存储集群中的每个节点,以便 Ansible 可以在不提示输入密码的情况下访问节点。

注意

如果使用基于 Cockpit Web 的界面安装 Red Hat Ceph Storage,则不需要这个过程。这是因为 Cockpit Ceph 安装程序会生成自己的 SSH 密钥。有关将 Cockpit SSH 密钥复制到集群中的所有节点的说明,请参见使用 Cockpit Web 界面安装 Red Hat Ceph Storage 一章。

先决条件

流程

  1. 生成 SSH 密钥对,接受默认文件名并将密语留空:

    [ansible@admin ~]$ ssh-keygen
  2. 将公钥复制到存储集群中的所有节点:

    ssh-copy-id USER_NAME@HOST_NAME
    替换
    • USER_NAME,使用具有 Ansible 用户的新用户名。
    • HOST_NAME,使用 Ceph 节点的主机名。

      示例

      [ansible@admin ~]$ ssh-copy-id ceph-admin@ceph-mon01

  3. 创建用户的 SSH config 文件 :

    [ansible@admin ~]$ touch ~/.ssh/config
  4. 打开并编辑 config 文件。为存储集群中每个节点的 HostnameUser 选项设置值:

    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 选项。

  5. ~/.ssh/config 文件设置正确的文件权限:

    [admin@admin ~]$ chmod 600 ~/.ssh/config

其它资源

返回要求清单