tomoon|多节点部署

这里讲述了,我如何在多节点服务器上开启和关闭 tomoon 量化程序。

由于,各种原因,所以,多节点部署肯定会不断的升级,这里我将同时讲述采用该方案的背景已经可以实现的效果。

由于预算很小,所以,没有采用 jenkins 等自动化部署方式,而是通过 shell 进行连接远程服务器部署。

由于,跑程序的服务器「目前是一核一G」部署在香港、东京、新加坡等,所以,国内连接的时候不是很通畅,即便是科学之后也是如此。

所以,购买了一个一核0.5G的香港机器作为跳板机。

首先,跳板机必须和远程服务机进行 ssh 无密码登陆,本地也要和跳板机进行无密码登陆,因为,只有无密码登陆才能执行远程服务器指令。

整个过程是,我本地对跳板机发送指令,然后,跳板机对远程服务器发送指令。

指令主要有

  • 上传程序 「tar 包」
  • 解压程序包
  • 开始程序
  • 停止程序

上传程序

文件 release_all.sh

内容如下

这里讲一下

ssh root@跳板机IP "cd /root/ ; sh release.sh"

这句话是连接跳板机,并在跳板机中执行

cd /root/ sh release.sh

文件 release.sh

这样就将程序上传到了远程服务器上。

解压程序包

在上面上传这一章节我们还遗留了一个问题

  • 如何证明你的新程序已经上传到了服务器上,而不会因为网络原因导致失败?

这就是,解压程序包所要解决的事情。

文件 ready_all.sh

执行跳板机上的 ready.sh

文件 ready.sh

首先,跳板机会执行远程服务器上的 ready.sh 文件,内容如下

然后,输出

ssh root@服务器IP "cat /root/quantify/update.txt"

我每次上传都会更新 update.txt 里面的内容,如何,我正常上传,并且正常解压后,我本地展示的远程内容,应该是我更新后的内容。

这样,比照,就会发现是否成功执行。

开始程序

文件 start_all.sh

文件 start.sh

文件 quantify.sh

本地和跳板机都没啥好说的,这里说一下远程服务器上的指令。

首先,我的程序是有 log 输出的,所以,我并不希望输入到 nohup.out 所以,在后面加了

>/dev/null 2

如果不加这个,必须要按一下 ctrl + c 这个是非常不友好的,说的比较抽象,可以在本地试一下。

另外,关于是否成功开始,我使用的是钉钉通知。

停止程序

这里我们必须解决,本地执行脚本的时候,检测服务器是否真的停止了程序。

文件 stop_all.sh

文件 stop.sh

文件 stop.sh

上面主要说一下跳板机的内容。

首先运行服务器上的 stop.sh 然后,输出服务器上的相关程序的状态。如果没有停止,则会输出相关的程序。

原文链接:https://benpaodewoniu.github.io/2021/11/07/tomoon6/

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/6022

(0)
上一篇 2022年10月7日 08:08
下一篇 2022年10月7日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml