多服务器调度脚本的实现

多服务器部署脚本的实现
当游戏开服数较多时,部署就成了问题。今天简单研究了利用ssh-keygen+scp的分发部署模式,将关键部分做个简单记录。

一、关于ssh-keygen
ssh 是一个专为远程登录会话和其他网络服务提供安全性的协议。默认状态下ssh链接是需要密码认证的,可以通过添加系统认证(即公钥-私钥)的修改,修改后系统间切换可以避免密码输入和ssh认证。
ssh-keygen 用于为ssh生成、管理和转换认证密钥,包括 RSA 和 DSA 两种密钥。

二、操作流程(内网源码所在服务器称为跳转机;外网服务器称为服务器)
1、跳转机上执行 ssh-keygen 生成 id_rsa 和id_rsa.pub

cd ~/.ssh/
ssh-keygen

一路回车下去就OK啦!

2、在服务器上创建(或生成)用户对应的 .ssh目录
ssh root@10.0.1.100 mkdir ~/.ssh


3、将id_rsa.pub上传到服务器上并改名为authorized_keys
scp ~/.ssh/id_rsa.pub   root@10.0.1.100:~/.ssh/authorized_keys


4、将服务器上的authorized_keys权限修改为400
ssh root@10.0.1.100 chmod 400 ~/.ssh/authorized_keys


5、将跳转机上的id_rsa权限修改为400
chmod 400 ~/.ssh/id_rsa


6、尝试登陆并添加scp分发脚本

其实就是第三步相同的操作,因为使用密钥登陆,scp过程就不会因为输入密码而被打乱了。

后期的更新可以在scp完成后ssh到对应的服务器进行备份、解压、覆盖、重启等操作啦!