问题导读: 1.如何可以用密钥,无密码访问所有的计算节点? 2.如何让文件夹复制到所有的计算节点上,并且运行文件夹下的脚本? 在Openstack上,如果你想实现迁移,resize,你都需要配置这个,就是让所有的计算节点,用nova的账号,使用密钥互相访问。 所以我必须想一个办法来解决这个问题。我需要解决 - 我可以用密钥,无密码访问所有的计算节点
- 我可以批量复制文件夹到远程的计算节点上
- 运行远程的脚本,完成所有的设置
春节期间,我已经把所有的服务器,改成用密钥访问,就是从那台控制节点的机器,可以无密码访问其他机器。 我这里简单记录一下过程,大概的思路就是用root的用户的公钥,私钥,都复制到nova的账号底下。我们需要把密钥可以批量复制到所有的计算节点,并且运行一个脚本,实现所有的修改。 创建一个nova的文件夹,把root的密钥都复制到里面。
- cd
- mkdir nova
- cp -r /root/.ssh /root/nova/ssh
复制代码
创建 /root/nova/nova.sh
- #!/bin/sh
- usermod -s /bin/bash nova
- cp -r ./ssh /var/lib/nova/.ssh
- chown -R nova:nova /var/lib/nova/.ssh
- crudini --set /etc/nova/nova.conf DEFAULT libvirt_inject_password true
- service openstack-nova-compute restart
复制代码
脚本的内容可以自己添加,根据自己的需求,修改nova.conf文件。 在root目录下,创建一个计算节点的列表。 - # cat host_list
- 172.18.1.20
- 172.18.1.21
复制代码
创建批量复制脚本, distrun.sh 就是把nova的文件夹复制到所有的计算节点上,并且运行nova文件夹下的nova.sh 脚本。 - #!/bin/sh
- input_list=$1
-
- for i in `cat $input_list`
- do
- #echo "this is a test" >> /root/sendtoremote.txt
- ssh -n $i "hostname"
- scp -r /root/nova root@$i:/root/
- ssh -n $i "cd /root/nova/ && chmod +x nova.sh && ./nova.sh"
- done
复制代码
运行脚本
- nohup sh -x distrun.sh host_list 1>out.txt 2>err.txt &
复制代码
或者
- chmod +x distrun.sh
- ./distrun.sh host_list
复制代码
运行完,基本就ok。
|