配置计算节点之间的 SSH

待办事项

考虑将其合并到更大的“迁移”文档或安装指南中

如果在超visor之间调整实例大小或迁移实例,您可能会遇到 SSH(权限被拒绝)错误。 确保每个节点都配置了 SSH 密钥身份验证,以便计算服务可以使用 SSH 将磁盘移动到其他节点。

注意

并非所有计算节点都需要共享相同的密钥对。 但是,为了配置的简便性,本文档仅使用单个密钥对进行计算节点之间的通信。

要在计算节点之间共享密钥对,请完成以下步骤

  1. 在第一个节点上,获取一个密钥对(公钥和私钥)。 使用位于 /root/.ssh/id_rsa/root/.ssh/id_rsa.pub 目录中的 root 密钥,或生成一个新的密钥对。

  2. 运行 setenforce 0 将 SELinux 置于宽松模式。

  3. 启用 nova 用户的登录权限

    # usermod -s /bin/bash nova
    

    确保您可以切换到 nova 帐户

    # su - nova
    
  4. 以 root 身份,创建 SSH 所需的文件夹,并将步骤 1 中获得的私钥放入此文件夹中,并将公钥添加到 authorized_keys 文件中

    mkdir -p /var/lib/nova/.ssh
    cp <private key>  /var/lib/nova/.ssh/id_rsa
    echo 'StrictHostKeyChecking no' >> /var/lib/nova/.ssh/config
    chmod 600 /var/lib/nova/.ssh/id_rsa /var/lib/nova/.ssh/authorized_keys
    echo <pub key> >> /var/lib/nova/.ssh/authorized_keys
    
  5. 将步骤 4 中创建的整个文件夹复制到其余节点

    # scp -r /var/lib/nova/.ssh remote-host:/var/lib/nova/
    
  6. 确保 nova 用户现在可以无需密码登录到每个节点

    # su - nova
    $ ssh *computeNodeAddress*
    $ exit
    
  7. 在每个节点上以 root 身份,重新启动 libvirt 和计算服务

    # systemctl restart libvirtd.service
    # systemctl restart openstack-nova-compute.service