分享

nova账号无密码计算节点访问

sstutu 发表于 2014-7-8 18:12:12 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 8027
问题导读:
1.如何可以用密钥,无密码访问所有的计算节点?
2.如何让文件夹复制到所有的计算节点上,并且运行文件夹下的脚本?




在Openstack上,如果你想实现迁移,resize,你都需要配置这个,就是让所有的计算节点,用nova的账号,使用密钥互相访问。
以前我的办法比较土,手工操作也很累,http://www.chenshake.com/of-work-installing-your-rdo/
所以我必须想一个办法来解决这个问题。我需要解决
  • 我可以用密钥,无密码访问所有的计算节点
  • 我可以批量复制文件夹到远程的计算节点上
  • 运行远程的脚本,完成所有的设置
春节期间,我已经把所有的服务器,改成用密钥访问,就是从那台控制节点的机器,可以无密码访问其他机器。
我这里简单记录一下过程,大概的思路就是用root的用户的公钥,私钥,都复制到nova的账号底下。我们需要把密钥可以批量复制到所有的计算节点,并且运行一个脚本,实现所有的修改。
创建一个nova的文件夹,把root的密钥都复制到里面。
  1. cd
  2. mkdir nova
  3. cp -r /root/.ssh /root/nova/ssh
复制代码
创建 /root/nova/nova.sh
  1. #!/bin/sh
  2. usermod -s /bin/bash nova
  3. cp -r ./ssh /var/lib/nova/.ssh
  4. chown -R nova:nova /var/lib/nova/.ssh
  5. crudini --set /etc/nova/nova.conf DEFAULT libvirt_inject_password true
  6. service openstack-nova-compute restart
复制代码

脚本的内容可以自己添加,根据自己的需求,修改nova.conf文件。
在root目录下,创建一个计算节点的列表。
  1. # cat host_list
  2. 172.18.1.20
  3. 172.18.1.21
复制代码

创建批量复制脚本, distrun.sh
就是把nova的文件夹复制到所有的计算节点上,并且运行nova文件夹下的nova.sh 脚本。
  1. #!/bin/sh
  2. input_list=$1
  3. for i in `cat $input_list`
  4. do
  5.         #echo "this is a test" >> /root/sendtoremote.txt
  6.         ssh -n $i "hostname"
  7.         scp -r /root/nova root@$i:/root/
  8.         ssh -n $i "cd /root/nova/ && chmod +x nova.sh && ./nova.sh"
  9. done
复制代码
运行脚本
  1. nohup sh -x distrun.sh host_list 1>out.txt 2>err.txt &
复制代码
或者
  1. chmod +x distrun.sh
  2. ./distrun.sh host_list
复制代码
运行完,基本就ok。


欢迎加入about云群425860289432264021 ,云计算爱好者群,关注about云腾讯认证空间

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条