【OpenStack】nova resize修改实例配置报错的解决办法

声明:
本博客欢迎转发,但请保留原作者信息!
新浪微博:@孔令贤HW;
博客地址:http://blog.csdn.net/lynn_kong
内容系本人学习、研究和总结,如有雷同,实属荣幸!


更新记录:
2013.5.6  发现在Fedora上这样的配置是不行的,还未解决,先记下
2013.5.7  添加Fedora上普通用户无密码SSH登录其他节点的解决方法
2013.5.16  修改为更通用的方法


这个问题是一个网友问我的(上海-李挺),问题如下:

resize虚拟机,出现如下报错:
Command:ssh 192.168.18.43 mkdir -p /var/lib/nova/instances/eac0e362-352f-45ad-b503-d28e588691be
Exit code: 255
Stdout: ''
Stderr: 'Host key verification failed.\r\n'. Setting instance vm_state to ERROR
但手动执行命令可以mkdir成功。


我当时在开会,给他的答复是:“检查一下手动执行命令和代码执行命令是不是同一个用户”。然后他自己动手把问题解决了,确实是我说的原因。下面的方法在各个操作系统上基本是通用的。


1. 先允许切换到nova用户,使用第三个命令注意后面有一个点(该命令只在Fedora中有效,在Ubuntu中无需执行,同时,在Ubuntu上,第四个命令是mkdir -p -m 700 .ssh && cd .ssh)

 # usermod -s /bin/bash nova
 # su - nova
 $ chcon -u system_u -r object_r -t user_home_t .
 $ mkdir -p -m 700 --context=system_u:object_r:ssh_home_t:s0 .ssh && cd .ssh
2. Disable host identity checking
 $ cat > config <

以上两步在每个计算节点上都要执行。

3. 生成并分发ssh公钥
某一个计算节点执行:
 $ ssh-keygen -f id_rsa -b 1024 -P ""
 $ cp -a /var/lib/nova/.ssh/id_rsa.pub /var/lib/nova/.ssh/authorized_keys

将id_rsa和authorized_keys两个文件复制到其他计算节点,以下使用root操作:

$ scp /var/lib/nova/.ssh/id_rsa root@otherHost:/var/lib/nova/.ssh/id_rsa
$ scp /var/lib/nova/.ssh/authorized_keys root@otherHost:/var/lib/nova/.ssh/authorized_keys
4. 设置文件属性
root登录到其他计算节点,执行:
# chown nova:nova /var/lib/nova/.ssh/id_rsa /var/lib/nova/.ssh/authorized_keys

OK,现在切换到nova用户,就可以无密码登录其他计算节点了。

你可能感兴趣的:(openstack)