Qomolangma is a small and beautiful cluster command execute tool via nodejs.
分布式集群批量命令执行工具(类似百度内部的pdo2)
>=6.0
npm install qomolangma --save
const qomo = require("qomolangma").command;
qomo(cmd, (err, data, counter) => {});
Remote server's IPs in file node_modules/qomolangma/client/remotes.js
Update remote server list:
qomo.remote.set([
{
host: '127.0.0.1',
tag: 'local'
}
])
npm install
npm run dev-server
npm run server
It will create a server by current linux user.The server is waiting for command request.
pm2 start ecosystem.config.js
*edit ecosystem.config.js
properly firstly
pm2 deploy ecosystem.config.js production setup
pm2 deploy ecosystem.config.js production
npm run cli "cat package.json | grep author"
It will send a request to server for executing the command and the server will response the command stdout.
output
Request Id: 72ff367f-7aaf-40e4-8689-8ad2c2337935
[1/1] chenjinyadeMacBook-Pro.local 192.168.11.1 success 20ms
"author": "Jinya Chen",
info
|done / total | hostname | ip | status | cost|
[ 1 / 1 ] chenjinyadeMacBook-Pro.local 192.168.11.1 success 15ms
"author": "Jinya Chen",
| command stdout |
Before running, you should config IPs in client/remotes.js
.
Default server http port is 8848
. (The height of the Mount Qomolangma is 8848 meters)
npm test
The test will create a server and try to execute a cmd. If it processing well, test script will show 'Test ok' and exit 0.
It's so DANGER when you run this program by ROOT user.In most case, you should forbidden outside network access for securit.